@@ -242,7 +242,7 @@ def parse_json(value: object) -> JSONValue:
242242
243243
244244def _missing_keys (
245- required : frozenset [str ], doc : Mapping [str , object ]
245+ required : frozenset [str ], doc : Mapping [object , object ]
246246) -> tuple [ValidationProblem , ...]:
247247 """One `missing_key` problem per required key absent from `doc`."""
248248 return tuple (
@@ -269,7 +269,7 @@ def _unexpected_keys(
269269
270270
271271def _check_literal (
272- doc : Mapping [str , object ], key : str , expected : object
272+ doc : Mapping [object , object ], key : str , expected : object
273273) -> tuple [ValidationProblem , ...]:
274274 """One `invalid_value` problem if `doc[key]` is present but not `expected`."""
275275 if key in doc and (type (doc [key ]) is not type (expected ) or doc [key ] != expected ):
@@ -397,7 +397,7 @@ def _is_int_sequence(value: object) -> bool:
397397 )
398398
399399
400- def _validate_dim_sequence (doc : Mapping [str , object ], key : str ) -> tuple [ValidationProblem , ...]:
400+ def _validate_dim_sequence (doc : Mapping [object , object ], key : str ) -> tuple [ValidationProblem , ...]:
401401 """Validate a dimension sequence (`shape` / `chunks`) if present in `doc`.
402402
403403 Dimension lengths are non-negative integers.
@@ -555,13 +555,9 @@ def validate_array_metadata_v3(value: object) -> tuple[ValidationProblem, ...]:
555555 """
556556 if not isinstance (value , Mapping ):
557557 return (ValidationProblem ((), "expected a mapping" , "invalid_type" ),)
558- doc = cast ("Mapping[str , object]" , value )
558+ doc = cast ("Mapping[object , object]" , value )
559559 problems : list [ValidationProblem ] = list (_missing_keys (ARRAY_METADATA_REQUIRED_KEYS_V3 , doc ))
560- problems .extend (
561- _validate_extension_fields_v3 (
562- cast ("Mapping[object, object]" , value ), ARRAY_METADATA_STANDARD_KEYS_V3
563- )
564- )
560+ problems .extend (_validate_extension_fields_v3 (doc , ARRAY_METADATA_STANDARD_KEYS_V3 ))
565561 problems .extend (_check_literal (doc , "zarr_format" , 3 ))
566562 problems .extend (_check_literal (doc , "node_type" , "array" ))
567563 problems .extend (_validate_dim_sequence (doc , "shape" ))
@@ -649,7 +645,7 @@ def validate_array_metadata_v2(value: object) -> tuple[ValidationProblem, ...]:
649645 """
650646 if not isinstance (value , Mapping ):
651647 return (ValidationProblem ((), "expected a mapping" , "invalid_type" ),)
652- doc = cast ("Mapping[str , object]" , value )
648+ doc = cast ("Mapping[object , object]" , value )
653649 # Unlike the group document ("Other keys MUST NOT be present",
654650 # https://github.com/zarr-developers/zarr-specs/blob/fc7dd9c9beb5a50b87f9b08b00bf50fc0048482f/docs/v2/v2.0.rst#L313), the v2 array document is open: other keys "SHOULD NOT be
655651 # present within the metadata object and SHOULD be ignored by
@@ -757,18 +753,13 @@ def validate_consolidated_metadata_v3(value: object) -> tuple[ValidationProblem,
757753 """
758754 if not isinstance (value , Mapping ):
759755 return (ValidationProblem ((), "expected a mapping" , "invalid_type" ),)
760- env = cast ("Mapping[str , object]" , value )
756+ env = cast ("Mapping[object , object]" , value )
761757 problems : list [ValidationProblem ] = [
762758 ValidationProblem ((key ,), "missing required key" , "missing_key" )
763759 for key in ("kind" , "must_understand" , "metadata" )
764760 if key not in env
765761 ]
766- problems .extend (
767- _unexpected_keys (
768- frozenset ({"kind" , "must_understand" , "metadata" }),
769- cast ("Mapping[object, object]" , value ),
770- )
771- )
762+ problems .extend (_unexpected_keys (frozenset ({"kind" , "must_understand" , "metadata" }), env ))
772763 problems .extend (_check_literal (env , "kind" , "inline" ))
773764 if "must_understand" in env and env ["must_understand" ] is not False :
774765 problems .append (ValidationProblem (("must_understand" ,), "expected False" , "invalid_value" ))
@@ -786,7 +777,7 @@ def validate_consolidated_metadata_v3(value: object) -> tuple[ValidationProblem,
786777 entry_obj : object = entry
787778 node_type : object = None
788779 if isinstance (entry , Mapping ):
789- node_type = cast ("Mapping[str , object]" , entry ).get ("node_type" )
780+ node_type = cast ("Mapping[object , object]" , entry ).get ("node_type" )
790781 if node_type == "array" :
791782 problems .extend (
792783 _prefix ("metadata" , _prefix (key , validate_array_metadata_v3 (entry_obj )))
@@ -816,11 +807,11 @@ def validate_group_metadata_v3(value: object) -> tuple[ValidationProblem, ...]:
816807 """
817808 if not isinstance (value , Mapping ):
818809 return (ValidationProblem ((), "expected a mapping" , "invalid_type" ),)
819- doc = cast ("Mapping[str , object]" , value )
810+ doc = cast ("Mapping[object , object]" , value )
820811 problems : list [ValidationProblem ] = list (_missing_keys (GROUP_METADATA_REQUIRED_KEYS_V3 , doc ))
821812 problems .extend (
822813 _validate_extension_fields_v3 (
823- cast ( "Mapping[object, object]" , value ) ,
814+ doc ,
824815 GROUP_METADATA_STANDARD_KEYS_V3 ,
825816 additional_reserved_keys = frozenset ({"consolidated_metadata" }),
826817 )
@@ -864,11 +855,9 @@ def validate_group_metadata_v2(value: object) -> tuple[ValidationProblem, ...]:
864855 """
865856 if not isinstance (value , Mapping ):
866857 return (ValidationProblem ((), "expected a mapping" , "invalid_type" ),)
867- doc = cast ("Mapping[str , object]" , value )
858+ doc = cast ("Mapping[object , object]" , value )
868859 problems : list [ValidationProblem ] = list (_missing_keys (GROUP_METADATA_REQUIRED_KEYS_V2 , doc ))
869- problems .extend (
870- _unexpected_keys (GROUP_METADATA_STANDARD_KEYS_V2 , cast ("Mapping[object, object]" , value ))
871- )
860+ problems .extend (_unexpected_keys (GROUP_METADATA_STANDARD_KEYS_V2 , doc ))
872861 problems .extend (_check_literal (doc , "zarr_format" , 2 ))
873862 if "attributes" in doc :
874863 problems .extend (_validate_attributes (doc ["attributes" ]))
0 commit comments