Only check alternate node type if desired isn't present #696
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 rearranges the control flow in
open_array
andopen_group
whenmode
isa
,r
, orr+
, so that fewer store methods are called when the correct node already exists. The previous logic always required two calls tostore.__containsitem__
if said array/group already existed. Now,open_array
checks if the node is a group only if it is not an array (and vis versa foropen_group
). This may seem like a minor nit, butstore.__containsitem__
can wrap arbitrary complexity and if it hides a network call, you can avoid an unnecessary network request.I noticed this in the
zarr.js
implementation because we get a lot of HTTP 404s errors for.zgroup
in the console when opening a valid remote array. gzuidhof/zarr.js#73TODO: