Skip to content

Commit b73b940

Browse files
Carreaualimanfoo
andauthored
Node name changes (Rebased #85) (#97)
* Node name changes * added clarification about case sensitivity * fix idiocy * minor * update copyright * Update docs/protocol/core/v3.0.rst Co-authored-by: Alistair Miles <[email protected]>
1 parent 2e40098 commit b73b940

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

docs/protocol/core/v3.0.rst

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
==================================
44
Zarr core protocol (version 3.0)
55
==================================
6-
---------------------------------
7-
Editor's draft 18 September 2020
8-
---------------------------------
6+
-----------------------------
7+
Editor's draft 16 October 2020
8+
-----------------------------
99

1010
Specification URI:
1111
https://purl.org/zarr/spec/protocol/core/3.0
@@ -16,7 +16,7 @@ Issue tracking:
1616
Suggest an edit for this spec:
1717
`GitHub editor <https://github.com/zarr-developers/zarr-specs/blob/core-protocol-v3.0-dev/docs/protocol/core/v3.0.rst>`_
1818

19-
Copyright 2019, 2020 `Zarr core development
19+
Copyright 2019-Present `Zarr core development
2020
team <https://github.com/orgs/zarr-developers/teams/core-devs>`_ (@@TODO
2121
list institutions?). This work is licensed under a `Creative Commons
2222
Attribution 3.0 Unported
@@ -319,12 +319,16 @@ node names:
319319

320320
* must be at most 255 characters long
321321

322-
Note that node names are used to form storage keys, and that some
323-
storage systems will perform a case-insensitive comparison of storage
324-
keys during retrieval. Therefore, within a hierarchy, all nodes within
325-
a set of sibling nodes must have a name that is unique under
326-
case-insensitive comparison. E.g., the names "foo" and "FOO" are not
327-
allowed for sibling nodes.
322+
Node names are case sensitive, e.g., the names "foo" and "FOO" are **not**
323+
identical.
324+
325+
.. note:
326+
The Zarr core development team recognises that restricting the set
327+
of allowed characters creates an impediment and bias against users
328+
of different languages. We are actively discussing whether the full
329+
Unicode character set could be allowed and what technical issues
330+
this would entail. If you have experience or views please comment on
331+
`issue #56 <https://github.com/zarr-developers/zarr-specs/issues/56>`_.
328332
329333
330334
Data types
@@ -1055,7 +1059,8 @@ string containing only characters in the ranges ``a-z``, ``A-Z``,
10551059
``0-9``, or in the set ``/.-_``, and a `value` is any sequence of
10561060
bytes. It is assumed that the store holds (`key`, `value`) pairs, with
10571061
only one such pair for any given `key`. I.e., a store is a mapping
1058-
from keys to values.
1062+
from keys to values. It is also assumed that keys are case sensitive,
1063+
i.e., the keys "foo" and "FOO" are different.
10591064

10601065
A store can make the following assumption on the structures of the keys it will receive:
10611066

@@ -1194,6 +1199,11 @@ which do not contain the character "/" after the given prefix.
11941199
``/``, ``.json``, ``.array``, ``.group``, they will otherwise be chunks
11951200
data.
11961201

1202+
Note that because keys are case sensitive, it is assumed that the operations
1203+
``set("foo", a)`` and ``set("FOO", b)`` will result in two separate (key, value)
1204+
pairs being stored. Subsequently ``get("foo")`` will return *a* and ``get("FOO")``
1205+
will return *b*.
1206+
11971207

11981208
Store implementations
11991209
---------------------

0 commit comments

Comments
 (0)