Skip to content

Commit 31474e7

Browse files
committed
implement require_dataset; improve hierarchy test coverage
1 parent 2e0fff5 commit 31474e7

File tree

6 files changed

+478
-103
lines changed

6 files changed

+478
-103
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,5 @@ zarr/version.py
6666
*.zarr
6767
*~
6868
*.zip
69-
example
69+
example*
7070
doesnotexist

zarr/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
from zarr.creation import create, array, empty, zeros, ones, full, open, \
9-
empty_like, zeros_like, ones_like, full_like, open_like
9+
empty_like, zeros_like, ones_like, full_like, open_like, open_array
1010
from zarr.storage import init_store, init_array, init_group, contains_array, \
1111
contains_group, DictStore, DirectoryStore, ZipStore
1212
from zarr.core import Array

zarr/creation.py

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def create(shape, chunks, dtype=None, compression='default',
8383

8484
def empty(shape, chunks, dtype=None, compression='default',
8585
compression_opts=None, order='C', store=None, synchronizer=None,
86-
path=None):
86+
path=None, overwrite=False):
8787
"""Create an empty array.
8888
8989
For parameter definitions see :func:`zarr.creation.create`.
@@ -98,12 +98,12 @@ def empty(shape, chunks, dtype=None, compression='default',
9898
return create(shape=shape, chunks=chunks, dtype=dtype,
9999
compression=compression, compression_opts=compression_opts,
100100
fill_value=None, order=order, store=store,
101-
synchronizer=synchronizer, path=path)
101+
synchronizer=synchronizer, path=path, overwrite=overwrite)
102102

103103

104104
def zeros(shape, chunks, dtype=None, compression='default',
105105
compression_opts=None, order='C', store=None, synchronizer=None,
106-
path=None):
106+
path=None, overwrite=False):
107107
"""Create an array, with zero being used as the default value for
108108
uninitialised portions of the array.
109109
@@ -127,12 +127,13 @@ def zeros(shape, chunks, dtype=None, compression='default',
127127
return create(shape=shape, chunks=chunks, dtype=dtype,
128128
compression=compression,
129129
compression_opts=compression_opts, fill_value=0, order=order,
130-
store=store, synchronizer=synchronizer, path=path)
130+
store=store, synchronizer=synchronizer, path=path,
131+
overwrite=overwrite)
131132

132133

133134
def ones(shape, chunks, dtype=None, compression='default',
134135
compression_opts=None, order='C', store=None, synchronizer=None,
135-
path=None):
136+
path=None, overwrite=False):
136137
"""Create an array, with one being used as the default value for
137138
uninitialised portions of the array.
138139
@@ -156,12 +157,12 @@ def ones(shape, chunks, dtype=None, compression='default',
156157
return create(shape=shape, chunks=chunks, dtype=dtype,
157158
compression=compression, compression_opts=compression_opts,
158159
fill_value=1, order=order, store=store,
159-
synchronizer=synchronizer, path=path)
160+
synchronizer=synchronizer, path=path, overwrite=overwrite)
160161

161162

162163
def full(shape, chunks, fill_value, dtype=None, compression='default',
163164
compression_opts=None, order='C', store=None, synchronizer=None,
164-
path=None):
165+
path=None, overwrite=False):
165166
"""Create an array, with `fill_value` being used as the default value for
166167
uninitialised portions of the array.
167168
@@ -185,12 +186,12 @@ def full(shape, chunks, fill_value, dtype=None, compression='default',
185186
return create(shape=shape, chunks=chunks, dtype=dtype,
186187
compression=compression, compression_opts=compression_opts,
187188
fill_value=fill_value, order=order, store=store,
188-
synchronizer=synchronizer, path=path)
189+
synchronizer=synchronizer, path=path, overwrite=overwrite)
189190

190191

