Skip to content

Commit cc1d163

Browse files
committed
Remove fallback data types from specification
None of the completed/in-progress implementations have implemented fallback data type support, to my knowledge, and they can't really be implemented based on the current spec given that it is not specified how fill values are handled if a fallback data type is used.
1 parent f7f7a2e commit cc1d163

File tree

1 file changed

+10
-24
lines changed

1 file changed

+10
-24
lines changed

docs/v3/core/v3.0.rst

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -485,25 +485,11 @@ mandatory names:
485485

486486
The ``data_type`` value is an extension point and may be defined by a data
487487
type extension. If the data type is defined by an extension, then the value
488-
must be an object containing the names ``name`` and optionally
489-
``configuration`` and ``fallback``. The ``name`` is required and its value
490-
must refer to a v3 data type specification. ``configuration`` is optional
491-
and its value is defined by the extension. The ``fallback`` is optional and,
492-
if provided, its value must be one or a list of the data type identifiers
493-
defined in this specification or an extension. Fallback extension datatypes
494-
are specified as an object with ``name`` and (optionally) ``configuration``.
495-
496-
If an implementation does not recognise the extension or specific data type,
497-
but a ``fallback`` is present, then the implementation may proceed using the
498-
first known ``fallback`` value as the data type. For fixed-sized data types,
499-
if there is no more specific fallback available, a raw number of bytes using
500-
the raw type (``r*``) should be given.
501-
502-
The default list of fallbacks to put into the metadata should be defined by
503-
the data type extension, but it may be overridden by the user. *Note for
504-
implementations*: Silently using a fallback without explicit approval might
505-
cause problems for users, please consider options to (de-)activate fallback
506-
behavior and/or appropriate warnings.
488+
may be either a plain string or an object containing the members ``name``
489+
and optionally ``configuration``. A plain string is equivalent to
490+
specifying an object with just a ``name`` member. The ``name`` is required
491+
and its value must refer to a v3 data type specification. ``configuration``
492+
is optional and its value is defined by the extension.
507493

508494
``chunk_grid``
509495
^^^^^^^^^^^^^^
@@ -767,8 +753,7 @@ above, but using a (currently made up) extension data type::
767753
"name": "datetime",
768754
"configuration": {
769755
"unit": "ns"
770-
},
771-
"fallback": "int64"
756+
}
772757
},
773758
"chunk_grid": {
774759
"name": "regular",
@@ -963,7 +948,7 @@ Core data types
963948
* - ``complex128``
964949
- real and complex components are each IEEE 754 double-precision floating point
965950
* - ``r*`` (Optional)
966-
- raw bits, use for extension type fallbacks
951+
- raw bits, variable size given by ``*``, limited to be a multiple of 8
967952

968953
Additionally to these base types, an implementation should also handle the
969954
raw/opaque pass-through type designated by the lower-case letter ``r`` followed
@@ -1650,8 +1635,7 @@ array codecs `codecs`_
16501635
array storage transformer `storage_transformers`_
16511636
=========== ======================= ================================================
16521637

1653-
If such extension points are used by groups or arrays, they are required, except
1654-
for data types specifying fallback data types.
1638+
If such extension points are used by groups or arrays, they are required.
16551639

16561640
See https://github.com/zarr-developers/zarr-specs/issues/49 for a list of
16571641
potential extensions.
@@ -1758,6 +1742,8 @@ by time.
17581742
Changes after Provisional Acceptance
17591743
------------------------------------
17601744

1745+
- Fallback data type support was removed. `PR #248
1746+
<https://github.com/zarr-developers/zarr-specs/pull/248/>`_
17611747
- It is now required to specify an ``array -> bytes`` codec in the ``codecs``
17621748
array metadata field. `PR #249
17631749
<https://github.com/zarr-developers/zarr-specs/pull/249>`_

0 commit comments

Comments
 (0)