Repository navigation
Accept filter specs that omit id or name when creating datasets - #484
Merged
Merged
Conversation
HSDS 1.0.0 rejects any dataset filter that doesn't spell out class, id
and name, because creation properties now go straight to h5json's
validateFilter. Its own OpenAPI spec doesn't require id or name, and
0.9.x filled them in.
Multiple clients rely on that behavior. The HDF5 REST VOL sends every
filter as {"class": ..., "id": ...} with no name, and h5pyd 0.21 sends
gzip as {"class": "H5Z_FILTER_DEFLATE", "id": 1, "level": N} and other
compressors as {"class": "H5Z_FILTER_USER", "name": ...}, so creating a
filtered dataset from either fails. (h5pyd 1.0 builds complete specs
with h5json's getFilterItem and isn't affected.)
Dataset creation now runs the filter list through h5json's
normalizeFilters before validating it. That fills in a missing id or
name from h5json's filter table, and gives a H5Z_FILTER_USER spec whose
id or name is a registered filter that filter's class.
normalizeFilters is new in h5json 2.0.1, so this raises the h5json
requirement to 2.0.1 and can't merge until that release is published.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
HSDS 1.0.0 rejects any dataset filter that doesn't spell out class, id and name, because creation properties now go straight to h5json's validateFilter. Its own OpenAPI spec doesn't require id or name, and 0.9.x filled them in.
Multiple clients rely on that behavior. The HDF5 REST VOL sends every filter as {"class": ..., "id": ...} with no name, and h5pyd 0.21 sends gzip as {"class": "H5Z_FILTER_DEFLATE", "id": 1, "level": N} and other compressors as {"class": "H5Z_FILTER_USER", "name": ...}, so creating a filtered dataset from either fails. (h5pyd 1.0 builds complete specs with h5json's getFilterItem and isn't affected.)
Dataset creation now runs the filter list through h5json's normalizeFilters before validating it. That fills in a missing id or name from h5json's filter table, and gives a H5Z_FILTER_USER spec whose id or name is a registered filter that filter's class.
normalizeFilters is new in h5json 2.0.1, so this raises the h5json requirement to 2.0.1 and can't merge until that release is published.