191192
def array(data, chunks=None, dtype=None, compression='default',
192193
compression_opts=None, fill_value=None, order='C', store=None,
193-
synchronizer=None, path=None):
194+
synchronizer=None, path=None, overwrite=False):
194195
"""Create an array filled with `data`.
195196
196197
The `data` argument should be a NumPy array or array-like object. For
@@ -237,7 +238,7 @@ def array(data, chunks=None, dtype=None, compression='default',
237238
z = create(shape=shape, chunks=chunks, dtype=dtype,
238239
compression=compression, compression_opts=compression_opts,
239240
fill_value=fill_value, order=order, store=store,
240-
synchronizer=synchronizer, path=path)
241+
synchronizer=synchronizer, path=path, overwrite=overwrite)
241242

242243
# fill with data
243244
z[:] = data
@@ -246,9 +247,9 @@ def array(data, chunks=None, dtype=None, compression='default',
246247

247248

248249
# noinspection PyShadowingBuiltins
249-
def open(path, mode='a', shape=None, chunks=None, dtype=None,
250-
compression='default', compression_opts=None, fill_value=0, order='C',
251-
synchronizer=None):
250+
def open_array(path, mode='a', shape=None, chunks=None, dtype=None,
251+
compression='default', compression_opts=None, fill_value=0,
252+
order='C', synchronizer=None):
252253
"""Open an array stored in a directory on the file system.
253254
254255
Parameters
@@ -357,6 +358,10 @@ def open(path, mode='a', shape=None, chunks=None, dtype=None,
357358
return z
358359

359360

361+
# backwards compatibility
362+
open = open_array
363+
364+
360365
def _like_args(a, shape, chunks, dtype, compression, compression_opts, order):
361366
if shape is None:
362367
shape = a.shape
@@ -387,43 +392,46 @@ def _like_args(a, shape, chunks, dtype, compression, compression_opts, order):
387392

388393
def empty_like(a, shape=None, chunks=None, dtype=None, compression=None,
389394
compression_opts=None, order=None, store=None,
390-
synchronizer=None, path=None):
395+
synchronizer=None, path=None, overwrite=False):
391396
"""Create an empty array like `a`."""
392397
shape, chunks, dtype, compression, compression_opts, order = \
393398
_like_args(a, shape, chunks, dtype, compression, compression_opts,
394399
order)
395400
return empty(shape, chunks, dtype=dtype, compression=compression,
396401
compression_opts=compression_opts, order=order,
397-
store=store, synchronizer=synchronizer, path=path)
402+
store=store, synchronizer=synchronizer, path=path,
403+
overwrite=overwrite)
398404

399405

400406
def zeros_like(a, shape=None, chunks=None, dtype=None, compression=None,
401407
compression_opts=None, order=None, store=None,
402-
synchronizer=None, path=None):
408+
synchronizer=None, path=None, overwrite=False):
403409
"""Create an array of zeros like `a`."""
404410
shape, chunks, dtype, compression, compression_opts, order = \
405411
_like_args(a, shape, chunks, dtype, compression, compression_opts,
406412
order)
407413
return zeros(shape, chunks, dtype=dtype, compression=compression,
408414
compression_opts=compression_opts, order=order,
409-
store=store, synchronizer=synchronizer, path=path)
415+
store=store, synchronizer=synchronizer, path=path,
416+
overwrite=overwrite)
410417

411418

412419
def ones_like(a, shape=None, chunks=None, dtype=None, compression=None,
413420
compression_opts=None, order=None, store=None,
414-
synchronizer=None, path=None):
421+
synchronizer=None, path=None, overwrite=False):
415422
"""Create an array of ones like `a`."""
416423
shape, chunks, dtype, compression, compression_opts, order = \
417424
_like_args(a, shape, chunks, dtype, compression, compression_opts,
418425
order)
419426
return ones(shape, chunks, dtype=dtype, compression=compression,
420427
compression_opts=compression_opts, order=order,
421-
store=store, synchronizer=synchronizer, path=path)
428+
store=store, synchronizer=synchronizer, path=path,
429+
overwrite=overwrite)
422430

423431

424432
def full_like(a, shape=None, chunks=None, fill_value=None, dtype=None,
425433
compression=None, compression_opts=None, order=None,
426-
store=None, synchronizer=None, path=None):
434+
store=None, synchronizer=None, path=None, overwrite=False):
427435
"""Create a filled array like `a`."""
428436
shape, chunks, dtype, compression, compression_opts, order = \
429437
_like_args(a, shape, chunks, dtype, compression, compression_opts,
@@ -435,7 +443,8 @@ def full_like(a, shape=None, chunks=None, fill_value=None, dtype=None,
435443
raise ValueError('fill_value must be specified')
436444
return full(shape, chunks, fill_value, dtype=dtype,
437445
compression=compression, compression_opts=compression_opts,
438-
order=order, store=store, synchronizer=synchronizer, path=path)
446+
order=order, store=store, synchronizer=synchronizer,
447+
path=path, overwrite=overwrite)
439448

440449

441450
def open_like(a, path, mode='a', shape=None, chunks=None, dtype=None,
@@ -451,7 +460,8 @@ def open_like(a, path, mode='a', shape=None, chunks=None, dtype=None,
451460
except AttributeError:
452461
# leave empty
453462
pass
454-
return open(path, mode=mode, shape=shape, chunks=chunks, dtype=dtype,
455-
compression=compression, compression_opts=compression_opts,
456-
fill_value=fill_value, order=order,
457-
synchronizer=synchronizer)
463+
return open_array(path, mode=mode, shape=shape, chunks=chunks, dtype=dtype,
464+
compression=compression,
465+
compression_opts=compression_opts,
466+
fill_value=fill_value, order=order,
467+
synchronizer=synchronizer)

0 commit comments

Comments
 (0)