Skip to content

zarr.load deletes data #3061

Closed
Closed

Description

@alfieroddan

Zarr version

3.0.7

Numcodecs version

0.16.0

Python Version

3.11.11

Operating System

MacOS

Installation

using pip into venv

Description

If I load a folder with zarr but there is no .zarray, it deletes my data! This is really not good and not obvious.

Is this intended or a bug?

I now know that the load function is not read only!

Instead use open_array with read only mode:

z = zarr.open_array(path, mode='r')

Steps to reproduce

(env) /Users/Documents/test_folder/video_2025-04-22_16-47-43-917 $ ls
zarr_folders rgb
(env) /Users/Documents/test_folder $ python 
Python 3.11.11 (main, Dec  3 2024, 17:20:40) [Clang 16.0.0 (clang-1600.0.26.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import zarr
>>> zarr.load("/Users/Documents/test_folder/video_2025-04-22_16-47-43-917")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/Documents/EnPlayback/env/lib/python3.11/site-packages/zarr/api/synchronous.py", line 151, in load
    return sync(
           ^^^^^
  File "/Users/Documents/EnPlayback/env/lib/python3.11/site-packages/zarr/core/sync.py", line 163, in sync
    raise return_result
  File "/Users/Documents/EnPlayback/env/lib/python3.11/site-packages/zarr/core/sync.py", line 119, in _runner
    return await coro
           ^^^^^^^^^^
  File "/Users/Documents/EnPlayback/env/lib/python3.11/site-packages/zarr/api/asynchronous.py", line 275, in load
    raise NotImplementedError("loading groups not yet supported")
NotImplementedError: loading groups not yet supported
(env) /Users/Documents/test_folder/video_2025-04-22_16-47-43-917 $ ls
zarr.json

Additional output

No response

Activity

  1. added
    bugPotential issues with the zarr-python library
    on May 15, 2025
  2. joshmoore commented on May 15, 2025

    @joshmoore
    Member

    can confirm

    bar.py

    # /// script
    # requires-python = ">=3.12"
    # dependencies = [
    #     "zarr",
    # ]
    # ///
    
    import zarr
    zarr.load("/tmp/bar")
    

    setup and run

    cd /tmp
    mkdir bar
    touch bar/IMPORTANT
    uv run bar.py
    Installed 5 packages in 10ms
    Traceback (most recent call last):
      File "/private/tmp/bar.py", line 9, in <module>
        zarr.load("/tmp/bar")
        ~~~~~~~~~^^^^^^^^^^^^
      File "/Users/jamoore/.cache/uv/environments-v2/bar-1ba879a2e7d68a2e/lib/python3.13/site-packages/zarr/api/synchronous.py", line 151, in load
        return sync(
            async_api.load(store=store, zarr_version=zarr_version, zarr_format=zarr_format, path=path)
        )
      File "/Users/jamoore/.cache/uv/environments-v2/bar-1ba879a2e7d68a2e/lib/python3.13/site-packages/zarr/core/sync.py", line 163, in sync
        raise return_result
      File "/Users/jamoore/.cache/uv/environments-v2/bar-1ba879a2e7d68a2e/lib/python3.13/site-packages/zarr/core/sync.py", line 119, in _runner
        return await coro
               ^^^^^^^^^^
      File "/Users/jamoore/.cache/uv/environments-v2/bar-1ba879a2e7d68a2e/lib/python3.13/site-packages/zarr/api/asynchronous.py", line 275, in load
        raise NotImplementedError("loading groups not yet supported")
    NotImplementedError: loading groups not yet supported
    

    "IMPORTANT" is gone

    $ find bar
    bar
    bar/zarr.json
    

    Same results with:

    # dependencies = [
    #     "zarr @ git+https://github.com/zarr-developers/zarr-python.git#egg=zarr",
    # ]
    
  3. d-v-b commented on May 15, 2025

    @d-v-b
    Contributor

    See a similar report in #2719

    I think the acute fix is to ensure that load invokes open with mode=r

  4. FabricioArendTorres commented on May 19, 2025

    @FabricioArendTorres

    This seems like an absolutely major issue.

    Is this only an issue for the LocalStore?

  5. d-v-b commented on May 19, 2025

    @d-v-b
    Contributor

    thanks for sorting this out @dstansby!

  6. dstansby commented on May 19, 2025

    @dstansby
    Contributor

    Is this only an issue for the LocalStore?

    I think (but haven't tested) that this issue affects all stores. We will try and get a release out with a fix later today, sorry for the pretty bad bug 😬

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugPotential issues with the zarr-python library

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions