Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): bump zarrs_metadata to 0.3.4 #145

Merged
merged 2 commits into from
Feb 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: build

on:
push:
branches: ["main", "v[0-9]+.[0-9]+"]
branches: ["main", "v[0-9]+.[0-9]+.x"]
pull_request:
branches: ["main", "v[0-9]+.[0-9]+"]
branches: ["main", "v[0-9]+.[0-9]+.x"]

env:
CARGO_TERM_COLOR: always
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed
- Bump `zarrs_metadata` to 0.3.4 which includes a number of Zarr metadata fixes
- See the [`zarrs_metadata` CHANGELOG.md](https://github.com/LDeakin/zarrs/blob/main/zarrs_metadata/CHANGELOG.md)

## [0.19.1] - 2025-01-19

### Added
Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ missing_panics_doc = "warn"
missing_errors_doc = "warn"

[workspace.dependencies.zarrs_metadata]
version = "0.3.0"
path = "zarrs_metadata"
version = "0.3.4"
# path = "zarrs_metadata"

[workspace.dependencies.zarrs_storage]
version = "0.3.0"
Expand Down
15 changes: 15 additions & 0 deletions zarrs/src/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
pub use array_sharded_ext::ArrayShardedExt;
#[cfg(feature = "sharding")]
pub use array_sync_sharded_readable_ext::{ArrayShardedReadableExt, ArrayShardedReadableExtCache};
use zarrs_metadata::v3::UnsupportedAdditionalFieldError;
// TODO: Add AsyncArrayShardedReadableExt and AsyncArrayShardedReadableExtCache

use crate::{
Expand Down Expand Up @@ -394,6 +395,20 @@
.map_err(|err| ArrayCreateError::UnsupportedZarrV2Array(err.to_string())),
}?;

// Check for unsupported additional fields that must be understood
if let Some(unsupported_additional_field) = metadata_v3
.additional_fields
.iter()
.find(|additional_field| additional_field.1.must_understand())
{
return Err(ArrayCreateError::UnsupportedAdditionalFieldError(
UnsupportedAdditionalFieldError::new(
unsupported_additional_field.0.clone(),
unsupported_additional_field.1.as_value().clone(),
),
));

Check warning on line 409 in zarrs/src/array.rs

View check run for this annotation

Codecov / codecov/patch

zarrs/src/array.rs#L404-L409

Added lines #L404 - L409 were not covered by tests
}

let data_type = DataType::from_metadata(&metadata_v3.data_type)
.map_err(ArrayCreateError::DataTypeCreateError)?;
let chunk_grid = ChunkGrid::from_metadata(&metadata_v3.chunk_grid)
Expand Down
31 changes: 27 additions & 4 deletions zarrs/src/group.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,23 @@
path: &str,
metadata: GroupMetadata,
) -> Result<Self, GroupCreateError> {
// Check for unsupported additional fields that must be understood
let additional_fields = match &metadata {
GroupMetadata::V2(metadata) => &metadata.additional_fields,

Check warning on line 96 in zarrs/src/group.rs

View check run for this annotation

Codecov / codecov/patch

zarrs/src/group.rs#L96

Added line #L96 was not covered by tests
GroupMetadata::V3(metadata) => &metadata.additional_fields,
};
if let Some(unsupported_additional_field) = additional_fields
.iter()
.find(|additional_field| additional_field.1.must_understand())
{
return Err(GroupCreateError::UnsupportedAdditionalFieldError(
UnsupportedAdditionalFieldError::new(
unsupported_additional_field.0.clone(),
unsupported_additional_field.1.as_value().clone(),
),
));

Check warning on line 108 in zarrs/src/group.rs

View check run for this annotation

Codecov / codecov/patch

zarrs/src/group.rs#L103-L108

Added lines #L103 - L108 were not covered by tests
}

let path = NodePath::new(path)?;
Ok(Self {
storage,
Expand Down Expand Up @@ -754,8 +771,8 @@
}

#[test]
fn group_metadata_invalid_additional_field() {
let group_metadata = serde_json::from_str::<GroupMetadata>(
fn group_metadata_unknown_additional_field() {
let group_metadata = serde_json::from_str::<GroupMetadataV3>(
r#"{
"zarr_format": 3,
"node_type": "group",
Expand All @@ -765,8 +782,14 @@
},
"unknown": "fail"
}"#,
);
assert!(group_metadata.is_err());
)
.unwrap();
assert!(group_metadata.additional_fields.len() == 1);
assert!(group_metadata
.additional_fields
.get("unknown")
.unwrap()
.must_understand());
}

#[test]
Expand Down
6 changes: 5 additions & 1 deletion zarrs/src/group/group_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,12 @@ mod tests {
attributes.insert("key".to_string(), "value".into());
builder.attributes(attributes.clone());

let mut additional_field = serde_json::Map::new();
additional_field.insert("must_understand".to_string(), false.into());
// let additional_field =
// zarrs_metadata::v3::AdditionalField::new(serde_json::Map::new(), false);

let mut additional_fields = AdditionalFields::new();
let additional_field = serde_json::Map::new();
additional_fields.insert("key".to_string(), additional_field.into());
builder.additional_fields(additional_fields.clone());

Expand Down
Loading