Move metadata evaluation to a lazy property #528
Merged
+109
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes the metadata property on
AzureBlobFilelazy-loaded for read mode, addressing the performance issue raised in #517. Previously, metadata was fetched synchronously every time a file was opened (~50ms overhead), regardless of use. Now it's only fetched on first access of the .metadata property. This approach preserves backwards compatibility while reducing average overhead.The one assumption being made is end-users aren't manually assigning
metadatafrom their code. That seems like an unlikely edge case. If we're concerned about that though, I can add a setter as well. I just don't want to encourage that behavior if we don't consider it supported/intended.Changes
get_blob_metadatacall from__init__for read mode.@propertydecorator to fetch and cache metadata on first access.