Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
191 commits
Select commit Hold shift + click to select a range
8301fa6
POC of making a single file out of zarr dot files
Jun 26, 2018
be6d706
(WIP) include simple code that would load metadata
Jul 2, 2018
f1128ff
Implement ConsolidatedMetadataStore
Aug 2, 2018
6666391
fix for py34 py35
Aug 2, 2018
a369073
improve coverage; data write in consolidated store
Aug 2, 2018
96e1fb0
coverage
Aug 2, 2018
36139cb
implemented the rest of the mutable mapping functions. tests pass wit…
shikharsg Aug 12, 2018
bda0c3f
using local blob emulator for storage.ABSStore testing
shikharsg Aug 14, 2018
447c473
fixed PY2 array.array error in storage.ABSStore
shikharsg Aug 14, 2018
c6858ed
create test container if not exists in ABSStore test
shikharsg Aug 14, 2018
8e51b3b
added more tests for ABSStore
shikharsg Aug 14, 2018
ec4e3f1
reverted blob client creation to inside of ABSStore
shikharsg Aug 15, 2018
bde7b5e
added group test for ABSStore
shikharsg Aug 15, 2018
b86cf53
emulator connection string not needed
shikharsg Aug 15, 2018
f66dadd
fixed import statement location and put azure-storage-blob in require…
shikharsg Aug 15, 2018
b8f60fe
fixed pickle tests
shikharsg Aug 15, 2018
edd5a71
fixed listdir in ABSStore
shikharsg Aug 15, 2018
3fbe589
fixed getsize
shikharsg Aug 16, 2018
4b8560e
Fixed PY2 pickle test. python 2 pickle can't pickle instance methods
shikharsg Aug 16, 2018
631051c
implemented the suggestion from here: https://github.com/zarr-develop…
shikharsg Sep 4, 2018
ea93352
flake-8 fixes
shikharsg Sep 5, 2018
9d1f933
Create CODE_OF_CONDUCT.md
Oct 5, 2018
260b27a
add email
Oct 11, 2018
91a5d5a
Merge pull request #305 from jhamman/add-code-of-conduct-1
alimanfoo Oct 11, 2018
2df74ed
fix failing pickle tests
alimanfoo Oct 18, 2018
d28bfd3
flake8
alimanfoo Oct 18, 2018
7a5c81d
POC of making a single file out of zarr dot files
Jun 26, 2018
0711920
(WIP) include simple code that would load metadata
Jul 2, 2018
f8e6a2f
Implement ConsolidatedMetadataStore
Aug 2, 2018
c4436c7
fix for py34 py35
Aug 2, 2018
0757a72
improve coverage; data write in consolidated store
Aug 2, 2018
da3f6d7
coverage
Aug 2, 2018
9e1c2c0
Merge branch 'consolidate_metadata' of https://github.com/martinduran…
Oct 18, 2018
f921ed4
add py37; drop py34; upgrade requirements
alimanfoo Oct 18, 2018
4c6aaad
fix docstrings for npy115
alimanfoo Oct 18, 2018
e62ae58
cannot get warnings tests to work on py2, skip them
alimanfoo Oct 18, 2018
8fb6c1e
tweaks to storage pickle and tests
alimanfoo Oct 18, 2018
90e1d49
simplify PR template
alimanfoo Oct 18, 2018
d1415a1
get py37 working on travis
alimanfoo Oct 18, 2018
1e51c86
reduce verbosity
alimanfoo Oct 18, 2018
b8856fd
release notes
alimanfoo Oct 18, 2018
703ed6d
skip a doctest
alimanfoo Oct 18, 2018
887846f
try to get appveyor working for py37
alimanfoo Oct 18, 2018
f87bfa9
test different npy under py36 not py37
alimanfoo Oct 18, 2018
56e2384
ensure cythonize numcodecs for py37 on appveyor
alimanfoo Oct 18, 2018
b0da1f5
tweak comment [ci skip]
alimanfoo Oct 19, 2018
2bc8e69
Merge pull request #308 from alimanfoo/pickle-failures-20181018
alimanfoo Oct 19, 2018
552a084
POC of making a single file out of zarr dot files
Jun 26, 2018
8f3325f
(WIP) include simple code that would load metadata
Jul 2, 2018
5da425f
Implement ConsolidatedMetadataStore
Aug 2, 2018
e62d39c
fix for py34 py35
Aug 2, 2018
01e815a
improve coverage; data write in consolidated store
Aug 2, 2018
1561ead
coverage
Aug 2, 2018
03d1dbc
doc and param style
alimanfoo Oct 18, 2018
4e55548
add test for nchunks_initialized
alimanfoo Oct 18, 2018
c283487
expose chunk_store param in open* functions
alimanfoo Oct 18, 2018
cc9d7c7
implement open_consolidated
alimanfoo Oct 18, 2018
a14b045
tweaks to consolidated behaviour
alimanfoo Oct 18, 2018
0cbda15
py2 fix
alimanfoo Oct 18, 2018
21a1c61
Add support for shapes in dtype definitions
Aug 31, 2018
16d59aa
Add shape encoding and metadata test
Aug 31, 2018
6217227
Resolve flake complaint
Aug 31, 2018
45daca9
Fix Python2 syntax error and separate unpacker
Aug 31, 2018
c325ca4
Refactor field unpacking
Aug 31, 2018
32208da
Expand unstructured array dimensions into shape
Aug 31, 2018
53d0ad7
Undo unnecessary change
Aug 31, 2018
4ab7fc7
Write subshape tests and remove old meta test
Sep 5, 2018
f8748c5
Revert "Write subshape tests and remove old ..."
Sep 5, 2018
78cf6b5
Refine unstructured/structured metadata tests
Sep 5, 2018
ee475e6
Write crude write-read test
Sep 5, 2018
7bd2a7e
Fix dtype expansion during store initialization
Sep 13, 2018
aad7e94
Move crude tests to core tests
Sep 13, 2018
1c8e45b
Fix flake8 complaints
Sep 13, 2018
c0eacea
Fix accidental test break
Sep 13, 2018
7356b8b
Reference upstream numpy bug in test suite
Sep 13, 2018
9311f4f
Style revisions
Oct 12, 2018
4daf0dd
clarify how to encode structured data types
alimanfoo Oct 19, 2018
ba7b2a6
minor edit
alimanfoo Oct 19, 2018
6d4179e
test and fix for uninitialised structured array
alimanfoo Oct 19, 2018
5c95aaa
release notes [ci skip]
alimanfoo Oct 19, 2018
a4d5656
Merge pull request #296 from onalant/shape
alimanfoo Oct 19, 2018
0cb9f77
Fix typo in comment
jakirkham Oct 19, 2018
cc9f4e1
Merge pull request #310 from jakirkham/fix_typo_comment
alimanfoo Oct 20, 2018
e890015
Merge branch 'consolidate_metadata' of https://github.com/martinduran…
Oct 23, 2018
b4b60aa
Update docstrings
Oct 23, 2018
cae30da
added api docs; consistify references in docstrings
alimanfoo Oct 31, 2018
ba99cfa
add tests
alimanfoo Nov 1, 2018
6f01dec
Add section to tutorial, add to release notes
Nov 1, 2018
89bde83
Merge branch 'master' into consolidate_metadata
Nov 1, 2018
f5130ac
fix getsize test
alimanfoo Nov 1, 2018
9135ad1
Merge branch 'consolidate_metadata' of github.com:martindurant/zarr i…
alimanfoo Nov 1, 2018
3d3cb2f
add setuptools-scm to dev env so can go fully offline
alimanfoo Nov 1, 2018
8acf83a
fix requirements
alimanfoo Nov 1, 2018
2f89535
skip consolidate doctests; minor edits
alimanfoo Nov 1, 2018
c8ed0f6
fix refs [ci skip]
alimanfoo Nov 1, 2018
9c0c621
make consolidated metadata human-readable
alimanfoo Nov 3, 2018
ccef26c
comments [ci skip]
alimanfoo Nov 6, 2018
a9cfa56
rework requirements for pyup.io
alimanfoo Nov 8, 2018
c8bb007
include cython in test requirements
alimanfoo Nov 14, 2018
d193a78
Merge pull request #268 from martindurant/consolidate_metadata
alimanfoo Nov 14, 2018
4a29648
Merge branch 'master' into rework-requirements-alimanfoo-20181108
alimanfoo Nov 14, 2018
2720338
Merge pull request #326 from alimanfoo/rework-requirements-alimanfoo-…
alimanfoo Nov 14, 2018
f304350
fix coverage
alimanfoo Nov 14, 2018
892470f
add basic tests for reading and writing to ConsolidatedMetadataStore
alimanfoo Nov 14, 2018
081dcd2
fix consolidated tests
alimanfoo Nov 14, 2018
e1a58a8
Merge pull request #332 from alimanfoo/fix-coverage-alimanfoo-20181114
alimanfoo Nov 14, 2018
4ac24fc
Configure flake8's line length as 100
jakirkham Nov 16, 2018
e44c4c5
Merge pull request #335 from jakirkham/config_flake8_line_len
jakirkham Nov 16, 2018
a0f34d3
pass kwargs to consolidate
rabernat Nov 19, 2018
3b50e3c
Merge pull request #338 from rabernat/consolidated_pass_kwargs
alimanfoo Nov 19, 2018
6cb8e85
Mark decoding as not covered by Python 2 tests
jakirkham Nov 21, 2018
dd17cd4
merged master with abs_store
shikharsg Nov 27, 2018
08fe155
added azure-storage-blob
shikharsg Nov 27, 2018
957b405
first attempt at docker build with azurite
shikharsg Nov 30, 2018
9c128db
azure storage emulator in appveyor
shikharsg Nov 30, 2018
2da2453
syntax correction
shikharsg Nov 30, 2018
a09e2c9
checking if emulator is preinstalled
shikharsg Nov 30, 2018
5ce6a4c
syntax fix
shikharsg Nov 30, 2018
bf8aa37
syntax fix
shikharsg Nov 30, 2018
730255c
syntax fix
shikharsg Nov 30, 2018
7eed366
Bump Numcodecs requirement to 0.6.1
jakirkham Nov 30, 2018
2552f62
Assert MsgPack round-trips bytes objects correctly
jakirkham Nov 30, 2018
aee5ace
properly guard against removal of object codec
alimanfoo Dec 1, 2018
bf4eee8
Ensure `chunk` in `_decode_chunk` is an `ndarray`
jakirkham Dec 1, 2018
b741fe1
Reshape `chunk` ourselves since it is an `ndarray`
jakirkham Dec 1, 2018
f3144ae
Refactor `reshape` from `_decode_chunk`
jakirkham Dec 1, 2018
3e3920a
Consolidate type checks in `_decode_chunk`
jakirkham Dec 1, 2018
7c283df
Merge pull request #343 from jakirkham/add_pragma_cov
jakirkham Dec 2, 2018
9badf39
Drop `ensure_bytes` definition from `zarr.storage`
jakirkham Dec 3, 2018
7bd8a2a
Take flattened array views to avoid some copies
jakirkham Dec 3, 2018
2c6ac77
Simplify `buffer_size` by using `ensure_ndarray`
jakirkham Dec 3, 2018
398820f
Simplify `ensure_str` in `zarr.meta`
jakirkham Dec 3, 2018
bc4d579
Bump to Numcodecs 0.6.2
jakirkham Dec 3, 2018
efacb52
Update tutorial's info content
jakirkham Dec 4, 2018
3299c42
Fix missing backslash in docs [ci skip]
jakirkham Dec 4, 2018
06475af
Merge pull request #353 from jakirkham/fix_missing_backslash
jakirkham Dec 4, 2018
15d0e12
Skip coverage of temp file cleanup
jakirkham Dec 4, 2018
6214948
Merge pull request #355 from jakirkham/ignore_tempfile_cleanup
alimanfoo Dec 4, 2018
cad0007
Merge 'zarr-developers/master' into 'jakirkham/use_numcodecs_0.6.2'
jakirkham Dec 4, 2018
cc1d776
release notes [ci skip]
alimanfoo Dec 4, 2018
c4427a4
Bump Numcodecs requirement to 0.6.2 (#352)
alimanfoo Dec 4, 2018
94f7a8d
avoid race condition during chunk write (#327)
sbalmer Dec 4, 2018
8ebb16c
Ensure `DictStore` contains only `bytes` (#350)
jakirkham Dec 7, 2018
8e18c81
Cast datetime and timedelta to signed 64-bit int (#344)
jakirkham Dec 10, 2018
d747f4c
Use `ensure_ndarray` to view chunk as an array (#360)
jakirkham Dec 10, 2018
8dc2f5d
removed wrong syntax
shikharsg Dec 12, 2018
85a5670
storage emulator with docker
shikharsg Dec 12, 2018
b2cda56
merged abs_store with upstream
shikharsg Dec 12, 2018
a09fb61
trying different appveyor image
shikharsg Dec 13, 2018
168ba50
flake 8 fixes
shikharsg Dec 13, 2018
e0de99b
full coverage
shikharsg Dec 13, 2018
3efe802
verbose logs for pip install to see appveyor error
shikharsg Dec 14, 2018
8f85315
trying to run locally installed emulator
shikharsg Dec 14, 2018
d1bb9ce
single-double quote yaml fix
shikharsg Dec 14, 2018
735c661
cmd prefix
shikharsg Dec 14, 2018
979a438
double quotes around exe file path
shikharsg Dec 14, 2018
5beace1
double quotes within single quotes with environment variable substitu…
shikharsg Dec 14, 2018
68bda4e
trying appveyor build with VS2015 image
shikharsg Dec 14, 2018
77db637
added comment and removed verbosity option for pip install
shikharsg Dec 14, 2018
bcdc839
list_abs_directory to list only directory blob using delimiter option…
shikharsg Dec 14, 2018
ac286ce
fixed ABSStore docs
shikharsg Dec 14, 2018
2c1a6e0
Drop temporary workaround for `get_codec` (#361)
jakirkham Dec 15, 2018
cdaceb7
fixed windows path listdir error
shikharsg Dec 16, 2018
b6b3024
ABSStore refactoring
shikharsg Dec 16, 2018
b6eebc8
moved py2 array.array checking to numcodecs ensure bytes
shikharsg Dec 23, 2018
bf2b672
Use `reversed` to iterate through `list` backwards (#374)
jakirkham Jan 3, 2019
d7ad9fb
Always use `tuple`s for multidimensional indexing (#376)
jakirkham Jan 3, 2019
585f0f5
Test the `popitem` method of `MutableMapping`s too (#378)
jakirkham Jan 16, 2019
fefce3b
Test `pop` with default argument (#380)
jakirkham Jan 16, 2019
43f7fae
Add SQLiteStore (#368)
jakirkham Jan 22, 2019
101be91
Merge branch 'master' into abs_store
shikharsg Jan 22, 2019
3abe79d
syntax fix
shikharsg Jan 22, 2019
3ad6d9c
flake8 fix
shikharsg Jan 22, 2019
ab38119
fixed ABSStore parameter name container
shikharsg Jan 23, 2019
05aab41
removed context manager from ABSStore
shikharsg Jan 23, 2019
90b5e3a
ABSStore.__delitem__ now takes only 1 azure storage API call
shikharsg Jan 23, 2019
4636d5d
docs
shikharsg Jan 23, 2019
8c3863f
Update zarr/storage.py
alimanfoo Jan 23, 2019
b238f0b
removed global import of azure storage library
shikharsg Feb 1, 2019
9770876
added ABSStore to zarr root import
shikharsg Feb 2, 2019
3ed4814
added ABSStore to tutorial.rst
shikharsg Feb 2, 2019
7b08aba
fixed docs
shikharsg Feb 2, 2019
6fc869d
trying to fix tutorial.rst
shikharsg Feb 2, 2019
e9a402e
flake8 fix
shikharsg Feb 2, 2019
8aa3a01
fixing tutorial.rst
shikharsg Feb 2, 2019
a9940a2
fixed ABSStore in tutorial
shikharsg Feb 4, 2019
4d5b6d1
docs
shikharsg Feb 4, 2019
8495469
Chunkwise iteration over arrays. (#399)
jeromekelleher Feb 6, 2019
be1c606
add missing PR link
alimanfoo Feb 6, 2019
b76b282
MongoDB and Redis stores (#372)
Feb 8, 2019
45b0642
Merge branch 'master' into abs_store
shikharsg Feb 9, 2019
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
8 changes: 1 addition & 7 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,9 @@

TODO:
* [ ] Add unit tests and/or doctests in docstrings
* [ ] Unit tests and doctests pass locally under Python 3.6 (e.g., run ``tox -e py36`` or
``pytest -v --doctest-modules zarr``)
* [ ] Unit tests pass locally under Python 2.7 (e.g., run ``tox -e py27`` or
``pytest -v zarr``)
* [ ] PEP8 checks pass (e.g., run ``tox -e py36`` or ``flake8 --max-line-length=100 zarr``)
* [ ] Add docstrings and API docs for any new/modified user-facing classes and functions
* [ ] New/modified features documented in docs/tutorial.rst
* [ ] Doctests in tutorial pass (e.g., run ``tox -e py36`` or ``python -m doctest -o NORMALIZE_WHITESPACE -o ELLIPSIS docs/tutorial.rst``)
* [ ] Changes documented in docs/release.rst
* [ ] Docs build locally (e.g., run ``tox -e docs``)
* [ ] AppVeyor and Travis CI passes
* [ ] Test coverage to 100% (Coveralls passes)
* [ ] Test coverage is 100% (Coveralls passes)
24 changes: 24 additions & 0 deletions .pyup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# pyup.io config file
# see https://pyup.io/docs/configuration/ for all available options

schedule: every month

requirements:
- requirements.txt:
pin: False
update: False
- requirements_test.txt:
pin: False
update: False
- requirements_rtfd.txt:
pin: False
update: False
- requirements_dev.txt:
pin: True
update: all
- requirements_dev_npy.txt:
pin: True
update: all
- requirements_dev_optional.txt:
pin: True
update: all
28 changes: 21 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,29 @@ addons:
packages:
- libdb-dev

python:
- 2.7
- 3.4
- 3.5
- 3.6
services:
- docker
- redis-server
- mongodb

matrix:
include:
- python: 2.7
- python: 3.5
- python: 3.6
- python: 3.7
dist: xenial
sudo: true

before_install:
- docker pull arafato/azurite
- mkdir ~/blob_emulator
- docker run -e executable=blob -d -t -p 10000:10000 -v ~/blob_emulator:/opt/azurite/folder arafato/azurite
before_script:
- mongo mydb_test --eval 'db.createUser({user:"travis",pwd:"test",roles:["readWrite"]});'

install:
- pip install -U pip setuptools wheel
- pip install -U tox-travis coveralls
- pip install -U pip setuptools wheel tox-travis coveralls

script:
- tox
Expand Down
46 changes: 46 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at zarr.conduct@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
55 changes: 19 additions & 36 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,67 +2,50 @@ branches:
only:
- master

# the VS C++ compiler path, doesn't seem to exist in the PATH environment variable of
# the Visual Studio 2017 build VM, due to which the pyosreplace package fails to build
image: Visual Studio 2015

environment:

global:
# SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the
# /E:ON and /V:ON options are not enabled in the batch script intepreter
# See: http://stackoverflow.com/a/13751649/163740
CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\build.cmd"
EMULATOR_LOC: C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\Storage Emulator\\AzureStorageEmulator.exe

matrix:

- PYTHON: "C:\\Python27"
PYTHON_VERSION: "2.7"
NUMPY_VERSION: "1.13.3"

- PYTHON: "C:\\Python27-x64"
PYTHON_VERSION: "2.7"
NUMPY_VERSION: "1.13.3"
DISTUTILS_USE_SDK: "1"

- PYTHON: "C:\\Python34"
NUMPY_VERSION: "1.13.3"
PYTHON_VERSION: "3.4"

- PYTHON: "C:\\Python34-x64"
PYTHON_VERSION: "3.4"
NUMPY_VERSION: "1.13.3"
DISTUTILS_USE_SDK: "1"

- PYTHON: "C:\\Python35"
PYTHON_VERSION: "3.5"
NUMPY_VERSION: "1.13.3"

- PYTHON: "C:\\Python35-x64"
PYTHON_VERSION: "3.5"
NUMPY_VERSION: "1.13.3"

- PYTHON: "C:\\Python36"
PYTHON_VERSION: "3.6"
NUMPY_VERSION: "1.13.3"

- PYTHON: "C:\\Python36-x64"
PYTHON_VERSION: "3.6"
NUMPY_VERSION: "1.13.3"

- PYTHON: "C:\\Python36"
PYTHON_VERSION: "3.6"
NUMPY_VERSION: "1.14.0"

- PYTHON: "C:\\Python36-x64"
PYTHON_VERSION: "3.6"
NUMPY_VERSION: "1.14.0"
- PYTHON: "C:\\Python37-x64"
PYTHON_VERSION: "3.7"

install:
- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- "%CMD_IN_ENV% python -m pip install -U pip setuptools wheel"
- "%CMD_IN_ENV% python -m pip install -rrequirements_test.txt"
- "%CMD_IN_ENV% python -m pip install -rrequirements_dev_npy.txt"
- "%CMD_IN_ENV% python -m pip install --no-binary=numcodecs -rrequirements_dev.txt"
- "%CMD_IN_ENV% python setup.py install"
- "%CMD_IN_ENV% python -m pip freeze"

build: off

before_test:
- '"%EMULATOR_LOC%" start'

test_script:
- "%CMD_IN_ENV% python -m pip install -U pip setuptools wheel"
- "%CMD_IN_ENV% python -m pip install numpy==%NUMPY_VERSION%"
- "%CMD_IN_ENV% python -m pip install -rrequirements_dev.txt"
- "%CMD_IN_ENV% python setup.py install"
- "%CMD_IN_ENV% python -m pytest -v --pyargs zarr"


after_test:
- '"%EMULATOR_LOC%" stop'
2 changes: 2 additions & 0 deletions docs/api/convenience.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ Convenience functions (``zarr.convenience``)
.. autofunction:: copy_all
.. autofunction:: copy_store
.. autofunction:: tree
.. autofunction:: consolidate_metadata
.. autofunction:: open_consolidated
10 changes: 10 additions & 0 deletions docs/api/storage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,22 @@ Storage (``zarr.storage``)
.. automethod:: close
.. automethod:: flush

.. autoclass:: SQLiteStore

.. automethod:: close

.. autoclass:: MongoDBStore
.. autoclass:: RedisStore
.. autoclass:: LRUStoreCache

.. automethod:: invalidate
.. automethod:: invalidate_values
.. automethod:: invalidate_keys

.. autoclass:: ABSStore

.. autoclass:: ConsolidatedMetadataStore

.. autofunction:: init_array
.. autofunction:: init_group
.. autofunction:: contains_array
Expand Down
71 changes: 71 additions & 0 deletions docs/release.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,77 @@
Release notes
=============

.. _release_2.3.0:

2.3.0 (Work in Progress)
------------------------

Enhancements
~~~~~~~~~~~~

* New storage backend, backed by Azure Blob Storage,
class :class:`zarr.storage.ABSStore`.
All data is stored as Block blobs.

* Add "consolidated" metadata as an experimental feature: use
:func:`zarr.convenience.consolidate_metadata` to copy all metadata from the various
metadata keys within a dataset hierarchy under a single key, and
:func:`zarr.convenience.open_consolidated` to use this single key. This can greatly
cut down the number of calls to the storage backend, and so remove a lot of overhead
for reading remote data. By :user:`Martin Durant <martindurant>`, :issue:`268`.

* Support has been added for structured arrays with sub-array shape and/or nested fields. By
:user:`Tarik Onalan <onalant>`, :issue:`111`, :issue:`296`.

* Adds the SQLite-backed :class:`zarr.storage.SQLiteStore` class enabling an
SQLite database to be used as the backing store for an array or group.
By :user:`John Kirkham <jakirkham>`, :issue:`368`, :issue:`365`.

* Efficient iteration over arrays by decompressing chunkwise.
By :user:`Jerome Kelleher <jeromekelleher>`, :issue:`398`, :issue:`399`.

* Adds the Redis-backed :class:`zarr.storage.RedisStore` class enabling a
Redis database to be used as the backing store for an array or group.
By :user:`Joe Hamman <jhamman>`, :issue:`299`, :issue:`372`.

* Adds the MongoDB-backed :class:`zarr.storage.MongoDBStore` class enabling a
MongoDB database to be used as the backing store for an array or group.
By :user:`Joe Hamman <jhamman>`, :issue:`299`, :issue:`372`.

Bug fixes
~~~~~~~~~

* The implementation of the :class:`zarr.storage.DirectoryStore` class has been modified to
ensure that writes are atomic and there are no race conditions where a chunk might appear
transiently missing during a write operation. By :user:`sbalmer <sbalmer>`, :issue:`327`,
:issue:`263`.

* The required version of the `numcodecs <http://numcodecs.rtfd.io>`_ package has been upgraded
to 0.6.2, which has enabled some code simplification and fixes a failing test involving
msgpack encoding. By :user:`John Kirkham <jakirkham>`, :issue:`361`, :issue:`360`, :issue:`352`,
:issue:`355`, :issue:`324`.

* Failing tests related to pickling/unpickling have been fixed. By :user:`Ryan Williams <ryan-williams>`,
:issue:`273`, :issue:`308`.

* Ensure ``DictStore`` contains only ``bytes`` to facilitate comparisons and protect against writes.
By :user:`John Kirkham <jakirkham>`, :issue:`350`

* Always use a ``tuple`` when indexing a NumPy ``ndarray``.
By :user:`John Kirkham <jakirkham>`, :issue:`376`

Maintenance
~~~~~~~~~~~

* CI and test environments have been upgraded to include Python 3.7, drop Python 3.4, and
upgrade all pinned package requirements. :issue:`308`.

* Corrects handling of ``NaT`` in ``datetime64`` and ``timedelta64`` in various
compressors (by :user:`John Kirkham <jakirkham>`; :issue:`344`).

Acknowledgments
~~~~~~~~~~~~~~~

.. _release_2.2.0:

2.2.0
Expand Down
38 changes: 30 additions & 8 deletions docs/spec/v2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,31 @@ the `NumPy documentation on Datetimes and Timedeltas
<https://docs.scipy.org/doc/numpy/reference/arrays.datetime.html#datetime-units>`_.
For example, ``"<M8[ns]"`` specifies a datetime64 data type with nanosecond time units.

Structured data types (i.e., with multiple named fields) are encoded as a list
of two-element lists, following `NumPy array protocol type descriptions (descr)
<http://docs.scipy.org/doc/numpy/reference/arrays.interface.html#>`_. For
example, the JSON list ``[["r", "|u1"], ["g", "|u1"], ["b", "|u1"]]`` defines a
data type composed of three single-byte unsigned integers labelled "r", "g" and
"b".

Structured data types (i.e., with multiple named fields) are encoded
as a list of lists, following `NumPy array protocol type descriptions
(descr)
<http://docs.scipy.org/doc/numpy/reference/arrays.interface.html#>`_. Each
sub-list has the form ``[fieldname, datatype, shape]`` where ``shape``
is optional. ``fieldname`` is a string, ``datatype`` is a string
specifying a simple data type (see above), and ``shape`` is a list of
integers specifying subarray shape. For example, the JSON list below
defines a data type composed of three single-byte unsigned integer
fields named "r", "g" and "b"::

[["r", "|u1"], ["g", "|u1"], ["b", "|u1"]]

For example, the JSON list below defines a data type composed of three
fields named "x", "y" and "z", where "x" and "y" each contain 32-bit
floats, and each item in "z" is a 2 by 2 array of floats::

[["x", "<f4"], ["y", "<f4"], ["z", "<f4", [2, 2]]]

Structured data types may also be nested, e.g., the following JSON
list defines a data type with two fields "foo" and "bar", where "bar"
has two sub-fields "baz" and "qux"::

[["foo", "<f4"], ["bar", [["baz", "<f4"], ["qux", "<i4"]]]]

.. _spec_v2_array_fill_value:

Fill value encoding
Expand Down Expand Up @@ -235,7 +253,7 @@ keys like "foo/bar/0.0", "foo/bar/0.1", etc.
To ensure consistent behaviour across different storage systems, logical paths
MUST be normalized as follows:

* Replace all backward slash characters ("\\") with forward slash characters
* Replace all backward slash characters ("\\\\") with forward slash characters
("/")
* Strip any leading "/" characters
* Strip any trailing "/" characters
Expand Down Expand Up @@ -512,6 +530,10 @@ initially published to clarify ambiguities and add some missing information.
either arrays or groups, and if absent then custom attributes should be treated as
empty.

* The specification now describes how structured datatypes with
subarray shapes and/or with nested structured data types are encoded
in array metadata (:issue:`111`, :issue:`296`).


Changes from version 1 to version 2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
Loading