Skip to content

Possible Regression: 'Float32' object has no attribute 'value' raised when using zarr>3.0.10. #3396

Description

@jbusecke

Zarr version

main@94983362f06f9bb4be3f04562b179549e36a87c4

Numcodecs version

0.16.2

Python Version

3.12.9

Operating System

Mac

Installation

uv

Description

I was trying to test #3369 for a project using titiler-multidim together with @maxrjones earlier, and ran into this issue.

I wrote out a native zarr v3 dataset (I believe it was using v3.0.8) on the NASA veda hub and downloaded it locally for testing. When I am trying to read that in with the newest version or the main branch I get the following error:

Traceback (most recent call last):
File "/Users/juliusbusecke/Code/titiler-multidim/temp_dont_commit/mre_object_has_no_attr_value.py", line 19, in <module>
ds = xr.open_dataset(
^^^^^^^^^^^^^^^^
File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/api.py", line 679, in open_dataset
backend_ds = backend.open_dataset(
^^^^^^^^^^^^^^^^^^^^^
File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 1581, in open_dataset
ds = store_entrypoint.open_dataset(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/store.py", line 44, in open_dataset
vars, attrs = filename_or_obj.load()
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/common.py", line 312, in load
(_decode_variable_name(k), v) for k, v in self.get_variables().items()
^^^^^^^^^^^^^^^^^^^^
File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in get_variables
return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/core/utils.py", line 415, in FrozenDict
return Frozen(dict(*args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^
File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in <genexpr>
return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 852, in open_store_variable
attributes["_FillValue"], original_zarr_dtype.value
^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Float32' object has no attribute 'value'

If I downgrade to v3.0.10 the read works fine, so I am wondering if this is a regression. I am a bit confused because Max showed me the regression tests which should cover exactly this case.

I uploaded the dataset to a public bucket, so the script below should be fully repoducible and the dataset inspectable. Thankfull for any pointers.

Steps to reproduce

# /// script# requires-python = ">=3.10"# dependencies = [# "fsspec==2024.12.0",# "s3fs==2024.12.0",# "xarray==2025.1.1",# "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4"# ]# ///# To reproduce failure use dependencies above. To fix, swap "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4" for "zarr==3.0.10"importxarrayasxrimportzarrzarr.print_debug_info()
ds=xr.open_dataset(
"s3://s3://nasa-eodc-public/jbusecke/reproducers/nldas3_subsampled.zarr",
engine='zarr',
storage_options={
"anon": True
}
)
print(ds)

Additional output

Required dependencies:
packaging: 25.0
numpy: 2.3.2
numcodecs: 0.16.2
typing_extensions: 4.14.1
donfig: 0.8.1.post1

Optional dependencies:
botocore: 1.39.11
fsspec: 2024.12.0
numcodecs: 0.16.2
s3fs: 2024.12.0

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

      , 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
       blocks
      (function() {
      function addCopyButtons() {
      document.querySelectorAll('pre code').forEach(function(codeBlock) {
      if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
      codeBlock.parentElement.setAttribute('data-copy-added', 'true');
      var btn = document.createElement('button');
      btn.textContent = 'Copy';
      btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
      btn.onmouseover = function() { this.style.opacity = '1'; };
      btn.onmouseout = function() { this.style.opacity = '0.7'; };
      btn.onclick = function() {
      navigator.clipboard.writeText(codeBlock.textContent).then(function() {
      btn.textContent = 'Copied!';
      setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
      });
      };
      codeBlock.parentElement.style.position = 'relative';
      codeBlock.parentElement.appendChild(btn);
      });
      }
      addCopyButtons();
      // Re-run on dynamic content
      var observer = new MutationObserver(addCopyButtons);
      observer.observe(document.body, { childList: true, subtree: true });
      })();
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      Possible Regression: `'Float32' object has no attribute 'value'` raised when using zarr>3.0.10. · Issue #3396 · zarr-developers/zarr-python · GitHub
      Skip to content

      Possible Regression: 'Float32' object has no attribute 'value' raised when using zarr>3.0.10. #3396

      Description

      @jbusecke

      Zarr version

      main@94983362f06f9bb4be3f04562b179549e36a87c4

      Numcodecs version

      0.16.2

      Python Version

      3.12.9

      Operating System

      Mac

      Installation

      uv

      Description

      I was trying to test #3369 for a project using titiler-multidim together with @maxrjones earlier, and ran into this issue.

      I wrote out a native zarr v3 dataset (I believe it was using v3.0.8) on the NASA veda hub and downloaded it locally for testing. When I am trying to read that in with the newest version or the main branch I get the following error:

      Traceback (most recent call last):
      File "/Users/juliusbusecke/Code/titiler-multidim/temp_dont_commit/mre_object_has_no_attr_value.py", line 19, in <module>
      ds = xr.open_dataset(
      ^^^^^^^^^^^^^^^^
      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/api.py", line 679, in open_dataset
      backend_ds = backend.open_dataset(
      ^^^^^^^^^^^^^^^^^^^^^
      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 1581, in open_dataset
      ds = store_entrypoint.open_dataset(
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/store.py", line 44, in open_dataset
      vars, attrs = filename_or_obj.load()
      ^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/common.py", line 312, in load
      (_decode_variable_name(k), v) for k, v in self.get_variables().items()
      ^^^^^^^^^^^^^^^^^^^^
      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in get_variables
      return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/core/utils.py", line 415, in FrozenDict
      return Frozen(dict(*args, **kwargs))
      ^^^^^^^^^^^^^^^^^^^^^
      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in <genexpr>
      return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 852, in open_store_variable
      attributes["_FillValue"], original_zarr_dtype.value
      ^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'Float32' object has no attribute 'value'
      

      If I downgrade to v3.0.10 the read works fine, so I am wondering if this is a regression. I am a bit confused because Max showed me the regression tests which should cover exactly this case.

      I uploaded the dataset to a public bucket, so the script below should be fully repoducible and the dataset inspectable. Thankfull for any pointers.

      Steps to reproduce

      # /// script# requires-python = ">=3.10"# dependencies = [# "fsspec==2024.12.0",# "s3fs==2024.12.0",# "xarray==2025.1.1",# "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4"# ]# ///# To reproduce failure use dependencies above. To fix, swap "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4" for "zarr==3.0.10"importxarrayasxrimportzarrzarr.print_debug_info()
      ds=xr.open_dataset(
      "s3://s3://nasa-eodc-public/jbusecke/reproducers/nldas3_subsampled.zarr",
      engine='zarr',
      storage_options={
      "anon": True
      }
      )
      print(ds)

      Additional output

      Required dependencies:
      packaging: 25.0
      numpy: 2.3.2
      numcodecs: 0.16.2
      typing_extensions: 4.14.1
      donfig: 0.8.1.post1

      Optional dependencies:
      botocore: 1.39.11
      fsspec: 2024.12.0
      numcodecs: 0.16.2
      s3fs: 2024.12.0

      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

          , 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Possible Regression: `'Float32' object has no attribute 'value'` raised when using zarr>3.0.10. · Issue #3396 · zarr-developers/zarr-python · GitHub
          Skip to content

          Possible Regression: 'Float32' object has no attribute 'value' raised when using zarr>3.0.10. #3396

          Description

          @jbusecke

          Zarr version

          main@94983362f06f9bb4be3f04562b179549e36a87c4

          Numcodecs version

          0.16.2

          Python Version

          3.12.9

          Operating System

          Mac

          Installation

          uv

          Description

          I was trying to test #3369 for a project using titiler-multidim together with @maxrjones earlier, and ran into this issue.

          I wrote out a native zarr v3 dataset (I believe it was using v3.0.8) on the NASA veda hub and downloaded it locally for testing. When I am trying to read that in with the newest version or the main branch I get the following error:

          Traceback (most recent call last):
          File "/Users/juliusbusecke/Code/titiler-multidim/temp_dont_commit/mre_object_has_no_attr_value.py", line 19, in <module>
          ds = xr.open_dataset(
          ^^^^^^^^^^^^^^^^
          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/api.py", line 679, in open_dataset
          backend_ds = backend.open_dataset(
          ^^^^^^^^^^^^^^^^^^^^^
          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 1581, in open_dataset
          ds = store_entrypoint.open_dataset(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/store.py", line 44, in open_dataset
          vars, attrs = filename_or_obj.load()
          ^^^^^^^^^^^^^^^^^^^^^^
          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/common.py", line 312, in load
          (_decode_variable_name(k), v) for k, v in self.get_variables().items()
          ^^^^^^^^^^^^^^^^^^^^
          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in get_variables
          return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/core/utils.py", line 415, in FrozenDict
          return Frozen(dict(*args, **kwargs))
          ^^^^^^^^^^^^^^^^^^^^^
          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in <genexpr>
          return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 852, in open_store_variable
          attributes["_FillValue"], original_zarr_dtype.value
          ^^^^^^^^^^^^^^^^^^^^^^^^^
          AttributeError: 'Float32' object has no attribute 'value'
          

          If I downgrade to v3.0.10 the read works fine, so I am wondering if this is a regression. I am a bit confused because Max showed me the regression tests which should cover exactly this case.

          I uploaded the dataset to a public bucket, so the script below should be fully repoducible and the dataset inspectable. Thankfull for any pointers.

          Steps to reproduce

          # /// script# requires-python = ">=3.10"# dependencies = [# "fsspec==2024.12.0",# "s3fs==2024.12.0",# "xarray==2025.1.1",# "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4"# ]# ///# To reproduce failure use dependencies above. To fix, swap "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4" for "zarr==3.0.10"importxarrayasxrimportzarrzarr.print_debug_info()
          ds=xr.open_dataset(
          "s3://s3://nasa-eodc-public/jbusecke/reproducers/nldas3_subsampled.zarr",
          engine='zarr',
          storage_options={
          "anon": True
          }
          )
          print(ds)

          Additional output

          Required dependencies:
          packaging: 25.0
          numpy: 2.3.2
          numcodecs: 0.16.2
          typing_extensions: 4.14.1
          donfig: 0.8.1.post1

          Optional dependencies:
          botocore: 1.39.11
          fsspec: 2024.12.0
          numcodecs: 0.16.2
          s3fs: 2024.12.0

          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

              , 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Possible Regression: `'Float32' object has no attribute 'value'` raised when using zarr>3.0.10. · Issue #3396 · zarr-developers/zarr-python · GitHub
              Skip to content

              Possible Regression: 'Float32' object has no attribute 'value' raised when using zarr>3.0.10. #3396

              Description

              @jbusecke

              Zarr version

              main@94983362f06f9bb4be3f04562b179549e36a87c4

              Numcodecs version

              0.16.2

              Python Version

              3.12.9

              Operating System

              Mac

              Installation

              uv

              Description

              I was trying to test #3369 for a project using titiler-multidim together with @maxrjones earlier, and ran into this issue.

              I wrote out a native zarr v3 dataset (I believe it was using v3.0.8) on the NASA veda hub and downloaded it locally for testing. When I am trying to read that in with the newest version or the main branch I get the following error:

              Traceback (most recent call last):
              File "/Users/juliusbusecke/Code/titiler-multidim/temp_dont_commit/mre_object_has_no_attr_value.py", line 19, in <module>
              ds = xr.open_dataset(
              ^^^^^^^^^^^^^^^^
              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/api.py", line 679, in open_dataset
              backend_ds = backend.open_dataset(
              ^^^^^^^^^^^^^^^^^^^^^
              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 1581, in open_dataset
              ds = store_entrypoint.open_dataset(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/store.py", line 44, in open_dataset
              vars, attrs = filename_or_obj.load()
              ^^^^^^^^^^^^^^^^^^^^^^
              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/common.py", line 312, in load
              (_decode_variable_name(k), v) for k, v in self.get_variables().items()
              ^^^^^^^^^^^^^^^^^^^^
              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in get_variables
              return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/core/utils.py", line 415, in FrozenDict
              return Frozen(dict(*args, **kwargs))
              ^^^^^^^^^^^^^^^^^^^^^
              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in <genexpr>
              return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 852, in open_store_variable
              attributes["_FillValue"], original_zarr_dtype.value
              ^^^^^^^^^^^^^^^^^^^^^^^^^
              AttributeError: 'Float32' object has no attribute 'value'
              

              If I downgrade to v3.0.10 the read works fine, so I am wondering if this is a regression. I am a bit confused because Max showed me the regression tests which should cover exactly this case.

              I uploaded the dataset to a public bucket, so the script below should be fully repoducible and the dataset inspectable. Thankfull for any pointers.

              Steps to reproduce

              # /// script# requires-python = ">=3.10"# dependencies = [# "fsspec==2024.12.0",# "s3fs==2024.12.0",# "xarray==2025.1.1",# "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4"# ]# ///# To reproduce failure use dependencies above. To fix, swap "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4" for "zarr==3.0.10"importxarrayasxrimportzarrzarr.print_debug_info()
              ds=xr.open_dataset(
              "s3://s3://nasa-eodc-public/jbusecke/reproducers/nldas3_subsampled.zarr",
              engine='zarr',
              storage_options={
              "anon": True
              }
              )
              print(ds)

              Additional output

              Required dependencies:
              packaging: 25.0
              numpy: 2.3.2
              numcodecs: 0.16.2
              typing_extensions: 4.14.1
              donfig: 0.8.1.post1

              Optional dependencies:
              botocore: 1.39.11
              fsspec: 2024.12.0
              numcodecs: 0.16.2
              s3fs: 2024.12.0

              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

                  , 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Possible Regression: `'Float32' object has no attribute 'value'` raised when using zarr>3.0.10. · Issue #3396 · zarr-developers/zarr-python · GitHub
                  Skip to content

                  Possible Regression: 'Float32' object has no attribute 'value' raised when using zarr>3.0.10. #3396

                  Description

                  @jbusecke

                  Zarr version

                  main@94983362f06f9bb4be3f04562b179549e36a87c4

                  Numcodecs version

                  0.16.2

                  Python Version

                  3.12.9

                  Operating System

                  Mac

                  Installation

                  uv

                  Description

                  I was trying to test #3369 for a project using titiler-multidim together with @maxrjones earlier, and ran into this issue.

                  I wrote out a native zarr v3 dataset (I believe it was using v3.0.8) on the NASA veda hub and downloaded it locally for testing. When I am trying to read that in with the newest version or the main branch I get the following error:

                  Traceback (most recent call last):
                  File "/Users/juliusbusecke/Code/titiler-multidim/temp_dont_commit/mre_object_has_no_attr_value.py", line 19, in <module>
                  ds = xr.open_dataset(
                  ^^^^^^^^^^^^^^^^
                  File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/api.py", line 679, in open_dataset
                  backend_ds = backend.open_dataset(
                  ^^^^^^^^^^^^^^^^^^^^^
                  File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 1581, in open_dataset
                  ds = store_entrypoint.open_dataset(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                  File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/store.py", line 44, in open_dataset
                  vars, attrs = filename_or_obj.load()
                  ^^^^^^^^^^^^^^^^^^^^^^
                  File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/common.py", line 312, in load
                  (_decode_variable_name(k), v) for k, v in self.get_variables().items()
                  ^^^^^^^^^^^^^^^^^^^^
                  File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in get_variables
                  return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                  File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/core/utils.py", line 415, in FrozenDict
                  return Frozen(dict(*args, **kwargs))
                  ^^^^^^^^^^^^^^^^^^^^^
                  File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in <genexpr>
                  return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
                  File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 852, in open_store_variable
                  attributes["_FillValue"], original_zarr_dtype.value
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
                  AttributeError: 'Float32' object has no attribute 'value'
                  

                  If I downgrade to v3.0.10 the read works fine, so I am wondering if this is a regression. I am a bit confused because Max showed me the regression tests which should cover exactly this case.

                  I uploaded the dataset to a public bucket, so the script below should be fully repoducible and the dataset inspectable. Thankfull for any pointers.

                  Steps to reproduce

                  # /// script# requires-python = ">=3.10"# dependencies = [# "fsspec==2024.12.0",# "s3fs==2024.12.0",# "xarray==2025.1.1",# "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4"# ]# ///# To reproduce failure use dependencies above. To fix, swap "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4" for "zarr==3.0.10"importxarrayasxrimportzarrzarr.print_debug_info()
                  ds=xr.open_dataset(
                  "s3://s3://nasa-eodc-public/jbusecke/reproducers/nldas3_subsampled.zarr",
                  engine='zarr',
                  storage_options={
                  "anon": True
                  }
                  )
                  print(ds)

                  Additional output

                  Required dependencies:
                  packaging: 25.0
                  numpy: 2.3.2
                  numcodecs: 0.16.2
                  typing_extensions: 4.14.1
                  donfig: 0.8.1.post1

                  Optional dependencies:
                  botocore: 1.39.11
                  fsspec: 2024.12.0
                  numcodecs: 0.16.2
                  s3fs: 2024.12.0

                  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

                      , 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Possible Regression: `'Float32' object has no attribute 'value'` raised when using zarr>3.0.10. · Issue #3396 · zarr-developers/zarr-python · GitHub
                      Skip to content

                      Possible Regression: 'Float32' object has no attribute 'value' raised when using zarr>3.0.10. #3396

                      Description

                      @jbusecke

                      Zarr version

                      main@94983362f06f9bb4be3f04562b179549e36a87c4

                      Numcodecs version

                      0.16.2

                      Python Version

                      3.12.9

                      Operating System

                      Mac

                      Installation

                      uv

                      Description

                      I was trying to test #3369 for a project using titiler-multidim together with @maxrjones earlier, and ran into this issue.

                      I wrote out a native zarr v3 dataset (I believe it was using v3.0.8) on the NASA veda hub and downloaded it locally for testing. When I am trying to read that in with the newest version or the main branch I get the following error:

                      Traceback (most recent call last):
                      File "/Users/juliusbusecke/Code/titiler-multidim/temp_dont_commit/mre_object_has_no_attr_value.py", line 19, in <module>
                      ds = xr.open_dataset(
                      ^^^^^^^^^^^^^^^^
                      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/api.py", line 679, in open_dataset
                      backend_ds = backend.open_dataset(
                      ^^^^^^^^^^^^^^^^^^^^^
                      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 1581, in open_dataset
                      ds = store_entrypoint.open_dataset(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/store.py", line 44, in open_dataset
                      vars, attrs = filename_or_obj.load()
                      ^^^^^^^^^^^^^^^^^^^^^^
                      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/common.py", line 312, in load
                      (_decode_variable_name(k), v) for k, v in self.get_variables().items()
                      ^^^^^^^^^^^^^^^^^^^^
                      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in get_variables
                      return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/core/utils.py", line 415, in FrozenDict
                      return Frozen(dict(*args, **kwargs))
                      ^^^^^^^^^^^^^^^^^^^^^
                      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in <genexpr>
                      return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
                      File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 852, in open_store_variable
                      attributes["_FillValue"], original_zarr_dtype.value
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
                      AttributeError: 'Float32' object has no attribute 'value'
                      

                      If I downgrade to v3.0.10 the read works fine, so I am wondering if this is a regression. I am a bit confused because Max showed me the regression tests which should cover exactly this case.

                      I uploaded the dataset to a public bucket, so the script below should be fully repoducible and the dataset inspectable. Thankfull for any pointers.

                      Steps to reproduce

                      # /// script# requires-python = ">=3.10"# dependencies = [# "fsspec==2024.12.0",# "s3fs==2024.12.0",# "xarray==2025.1.1",# "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4"# ]# ///# To reproduce failure use dependencies above. To fix, swap "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4" for "zarr==3.0.10"importxarrayasxrimportzarrzarr.print_debug_info()
                      ds=xr.open_dataset(
                      "s3://s3://nasa-eodc-public/jbusecke/reproducers/nldas3_subsampled.zarr",
                      engine='zarr',
                      storage_options={
                      "anon": True
                      }
                      )
                      print(ds)

                      Additional output

                      Required dependencies:
                      packaging: 25.0
                      numpy: 2.3.2
                      numcodecs: 0.16.2
                      typing_extensions: 4.14.1
                      donfig: 0.8.1.post1

                      Optional dependencies:
                      botocore: 1.39.11
                      fsspec: 2024.12.0
                      numcodecs: 0.16.2
                      s3fs: 2024.12.0

                      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

                          , 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Possible Regression: `'Float32' object has no attribute 'value'` raised when using zarr>3.0.10. · Issue #3396 · zarr-developers/zarr-python · GitHub
                          Skip to content

                          Possible Regression: 'Float32' object has no attribute 'value' raised when using zarr>3.0.10. #3396

                          Description

                          @jbusecke

                          Zarr version

                          main@94983362f06f9bb4be3f04562b179549e36a87c4

                          Numcodecs version

                          0.16.2

                          Python Version

                          3.12.9

                          Operating System

                          Mac

                          Installation

                          uv

                          Description

                          I was trying to test #3369 for a project using titiler-multidim together with @maxrjones earlier, and ran into this issue.

                          I wrote out a native zarr v3 dataset (I believe it was using v3.0.8) on the NASA veda hub and downloaded it locally for testing. When I am trying to read that in with the newest version or the main branch I get the following error:

                          Traceback (most recent call last):
                          File "/Users/juliusbusecke/Code/titiler-multidim/temp_dont_commit/mre_object_has_no_attr_value.py", line 19, in <module>
                          ds = xr.open_dataset(
                          ^^^^^^^^^^^^^^^^
                          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/api.py", line 679, in open_dataset
                          backend_ds = backend.open_dataset(
                          ^^^^^^^^^^^^^^^^^^^^^
                          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 1581, in open_dataset
                          ds = store_entrypoint.open_dataset(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/store.py", line 44, in open_dataset
                          vars, attrs = filename_or_obj.load()
                          ^^^^^^^^^^^^^^^^^^^^^^
                          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/common.py", line 312, in load
                          (_decode_variable_name(k), v) for k, v in self.get_variables().items()
                          ^^^^^^^^^^^^^^^^^^^^
                          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in get_variables
                          return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/core/utils.py", line 415, in FrozenDict
                          return Frozen(dict(*args, **kwargs))
                          ^^^^^^^^^^^^^^^^^^^^^
                          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in <genexpr>
                          return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
                          File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 852, in open_store_variable
                          attributes["_FillValue"], original_zarr_dtype.value
                          ^^^^^^^^^^^^^^^^^^^^^^^^^
                          AttributeError: 'Float32' object has no attribute 'value'
                          

                          If I downgrade to v3.0.10 the read works fine, so I am wondering if this is a regression. I am a bit confused because Max showed me the regression tests which should cover exactly this case.

                          I uploaded the dataset to a public bucket, so the script below should be fully repoducible and the dataset inspectable. Thankfull for any pointers.

                          Steps to reproduce

                          # /// script# requires-python = ">=3.10"# dependencies = [# "fsspec==2024.12.0",# "s3fs==2024.12.0",# "xarray==2025.1.1",# "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4"# ]# ///# To reproduce failure use dependencies above. To fix, swap "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4" for "zarr==3.0.10"importxarrayasxrimportzarrzarr.print_debug_info()
                          ds=xr.open_dataset(
                          "s3://s3://nasa-eodc-public/jbusecke/reproducers/nldas3_subsampled.zarr",
                          engine='zarr',
                          storage_options={
                          "anon": True
                          }
                          )
                          print(ds)

                          Additional output

                          Required dependencies:
                          packaging: 25.0
                          numpy: 2.3.2
                          numcodecs: 0.16.2
                          typing_extensions: 4.14.1
                          donfig: 0.8.1.post1

                          Optional dependencies:
                          botocore: 1.39.11
                          fsspec: 2024.12.0
                          numcodecs: 0.16.2
                          s3fs: 2024.12.0

                          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

                              , 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Possible Regression: `'Float32' object has no attribute 'value'` raised when using zarr>3.0.10. · Issue #3396 · zarr-developers/zarr-python · GitHub
                              Skip to content

                              Possible Regression: 'Float32' object has no attribute 'value' raised when using zarr>3.0.10. #3396

                              Description

                              @jbusecke

                              Zarr version

                              main@94983362f06f9bb4be3f04562b179549e36a87c4

                              Numcodecs version

                              0.16.2

                              Python Version

                              3.12.9

                              Operating System

                              Mac

                              Installation

                              uv

                              Description

                              I was trying to test #3369 for a project using titiler-multidim together with @maxrjones earlier, and ran into this issue.

                              I wrote out a native zarr v3 dataset (I believe it was using v3.0.8) on the NASA veda hub and downloaded it locally for testing. When I am trying to read that in with the newest version or the main branch I get the following error:

                              Traceback (most recent call last):
                              File "/Users/juliusbusecke/Code/titiler-multidim/temp_dont_commit/mre_object_has_no_attr_value.py", line 19, in <module>
                              ds = xr.open_dataset(
                              ^^^^^^^^^^^^^^^^
                              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/api.py", line 679, in open_dataset
                              backend_ds = backend.open_dataset(
                              ^^^^^^^^^^^^^^^^^^^^^
                              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 1581, in open_dataset
                              ds = store_entrypoint.open_dataset(
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/store.py", line 44, in open_dataset
                              vars, attrs = filename_or_obj.load()
                              ^^^^^^^^^^^^^^^^^^^^^^
                              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/common.py", line 312, in load
                              (_decode_variable_name(k), v) for k, v in self.get_variables().items()
                              ^^^^^^^^^^^^^^^^^^^^
                              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in get_variables
                              return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/core/utils.py", line 415, in FrozenDict
                              return Frozen(dict(*args, **kwargs))
                              ^^^^^^^^^^^^^^^^^^^^^
                              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 858, in <genexpr>
                              return FrozenDict((k, self.open_store_variable(k)) for k in self.array_keys())
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
                              File "/Users/juliusbusecke/.cache/uv/environments-v2/mre-object-has-no-attr-value-cd1317b944d0d9b9/lib/python3.12/site-packages/xarray/backends/zarr.py", line 852, in open_store_variable
                              attributes["_FillValue"], original_zarr_dtype.value
                              ^^^^^^^^^^^^^^^^^^^^^^^^^
                              AttributeError: 'Float32' object has no attribute 'value'
                              

                              If I downgrade to v3.0.10 the read works fine, so I am wondering if this is a regression. I am a bit confused because Max showed me the regression tests which should cover exactly this case.

                              I uploaded the dataset to a public bucket, so the script below should be fully repoducible and the dataset inspectable. Thankfull for any pointers.

                              Steps to reproduce

                              # /// script# requires-python = ">=3.10"# dependencies = [# "fsspec==2024.12.0",# "s3fs==2024.12.0",# "xarray==2025.1.1",# "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4"# ]# ///# To reproduce failure use dependencies above. To fix, swap "zarr @ git+https://github.com/zarr-developers/zarr-python@94983362f06f9bb4be3f04562b179549e36a87c4" for "zarr==3.0.10"importxarrayasxrimportzarrzarr.print_debug_info()
                              ds=xr.open_dataset(
                              "s3://s3://nasa-eodc-public/jbusecke/reproducers/nldas3_subsampled.zarr",
                              engine='zarr',
                              storage_options={
                              "anon": True
                              }
                              )
                              print(ds)

                              Additional output

                              Required dependencies:
                              packaging: 25.0
                              numpy: 2.3.2
                              numcodecs: 0.16.2
                              typing_extensions: 4.14.1
                              donfig: 0.8.1.post1

                              Optional dependencies:
                              botocore: 1.39.11
                              fsspec: 2024.12.0
                              numcodecs: 0.16.2
                              s3fs: 2024.12.0

                              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