From 208e83e6249ed5362f8bab1b4b857b42255e8bfc Mon Sep 17 00:00:00 2001 From: Aimee Barciauskas Date: Wed, 4 Dec 2024 16:30:47 -0800 Subject: [PATCH] Updated notebook --- noaa-cdr-sst.ipynb | 1090 ++++---------------------------------------- 1 file changed, 79 insertions(+), 1011 deletions(-) diff --git a/noaa-cdr-sst.ipynb b/noaa-cdr-sst.ipynb index 84241ac9..937969bf 100644 --- a/noaa-cdr-sst.ipynb +++ b/noaa-cdr-sst.ipynb @@ -8,14 +8,13 @@ "outputs": [], "source": [ "# !pip install -e \".[icechunk]\"\n", - "# NOTE: a change has to be made https://github.com/mpiannucci/kerchunk/blob/v3/kerchunk/utils.py#L55 from mode='w' to read_only=False\n", "# !pip install git+https://github.com/mpiannucci/kerchunk@v3\n", "# !pip install fsspec s3fs" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "3055eff4-9e22-4a95-a7fd-96933f381183", "metadata": {}, "outputs": [ @@ -24,7 +23,7 @@ "output_type": "stream", "text": [ "Name: icechunk\n", - "Version: 0.1.0a5\n", + "Version: 0.1.0a7\n", "Summary: Transactional storage engine for Zarr designed for use on cloud object storage\n", "Home-page: https://github.com/earth-mover/icechunk\n", "Author: Earthmover PBC\n", @@ -42,7 +41,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "2f69f0bb-316b-452c-b1ba-4d7ef4afcf67", "metadata": {}, "outputs": [], @@ -60,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "1532c33b-804f-49fa-9fa9-0eb42ea87e26", "metadata": {}, "outputs": [], @@ -76,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "06bbec92-3974-4859-8bda-353afc7800b9", "metadata": {}, "outputs": [], @@ -91,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "77fb94c8-870f-4c9e-8421-ac9c17402122", "metadata": {}, "outputs": [], @@ -107,7 +106,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 18, "id": "abefd6fa-386a-4e07-a7c8-219d3730eeeb", "metadata": {}, "outputs": [], @@ -117,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 19, "id": "79a4228a-0e17-4b07-9144-f24fe06db832", "metadata": {}, "outputs": [], @@ -130,60 +129,94 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 20, "id": "5fd0c082-8d5e-46a8-a994-fee80baa4ecc", "metadata": {}, "outputs": [], "source": [ - "store = IcechunkStore.create(storage=storage_config, config=virtual_ref_store_config)" + "store = await IcechunkStore.create(\n", + " storage=storage_config, config=virtual_ref_store_config, read_only=False\n", + ")" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 21, "id": "55ebbc5f-add2-4de8-81f6-5aaf64d9e2b6", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n", + " store.set_virtual_ref(\n", + "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n", + "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n", + " store.set_virtual_ref(\n", + "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n", + "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n", + " store.set_virtual_ref(\n", + "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n", + "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n", + " store.set_virtual_ref(\n", + "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n", + "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n", + " store.set_virtual_ref(\n", + "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n", + "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n", + " store.set_virtual_ref(\n", + "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n", + "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n", + " store.set_virtual_ref(\n", + "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n", + "/Users/aimeebarciauskas/github/virtualizarr/virtualizarr/writers/icechunk.py:272: RuntimeWarning: coroutine 'IcechunkStore.set_virtual_ref' was never awaited\n", + " store.set_virtual_ref(\n", + "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n" + ] + } + ], "source": [ "virtual_ds.virtualize.to_icechunk(store)" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 16, "id": "cae7e34f-d6dd-42aa-9e7a-f0d5420ba0b9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'JXPBY5KT843ZBSVQ2KNG'" + "'PZMXKYCPJQRRFXV33Q7G'" ] }, - "execution_count": 11, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "store.commit(\"first 2 days of 202408 data\")" + "await store.commit(\"first 2 days of 202408 data\")" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 17, "id": "9387e1ff-46c1-45fd-9796-0457538209a7", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "b'x^cx\\xd3\\xe2\\x06\\x00\\x04\\x16\\x01\\xb7'" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" + "ename": "KeyNotFound", + "evalue": "time/c/0", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyNotFound\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[17], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m store\u001b[38;5;241m.\u001b[39m_store\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtime/c/0\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "\u001b[0;31mKeyNotFound\u001b[0m: time/c/0" + ] } ], "source": [ @@ -192,456 +225,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "b6271bd1-bc0b-4901-9901-91aabe508cf7", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.Dataset> Size: 66MB\n",
-       "Dimensions:  (time: 2, zlev: 1, lat: 720, lon: 1440)\n",
-       "Coordinates:\n",
-       "  * time     (time) datetime64[ns] 16B 2024-08-01T12:00:00 2024-08-02T12:00:00\n",
-       "  * lat      (lat) float32 3kB -89.88 -89.62 -89.38 -89.12 ... 89.38 89.62 89.88\n",
-       "  * lon      (lon) float32 6kB 0.125 0.375 0.625 0.875 ... 359.4 359.6 359.9\n",
-       "  * zlev     (zlev) float32 4B 0.0\n",
-       "Data variables:\n",
-       "    anom     (time, zlev, lat, lon) float64 17MB ...\n",
-       "    err      (time, zlev, lat, lon) float64 17MB ...\n",
-       "    ice      (time, zlev, lat, lon) float64 17MB ...\n",
-       "    sst      (time, zlev, lat, lon) float64 17MB ...\n",
-       "Attributes: (12/37)\n",
-       "    Conventions:                CF-1.6, ACDD-1.3\n",
-       "    cdm_data_type:              Grid\n",
-       "    comment:                    Data was converted from NetCDF-3 to NetCDF-4 ...\n",
-       "    creator_email:              oisst-help@noaa.gov\n",
-       "    creator_url:                https://www.ncei.noaa.gov/\n",
-       "    date_created:               2024-08-16T09:12:00Z\n",
-       "    ...                         ...\n",
-       "    source:                     ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfin...\n",
-       "    standard_name_vocabulary:   CF Standard Name Table (v40, 25 January 2017)\n",
-       "    summary:                    NOAAs 1/4-degree Daily Optimum Interpolation ...\n",
-       "    time_coverage_end:          2024-08-01T23:59:59Z\n",
-       "    time_coverage_start:        2024-08-01T00:00:00Z\n",
-       "    title:                      NOAA/NCEI 1/4 Degree Daily Optimum Interpolat...
" - ], - "text/plain": [ - " Size: 66MB\n", - "Dimensions: (time: 2, zlev: 1, lat: 720, lon: 1440)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 16B 2024-08-01T12:00:00 2024-08-02T12:00:00\n", - " * lat (lat) float32 3kB -89.88 -89.62 -89.38 -89.12 ... 89.38 89.62 89.88\n", - " * lon (lon) float32 6kB 0.125 0.375 0.625 0.875 ... 359.4 359.6 359.9\n", - " * zlev (zlev) float32 4B 0.0\n", - "Data variables:\n", - " anom (time, zlev, lat, lon) float64 17MB ...\n", - " err (time, zlev, lat, lon) float64 17MB ...\n", - " ice (time, zlev, lat, lon) float64 17MB ...\n", - " sst (time, zlev, lat, lon) float64 17MB ...\n", - "Attributes: (12/37)\n", - " Conventions: CF-1.6, ACDD-1.3\n", - " cdm_data_type: Grid\n", - " comment: Data was converted from NetCDF-3 to NetCDF-4 ...\n", - " creator_email: oisst-help@noaa.gov\n", - " creator_url: https://www.ncei.noaa.gov/\n", - " date_created: 2024-08-16T09:12:00Z\n", - " ... ...\n", - " source: ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfin...\n", - " standard_name_vocabulary: CF Standard Name Table (v40, 25 January 2017)\n", - " summary: NOAAs 1/4-degree Daily Optimum Interpolation ...\n", - " time_coverage_end: 2024-08-01T23:59:59Z\n", - " time_coverage_start: 2024-08-01T00:00:00Z\n", - " title: NOAA/NCEI 1/4 Degree Daily Optimum Interpolat..." - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "ds = xr.open_zarr(store, consolidated=False, zarr_format=3)\n", "ds" @@ -657,7 +244,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "190c25f9-e000-4b17-83eb-cf551141dfea", "metadata": {}, "outputs": [], @@ -672,7 +259,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "af330082-207a-4f08-aefe-fc15aa8b2eb3", "metadata": {}, "outputs": [], @@ -688,450 +275,17 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "103b44d2-124a-4de5-8074-e997fd5a1698", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.Dataset> Size: 17MB\n",
-       "Dimensions:  (time: 2, zlev: 1, lat: 720, lon: 1440)\n",
-       "Coordinates:\n",
-       "    lon      (lon) float32 6kB ManifestArray<shape=(1440,), dtype=float32, ch...\n",
-       "    zlev     (zlev) float32 4B ManifestArray<shape=(1,), dtype=float32, chunk...\n",
-       "    lat      (lat) float32 3kB ManifestArray<shape=(720,), dtype=float32, chu...\n",
-       "    time     (time) float32 8B ManifestArray<shape=(2,), dtype=float32, chunk...\n",
-       "Data variables:\n",
-       "    anom     (time, zlev, lat, lon) int16 4MB ManifestArray<shape=(2, 1, 720,...\n",
-       "    err      (time, zlev, lat, lon) int16 4MB ManifestArray<shape=(2, 1, 720,...\n",
-       "    sst      (time, zlev, lat, lon) int16 4MB ManifestArray<shape=(2, 1, 720,...\n",
-       "    ice      (time, zlev, lat, lon) int16 4MB ManifestArray<shape=(2, 1, 720,...\n",
-       "Attributes: (12/37)\n",
-       "    Conventions:                CF-1.6, ACDD-1.3\n",
-       "    title:                      NOAA/NCEI 1/4 Degree Daily Optimum Interpolat...\n",
-       "    references:                 Reynolds, et al.(2007) Daily High-Resolution-...\n",
-       "    source:                     ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfin...\n",
-       "    id:                         oisst-avhrr-v02r01.20240803.nc\n",
-       "    naming_authority:           gov.noaa.ncei\n",
-       "    ...                         ...\n",
-       "    time_coverage_start:        2024-08-03T00:00:00Z\n",
-       "    time_coverage_end:          2024-08-03T23:59:59Z\n",
-       "    metadata_link:              https://doi.org/10.25921/RE9P-PT57\n",
-       "    ncei_template_version:      NCEI_NetCDF_Grid_Template_v2.0\n",
-       "    comment:                    Data was converted from NetCDF-3 to NetCDF-4 ...\n",
-       "    sensor:                     Thermometer, AVHRR
" - ], - "text/plain": [ - " Size: 17MB\n", - "Dimensions: (time: 2, zlev: 1, lat: 720, lon: 1440)\n", - "Coordinates:\n", - " lon (lon) float32 6kB ManifestArray\\x00\\x00\\xc0>\\x00\\x00 ?\\x00\\x00`?\\x00\\x00\\x90?\\x00\\x00\\xb0?\\x00\\x00\\xd0?\\x00\\x00\\xf0?\\x00\\x00\\x08@\\x00\\x00\\x18@\\x00\\x00(@\\x00\\x008@\\x00\\x00H@\\x00\\x00X@\\x00\\x00h@\\x00\\x00x@\\x00\\x00\\x84@\\x00\\x00\\x8c@\\x00\\x00\\x94@\\x00\\x00\\x9c@\\x00\\x00\\xa4@\\x00\\x00\\xac@\\x00\\x00\\xb4@\\x00\\x00\\xbc@\\x00\\x00\\xc4@\\x00\\x00\\xcc@\\x00\\x00\\xd4@\\x00\\x00\\xdc@\\x00\\x00\\xe4@\\x00\\x00\\xec@\\x00\\x00\\xf4@\\x00\\x00\\xfc@\\x00\\x00\\x02A\\x00\\x00\\x06A\\x00\\x00\\nA\\x00\\x00\\x0eA\\x00\\x00\\x12A\\x00\\x00\\x16A\\x00\\x00\\x1aA\\x00\\x00\\x1eA\\x00\\x00\"A\\x00\\x00&A\\x00\\x00*A\\x00\\x00.A\\x00\\x002A\\x00\\x006A\\x00\\x00:A\\x00\\x00>A\\x00\\x00BA\\x00\\x00FA\\x00\\x00JA\\x00\\x00NA\\x00\\x00RA\\x00\\x00VA\\x00\\x00ZA\\x00\\x00^A\\x00\\x00bA\\x00\\x00fA\\x00\\x00jA\\x00\\x00nA\\x00\\x00rA\\x00\\x00vA\\x00\\x00zA\\x00\\x00~A\\x00\\x00\\x81A\\x00\\x00\\x83A\\x00\\x00\\x85A\\x00\\x00\\x87A\\x00\\x00\\x89A\\x00\\x00\\x8bA\\x00\\x00\\x8dA\\x00\\x00\\x8fA\\x00\\x00\\x91A\\x00\\x00\\x93A\\x00\\x00\\x95A\\x00\\x00\\x97A\\x00\\x00\\x99A\\x00\\x00\\x9bA\\x00\\x00\\x9dA\\x00\\x00\\x9fA\\x00\\x00\\xa1A\\x00\\x00\\xa3A\\x00\\x00\\xa5A\\x00\\x00\\xa7A\\x00\\x00\\xa9A\\x00\\x00\\xabA\\x00\\x00\\xadA\\x00\\x00\\xafA\\x00\\x00\\xb1A\\x00\\x00\\xb3A\\x00\\x00\\xb5A\\x00\\x00\\xb7A\\x00\\x00\\xb9A\\x00\\x00\\xbbA\\x00\\x00\\xbdA\\x00\\x00\\xbfA\\x00\\x00\\xc1A\\x00\\x00\\xc3A\\x00\\x00\\xc5A\\x00\\x00\\xc7A\\x00\\x00\\xc9A\\x00\\x00\\xcbA\\x00\\x00\\xcdA\\x00\\x00\\xcfA\\x00\\x00\\xd1A\\x00\\x00\\xd3A\\x00\\x00\\xd5A\\x00\\x00\\xd7A\\x00\\x00\\xd9A\\x00\\x00\\xdbA\\x00\\x00\\xddA\\x00\\x00\\xdfA\\x00\\x00\\xe1A\\x00\\x00\\xe3A\\x00\\x00\\xe5A\\x00\\x00\\xe7A\\x00\\x00\\xe9A\\x00\\x00\\xebA\\x00\\x00\\xedA\\x00\\x00\\xefA\\x00\\x00\\xf1A\\x00\\x00\\xf3A\\x00\\x00\\xf5A\\x00\\x00\\xf7A\\x00\\x00\\xf9A\\x00\\x00\\xfbA\\x00\\x00\\xfdA\\x00\\x00\\xffA\\x00\\x80\\x00B\\x00\\x80\\x01B\\x00\\x80\\x02B\\x00\\x80\\x03B\\x00\\x80\\x04B\\x00\\x80\\x05B\\x00\\x80\\x06B\\x00\\x80\\x07B\\x00\\x80\\x08B\\x00\\x80\\tB\\x00\\x80\\nB\\x00\\x80\\x0bB\\x00\\x80\\x0cB\\x00\\x80\\rB\\x00\\x80\\x0eB\\x00\\x80\\x0fB\\x00\\x80\\x10B\\x00\\x80\\x11B\\x00\\x80\\x12B\\x00\\x80\\x13B\\x00\\x80\\x14B\\x00\\x80\\x15B\\x00\\x80\\x16B\\x00\\x80\\x17B\\x00\\x80\\x18B\\x00\\x80\\x19B\\x00\\x80\\x1aB\\x00\\x80\\x1bB\\x00\\x80\\x1cB\\x00\\x80\\x1dB\\x00\\x80\\x1eB\\x00\\x80\\x1fB\\x00\\x80 B\\x00\\x80!B\\x00\\x80\"B\\x00\\x80#B\\x00\\x80$B\\x00\\x80%B\\x00\\x80&B\\x00\\x80\\'B\\x00\\x80(B\\x00\\x80)B\\x00\\x80*B\\x00\\x80+B\\x00\\x80,B\\x00\\x80-B\\x00\\x80.B\\x00\\x80/B\\x00\\x800B\\x00\\x801B\\x00\\x802B\\x00\\x803B\\x00\\x804B\\x00\\x805B\\x00\\x806B\\x00\\x807B\\x00\\x808B\\x00\\x809B\\x00\\x80:B\\x00\\x80;B\\x00\\x80B\\x00\\x80?B\\x00\\x80@B\\x00\\x80AB\\x00\\x80BB\\x00\\x80CB\\x00\\x80DB\\x00\\x80EB\\x00\\x80FB\\x00\\x80GB\\x00\\x80HB\\x00\\x80IB\\x00\\x80JB\\x00\\x80KB\\x00\\x80LB\\x00\\x80MB\\x00\\x80NB\\x00\\x80OB\\x00\\x80PB\\x00\\x80QB\\x00\\x80RB\\x00\\x80SB\\x00\\x80TB\\x00\\x80UB\\x00\\x80VB\\x00\\x80WB\\x00\\x80XB\\x00\\x80YB\\x00\\x80ZB\\x00\\x80[B\\x00\\x80\\\\B\\x00\\x80]B\\x00\\x80^B\\x00\\x80_B\\x00\\x80`B\\x00\\x80aB\\x00\\x80bB\\x00\\x80cB\\x00\\x80dB\\x00\\x80eB\\x00\\x80fB\\x00\\x80gB\\x00\\x80hB\\x00\\x80iB\\x00\\x80jB\\x00\\x80kB\\x00\\x80lB\\x00\\x80mB\\x00\\x80nB\\x00\\x80oB\\x00\\x80pB\\x00\\x80qB\\x00\\x80rB\\x00\\x80sB\\x00\\x80tB\\x00\\x80uB\\x00\\x80vB\\x00\\x80wB\\x00\\x80xB\\x00\\x80yB\\x00\\x80zB\\x00\\x80{B\\x00\\x80|B\\x00\\x80}B\\x00\\x80~B\\x00\\x80\\x7fB\\x00@\\x80B\\x00\\xc0\\x80B\\x00@\\x81B\\x00\\xc0\\x81B\\x00@\\x82B\\x00\\xc0\\x82B\\x00@\\x83B\\x00\\xc0\\x83B\\x00@\\x84B\\x00\\xc0\\x84B\\x00@\\x85B\\x00\\xc0\\x85B\\x00@\\x86B\\x00\\xc0\\x86B\\x00@\\x87B\\x00\\xc0\\x87B\\x00@\\x88B\\x00\\xc0\\x88B\\x00@\\x89B\\x00\\xc0\\x89B\\x00@\\x8aB\\x00\\xc0\\x8aB\\x00@\\x8bB\\x00\\xc0\\x8bB\\x00@\\x8cB\\x00\\xc0\\x8cB\\x00@\\x8dB\\x00\\xc0\\x8dB\\x00@\\x8eB\\x00\\xc0\\x8eB\\x00@\\x8fB\\x00\\xc0\\x8fB\\x00@\\x90B\\x00\\xc0\\x90B\\x00@\\x91B\\x00\\xc0\\x91B\\x00@\\x92B\\x00\\xc0\\x92B\\x00@\\x93B\\x00\\xc0\\x93B\\x00@\\x94B\\x00\\xc0\\x94B\\x00@\\x95B\\x00\\xc0\\x95B\\x00@\\x96B\\x00\\xc0\\x96B\\x00@\\x97B\\x00\\xc0\\x97B\\x00@\\x98B\\x00\\xc0\\x98B\\x00@\\x99B\\x00\\xc0\\x99B\\x00@\\x9aB\\x00\\xc0\\x9aB\\x00@\\x9bB\\x00\\xc0\\x9bB\\x00@\\x9cB\\x00\\xc0\\x9cB\\x00@\\x9dB\\x00\\xc0\\x9dB\\x00@\\x9eB\\x00\\xc0\\x9eB\\x00@\\x9fB\\x00\\xc0\\x9fB\\x00@\\xa0B\\x00\\xc0\\xa0B\\x00@\\xa1B\\x00\\xc0\\xa1B\\x00@\\xa2B\\x00\\xc0\\xa2B\\x00@\\xa3B\\x00\\xc0\\xa3B\\x00@\\xa4B\\x00\\xc0\\xa4B\\x00@\\xa5B\\x00\\xc0\\xa5B\\x00@\\xa6B\\x00\\xc0\\xa6B\\x00@\\xa7B\\x00\\xc0\\xa7B\\x00@\\xa8B\\x00\\xc0\\xa8B\\x00@\\xa9B\\x00\\xc0\\xa9B\\x00@\\xaaB\\x00\\xc0\\xaaB\\x00@\\xabB\\x00\\xc0\\xabB\\x00@\\xacB\\x00\\xc0\\xacB\\x00@\\xadB\\x00\\xc0\\xadB\\x00@\\xaeB\\x00\\xc0\\xaeB\\x00@\\xafB\\x00\\xc0\\xafB\\x00@\\xb0B\\x00\\xc0\\xb0B\\x00@\\xb1B\\x00\\xc0\\xb1B\\x00@\\xb2B\\x00\\xc0\\xb2B\\x00@\\xb3B\\x00\\xc0\\xb3B\\x00@\\xb4B\\x00\\xc0\\xb4B\\x00@\\xb5B\\x00\\xc0\\xb5B\\x00@\\xb6B\\x00\\xc0\\xb6B\\x00@\\xb7B\\x00\\xc0\\xb7B\\x00@\\xb8B\\x00\\xc0\\xb8B\\x00@\\xb9B\\x00\\xc0\\xb9B\\x00@\\xbaB\\x00\\xc0\\xbaB\\x00@\\xbbB\\x00\\xc0\\xbbB\\x00@\\xbcB\\x00\\xc0\\xbcB\\x00@\\xbdB\\x00\\xc0\\xbdB\\x00@\\xbeB\\x00\\xc0\\xbeB\\x00@\\xbfB\\x00\\xc0\\xbfB\\x00@\\xc0B\\x00\\xc0\\xc0B\\x00@\\xc1B\\x00\\xc0\\xc1B\\x00@\\xc2B\\x00\\xc0\\xc2B\\x00@\\xc3B\\x00\\xc0\\xc3B\\x00@\\xc4B\\x00\\xc0\\xc4B\\x00@\\xc5B\\x00\\xc0\\xc5B\\x00@\\xc6B\\x00\\xc0\\xc6B\\x00@\\xc7B\\x00\\xc0\\xc7B\\x00@\\xc8B\\x00\\xc0\\xc8B\\x00@\\xc9B\\x00\\xc0\\xc9B\\x00@\\xcaB\\x00\\xc0\\xcaB\\x00@\\xcbB\\x00\\xc0\\xcbB\\x00@\\xccB\\x00\\xc0\\xccB\\x00@\\xcdB\\x00\\xc0\\xcdB\\x00@\\xceB\\x00\\xc0\\xceB\\x00@\\xcfB\\x00\\xc0\\xcfB\\x00@\\xd0B\\x00\\xc0\\xd0B\\x00@\\xd1B\\x00\\xc0\\xd1B\\x00@\\xd2B\\x00\\xc0\\xd2B\\x00@\\xd3B\\x00\\xc0\\xd3B\\x00@\\xd4B\\x00\\xc0\\xd4B\\x00@\\xd5B\\x00\\xc0\\xd5B\\x00@\\xd6B\\x00\\xc0\\xd6B\\x00@\\xd7B\\x00\\xc0\\xd7B\\x00@\\xd8B\\x00\\xc0\\xd8B\\x00@\\xd9B\\x00\\xc0\\xd9B\\x00@\\xdaB\\x00\\xc0\\xdaB\\x00@\\xdbB\\x00\\xc0\\xdbB\\x00@\\xdcB\\x00\\xc0\\xdcB\\x00@\\xddB\\x00\\xc0\\xddB\\x00@\\xdeB\\x00\\xc0\\xdeB\\x00@\\xdfB\\x00\\xc0\\xdfB\\x00@\\xe0B\\x00\\xc0\\xe0B\\x00@\\xe1B\\x00\\xc0\\xe1B\\x00@\\xe2B\\x00\\xc0\\xe2B\\x00@\\xe3B\\x00\\xc0\\xe3B\\x00@\\xe4B\\x00\\xc0\\xe4B\\x00@\\xe5B\\x00\\xc0\\xe5B\\x00@\\xe6B\\x00\\xc0\\xe6B\\x00@\\xe7B\\x00\\xc0\\xe7B\\x00@\\xe8B\\x00\\xc0\\xe8B\\x00@\\xe9B\\x00\\xc0\\xe9B\\x00@\\xeaB\\x00\\xc0\\xeaB\\x00@\\xebB\\x00\\xc0\\xebB\\x00@\\xecB\\x00\\xc0\\xecB\\x00@\\xedB\\x00\\xc0\\xedB\\x00@\\xeeB\\x00\\xc0\\xeeB\\x00@\\xefB\\x00\\xc0\\xefB\\x00@\\xf0B\\x00\\xc0\\xf0B\\x00@\\xf1B\\x00\\xc0\\xf1B\\x00@\\xf2B\\x00\\xc0\\xf2B\\x00@\\xf3B\\x00\\xc0\\xf3B\\x00@\\xf4B\\x00\\xc0\\xf4B\\x00@\\xf5B\\x00\\xc0\\xf5B\\x00@\\xf6B\\x00\\xc0\\xf6B\\x00@\\xf7B\\x00\\xc0\\xf7B\\x00@\\xf8B\\x00\\xc0\\xf8B\\x00@\\xf9B\\x00\\xc0\\xf9B\\x00@\\xfaB\\x00\\xc0\\xfaB\\x00@\\xfbB\\x00\\xc0\\xfbB\\x00@\\xfcB\\x00\\xc0\\xfcB\\x00@\\xfdB\\x00\\xc0\\xfdB\\x00@\\xfeB\\x00\\xc0\\xfeB\\x00@\\xffB\\x00\\xc0\\xffB\\x00 \\x00C\\x00`\\x00C\\x00\\xa0\\x00C\\x00\\xe0\\x00C\\x00 \\x01C\\x00`\\x01C\\x00\\xa0\\x01C\\x00\\xe0\\x01C\\x00 \\x02C\\x00`\\x02C\\x00\\xa0\\x02C\\x00\\xe0\\x02C\\x00 \\x03C\\x00`\\x03C\\x00\\xa0\\x03C\\x00\\xe0\\x03C\\x00 \\x04C\\x00`\\x04C\\x00\\xa0\\x04C\\x00\\xe0\\x04C\\x00 \\x05C\\x00`\\x05C\\x00\\xa0\\x05C\\x00\\xe0\\x05C\\x00 \\x06C\\x00`\\x06C\\x00\\xa0\\x06C\\x00\\xe0\\x06C\\x00 \\x07C\\x00`\\x07C\\x00\\xa0\\x07C\\x00\\xe0\\x07C\\x00 \\x08C\\x00`\\x08C\\x00\\xa0\\x08C\\x00\\xe0\\x08C\\x00 \\tC\\x00`\\tC\\x00\\xa0\\tC\\x00\\xe0\\tC\\x00 \\nC\\x00`\\nC\\x00\\xa0\\nC\\x00\\xe0\\nC\\x00 \\x0bC\\x00`\\x0bC\\x00\\xa0\\x0bC\\x00\\xe0\\x0bC\\x00 \\x0cC\\x00`\\x0cC\\x00\\xa0\\x0cC\\x00\\xe0\\x0cC\\x00 \\rC\\x00`\\rC\\x00\\xa0\\rC\\x00\\xe0\\rC\\x00 \\x0eC\\x00`\\x0eC\\x00\\xa0\\x0eC\\x00\\xe0\\x0eC\\x00 \\x0fC\\x00`\\x0fC\\x00\\xa0\\x0fC\\x00\\xe0\\x0fC\\x00 \\x10C\\x00`\\x10C\\x00\\xa0\\x10C\\x00\\xe0\\x10C\\x00 \\x11C\\x00`\\x11C\\x00\\xa0\\x11C\\x00\\xe0\\x11C\\x00 \\x12C\\x00`\\x12C\\x00\\xa0\\x12C\\x00\\xe0\\x12C\\x00 \\x13C\\x00`\\x13C\\x00\\xa0\\x13C\\x00\\xe0\\x13C\\x00 \\x14C\\x00`\\x14C\\x00\\xa0\\x14C\\x00\\xe0\\x14C\\x00 \\x15C\\x00`\\x15C\\x00\\xa0\\x15C\\x00\\xe0\\x15C\\x00 \\x16C\\x00`\\x16C\\x00\\xa0\\x16C\\x00\\xe0\\x16C\\x00 \\x17C\\x00`\\x17C\\x00\\xa0\\x17C\\x00\\xe0\\x17C\\x00 \\x18C\\x00`\\x18C\\x00\\xa0\\x18C\\x00\\xe0\\x18C\\x00 \\x19C\\x00`\\x19C\\x00\\xa0\\x19C\\x00\\xe0\\x19C\\x00 \\x1aC\\x00`\\x1aC\\x00\\xa0\\x1aC\\x00\\xe0\\x1aC\\x00 \\x1bC\\x00`\\x1bC\\x00\\xa0\\x1bC\\x00\\xe0\\x1bC\\x00 \\x1cC\\x00`\\x1cC\\x00\\xa0\\x1cC\\x00\\xe0\\x1cC\\x00 \\x1dC\\x00`\\x1dC\\x00\\xa0\\x1dC\\x00\\xe0\\x1dC\\x00 \\x1eC\\x00`\\x1eC\\x00\\xa0\\x1eC\\x00\\xe0\\x1eC\\x00 \\x1fC\\x00`\\x1fC\\x00\\xa0\\x1fC\\x00\\xe0\\x1fC\\x00 C\\x00` C\\x00\\xa0 C\\x00\\xe0 C\\x00 !C\\x00`!C\\x00\\xa0!C\\x00\\xe0!C\\x00 \"C\\x00`\"C\\x00\\xa0\"C\\x00\\xe0\"C\\x00 #C\\x00`#C\\x00\\xa0#C\\x00\\xe0#C\\x00 $C\\x00`$C\\x00\\xa0$C\\x00\\xe0$C\\x00 %C\\x00`%C\\x00\\xa0%C\\x00\\xe0%C\\x00 &C\\x00`&C\\x00\\xa0&C\\x00\\xe0&C\\x00 \\'C\\x00`\\'C\\x00\\xa0\\'C\\x00\\xe0\\'C\\x00 (C\\x00`(C\\x00\\xa0(C\\x00\\xe0(C\\x00 )C\\x00`)C\\x00\\xa0)C\\x00\\xe0)C\\x00 *C\\x00`*C\\x00\\xa0*C\\x00\\xe0*C\\x00 +C\\x00`+C\\x00\\xa0+C\\x00\\xe0+C\\x00 ,C\\x00`,C\\x00\\xa0,C\\x00\\xe0,C\\x00 -C\\x00`-C\\x00\\xa0-C\\x00\\xe0-C\\x00 .C\\x00`.C\\x00\\xa0.C\\x00\\xe0.C\\x00 /C\\x00`/C\\x00\\xa0/C\\x00\\xe0/C\\x00 0C\\x00`0C\\x00\\xa00C\\x00\\xe00C\\x00 1C\\x00`1C\\x00\\xa01C\\x00\\xe01C\\x00 2C\\x00`2C\\x00\\xa02C\\x00\\xe02C\\x00 3C\\x00`3C\\x00\\xa03C\\x00\\xe03C\\x00 4C\\x00`4C\\x00\\xa04C\\x00\\xe04C\\x00 5C\\x00`5C\\x00\\xa05C\\x00\\xe05C\\x00 6C\\x00`6C\\x00\\xa06C\\x00\\xe06C\\x00 7C\\x00`7C\\x00\\xa07C\\x00\\xe07C\\x00 8C\\x00`8C\\x00\\xa08C\\x00\\xe08C\\x00 9C\\x00`9C\\x00\\xa09C\\x00\\xe09C\\x00 :C\\x00`:C\\x00\\xa0:C\\x00\\xe0:C\\x00 ;C\\x00`;C\\x00\\xa0;C\\x00\\xe0;C\\x00 C\\x00`>C\\x00\\xa0>C\\x00\\xe0>C\\x00 ?C\\x00`?C\\x00\\xa0?C\\x00\\xe0?C\\x00 @C\\x00`@C\\x00\\xa0@C\\x00\\xe0@C\\x00 AC\\x00`AC\\x00\\xa0AC\\x00\\xe0AC\\x00 BC\\x00`BC\\x00\\xa0BC\\x00\\xe0BC\\x00 CC\\x00`CC\\x00\\xa0CC\\x00\\xe0CC\\x00 DC\\x00`DC\\x00\\xa0DC\\x00\\xe0DC\\x00 EC\\x00`EC\\x00\\xa0EC\\x00\\xe0EC\\x00 FC\\x00`FC\\x00\\xa0FC\\x00\\xe0FC\\x00 GC\\x00`GC\\x00\\xa0GC\\x00\\xe0GC\\x00 HC\\x00`HC\\x00\\xa0HC\\x00\\xe0HC\\x00 IC\\x00`IC\\x00\\xa0IC\\x00\\xe0IC\\x00 JC\\x00`JC\\x00\\xa0JC\\x00\\xe0JC\\x00 KC\\x00`KC\\x00\\xa0KC\\x00\\xe0KC\\x00 LC\\x00`LC\\x00\\xa0LC\\x00\\xe0LC\\x00 MC\\x00`MC\\x00\\xa0MC\\x00\\xe0MC\\x00 NC\\x00`NC\\x00\\xa0NC\\x00\\xe0NC\\x00 OC\\x00`OC\\x00\\xa0OC\\x00\\xe0OC\\x00 PC\\x00`PC\\x00\\xa0PC\\x00\\xe0PC\\x00 QC\\x00`QC\\x00\\xa0QC\\x00\\xe0QC\\x00 RC\\x00`RC\\x00\\xa0RC\\x00\\xe0RC\\x00 SC\\x00`SC\\x00\\xa0SC\\x00\\xe0SC\\x00 TC\\x00`TC\\x00\\xa0TC\\x00\\xe0TC\\x00 UC\\x00`UC\\x00\\xa0UC\\x00\\xe0UC\\x00 VC\\x00`VC\\x00\\xa0VC\\x00\\xe0VC\\x00 WC\\x00`WC\\x00\\xa0WC\\x00\\xe0WC\\x00 XC\\x00`XC\\x00\\xa0XC\\x00\\xe0XC\\x00 YC\\x00`YC\\x00\\xa0YC\\x00\\xe0YC\\x00 ZC\\x00`ZC\\x00\\xa0ZC\\x00\\xe0ZC\\x00 [C\\x00`[C\\x00\\xa0[C\\x00\\xe0[C\\x00 \\\\C\\x00`\\\\C\\x00\\xa0\\\\C\\x00\\xe0\\\\C\\x00 ]C\\x00`]C\\x00\\xa0]C\\x00\\xe0]C\\x00 ^C\\x00`^C\\x00\\xa0^C\\x00\\xe0^C\\x00 _C\\x00`_C\\x00\\xa0_C\\x00\\xe0_C\\x00 `C\\x00``C\\x00\\xa0`C\\x00\\xe0`C\\x00 aC\\x00`aC\\x00\\xa0aC\\x00\\xe0aC\\x00 bC\\x00`bC\\x00\\xa0bC\\x00\\xe0bC\\x00 cC\\x00`cC\\x00\\xa0cC\\x00\\xe0cC\\x00 dC\\x00`dC\\x00\\xa0dC\\x00\\xe0dC\\x00 eC\\x00`eC\\x00\\xa0eC\\x00\\xe0eC\\x00 fC\\x00`fC\\x00\\xa0fC\\x00\\xe0fC\\x00 gC\\x00`gC\\x00\\xa0gC\\x00\\xe0gC\\x00 hC\\x00`hC\\x00\\xa0hC\\x00\\xe0hC\\x00 iC\\x00`iC\\x00\\xa0iC\\x00\\xe0iC\\x00 jC\\x00`jC\\x00\\xa0jC\\x00\\xe0jC\\x00 kC\\x00`kC\\x00\\xa0kC\\x00\\xe0kC\\x00 lC\\x00`lC\\x00\\xa0lC\\x00\\xe0lC\\x00 mC\\x00`mC\\x00\\xa0mC\\x00\\xe0mC\\x00 nC\\x00`nC\\x00\\xa0nC\\x00\\xe0nC\\x00 oC\\x00`oC\\x00\\xa0oC\\x00\\xe0oC\\x00 pC\\x00`pC\\x00\\xa0pC\\x00\\xe0pC\\x00 qC\\x00`qC\\x00\\xa0qC\\x00\\xe0qC\\x00 rC\\x00`rC\\x00\\xa0rC\\x00\\xe0rC\\x00 sC\\x00`sC\\x00\\xa0sC\\x00\\xe0sC\\x00 tC\\x00`tC\\x00\\xa0tC\\x00\\xe0tC\\x00 uC\\x00`uC\\x00\\xa0uC\\x00\\xe0uC\\x00 vC\\x00`vC\\x00\\xa0vC\\x00\\xe0vC\\x00 wC\\x00`wC\\x00\\xa0wC\\x00\\xe0wC\\x00 xC\\x00`xC\\x00\\xa0xC\\x00\\xe0xC\\x00 yC\\x00`yC\\x00\\xa0yC\\x00\\xe0yC\\x00 zC\\x00`zC\\x00\\xa0zC\\x00\\xe0zC\\x00 {C\\x00`{C\\x00\\xa0{C\\x00\\xe0{C\\x00 |C\\x00`|C\\x00\\xa0|C\\x00\\xe0|C\\x00 }C\\x00`}C\\x00\\xa0}C\\x00\\xe0}C\\x00 ~C\\x00`~C\\x00\\xa0~C\\x00\\xe0~C\\x00 \\x7fC\\x00`\\x7fC\\x00\\xa0\\x7fC\\x00\\xe0\\x7fC\\x00\\x10\\x80C\\x000\\x80C\\x00P\\x80C\\x00p\\x80C\\x00\\x90\\x80C\\x00\\xb0\\x80C\\x00\\xd0\\x80C\\x00\\xf0\\x80C\\x00\\x10\\x81C\\x000\\x81C\\x00P\\x81C\\x00p\\x81C\\x00\\x90\\x81C\\x00\\xb0\\x81C\\x00\\xd0\\x81C\\x00\\xf0\\x81C\\x00\\x10\\x82C\\x000\\x82C\\x00P\\x82C\\x00p\\x82C\\x00\\x90\\x82C\\x00\\xb0\\x82C\\x00\\xd0\\x82C\\x00\\xf0\\x82C\\x00\\x10\\x83C\\x000\\x83C\\x00P\\x83C\\x00p\\x83C\\x00\\x90\\x83C\\x00\\xb0\\x83C\\x00\\xd0\\x83C\\x00\\xf0\\x83C\\x00\\x10\\x84C\\x000\\x84C\\x00P\\x84C\\x00p\\x84C\\x00\\x90\\x84C\\x00\\xb0\\x84C\\x00\\xd0\\x84C\\x00\\xf0\\x84C\\x00\\x10\\x85C\\x000\\x85C\\x00P\\x85C\\x00p\\x85C\\x00\\x90\\x85C\\x00\\xb0\\x85C\\x00\\xd0\\x85C\\x00\\xf0\\x85C\\x00\\x10\\x86C\\x000\\x86C\\x00P\\x86C\\x00p\\x86C\\x00\\x90\\x86C\\x00\\xb0\\x86C\\x00\\xd0\\x86C\\x00\\xf0\\x86C\\x00\\x10\\x87C\\x000\\x87C\\x00P\\x87C\\x00p\\x87C\\x00\\x90\\x87C\\x00\\xb0\\x87C\\x00\\xd0\\x87C\\x00\\xf0\\x87C\\x00\\x10\\x88C\\x000\\x88C\\x00P\\x88C\\x00p\\x88C\\x00\\x90\\x88C\\x00\\xb0\\x88C\\x00\\xd0\\x88C\\x00\\xf0\\x88C\\x00\\x10\\x89C\\x000\\x89C\\x00P\\x89C\\x00p\\x89C\\x00\\x90\\x89C\\x00\\xb0\\x89C\\x00\\xd0\\x89C\\x00\\xf0\\x89C\\x00\\x10\\x8aC\\x000\\x8aC\\x00P\\x8aC\\x00p\\x8aC\\x00\\x90\\x8aC\\x00\\xb0\\x8aC\\x00\\xd0\\x8aC\\x00\\xf0\\x8aC\\x00\\x10\\x8bC\\x000\\x8bC\\x00P\\x8bC\\x00p\\x8bC\\x00\\x90\\x8bC\\x00\\xb0\\x8bC\\x00\\xd0\\x8bC\\x00\\xf0\\x8bC\\x00\\x10\\x8cC\\x000\\x8cC\\x00P\\x8cC\\x00p\\x8cC\\x00\\x90\\x8cC\\x00\\xb0\\x8cC\\x00\\xd0\\x8cC\\x00\\xf0\\x8cC\\x00\\x10\\x8dC\\x000\\x8dC\\x00P\\x8dC\\x00p\\x8dC\\x00\\x90\\x8dC\\x00\\xb0\\x8dC\\x00\\xd0\\x8dC\\x00\\xf0\\x8dC\\x00\\x10\\x8eC\\x000\\x8eC\\x00P\\x8eC\\x00p\\x8eC\\x00\\x90\\x8eC\\x00\\xb0\\x8eC\\x00\\xd0\\x8eC\\x00\\xf0\\x8eC\\x00\\x10\\x8fC\\x000\\x8fC\\x00P\\x8fC\\x00p\\x8fC\\x00\\x90\\x8fC\\x00\\xb0\\x8fC\\x00\\xd0\\x8fC\\x00\\xf0\\x8fC\\x00\\x10\\x90C\\x000\\x90C\\x00P\\x90C\\x00p\\x90C\\x00\\x90\\x90C\\x00\\xb0\\x90C\\x00\\xd0\\x90C\\x00\\xf0\\x90C\\x00\\x10\\x91C\\x000\\x91C\\x00P\\x91C\\x00p\\x91C\\x00\\x90\\x91C\\x00\\xb0\\x91C\\x00\\xd0\\x91C\\x00\\xf0\\x91C\\x00\\x10\\x92C\\x000\\x92C\\x00P\\x92C\\x00p\\x92C\\x00\\x90\\x92C\\x00\\xb0\\x92C\\x00\\xd0\\x92C\\x00\\xf0\\x92C\\x00\\x10\\x93C\\x000\\x93C\\x00P\\x93C\\x00p\\x93C\\x00\\x90\\x93C\\x00\\xb0\\x93C\\x00\\xd0\\x93C\\x00\\xf0\\x93C\\x00\\x10\\x94C\\x000\\x94C\\x00P\\x94C\\x00p\\x94C\\x00\\x90\\x94C\\x00\\xb0\\x94C\\x00\\xd0\\x94C\\x00\\xf0\\x94C\\x00\\x10\\x95C\\x000\\x95C\\x00P\\x95C\\x00p\\x95C\\x00\\x90\\x95C\\x00\\xb0\\x95C\\x00\\xd0\\x95C\\x00\\xf0\\x95C\\x00\\x10\\x96C\\x000\\x96C\\x00P\\x96C\\x00p\\x96C\\x00\\x90\\x96C\\x00\\xb0\\x96C\\x00\\xd0\\x96C\\x00\\xf0\\x96C\\x00\\x10\\x97C\\x000\\x97C\\x00P\\x97C\\x00p\\x97C\\x00\\x90\\x97C\\x00\\xb0\\x97C\\x00\\xd0\\x97C\\x00\\xf0\\x97C\\x00\\x10\\x98C\\x000\\x98C\\x00P\\x98C\\x00p\\x98C\\x00\\x90\\x98C\\x00\\xb0\\x98C\\x00\\xd0\\x98C\\x00\\xf0\\x98C\\x00\\x10\\x99C\\x000\\x99C\\x00P\\x99C\\x00p\\x99C\\x00\\x90\\x99C\\x00\\xb0\\x99C\\x00\\xd0\\x99C\\x00\\xf0\\x99C\\x00\\x10\\x9aC\\x000\\x9aC\\x00P\\x9aC\\x00p\\x9aC\\x00\\x90\\x9aC\\x00\\xb0\\x9aC\\x00\\xd0\\x9aC\\x00\\xf0\\x9aC\\x00\\x10\\x9bC\\x000\\x9bC\\x00P\\x9bC\\x00p\\x9bC\\x00\\x90\\x9bC\\x00\\xb0\\x9bC\\x00\\xd0\\x9bC\\x00\\xf0\\x9bC\\x00\\x10\\x9cC\\x000\\x9cC\\x00P\\x9cC\\x00p\\x9cC\\x00\\x90\\x9cC\\x00\\xb0\\x9cC\\x00\\xd0\\x9cC\\x00\\xf0\\x9cC\\x00\\x10\\x9dC\\x000\\x9dC\\x00P\\x9dC\\x00p\\x9dC\\x00\\x90\\x9dC\\x00\\xb0\\x9dC\\x00\\xd0\\x9dC\\x00\\xf0\\x9dC\\x00\\x10\\x9eC\\x000\\x9eC\\x00P\\x9eC\\x00p\\x9eC\\x00\\x90\\x9eC\\x00\\xb0\\x9eC\\x00\\xd0\\x9eC\\x00\\xf0\\x9eC\\x00\\x10\\x9fC\\x000\\x9fC\\x00P\\x9fC\\x00p\\x9fC\\x00\\x90\\x9fC\\x00\\xb0\\x9fC\\x00\\xd0\\x9fC\\x00\\xf0\\x9fC\\x00\\x10\\xa0C\\x000\\xa0C\\x00P\\xa0C\\x00p\\xa0C\\x00\\x90\\xa0C\\x00\\xb0\\xa0C\\x00\\xd0\\xa0C\\x00\\xf0\\xa0C\\x00\\x10\\xa1C\\x000\\xa1C\\x00P\\xa1C\\x00p\\xa1C\\x00\\x90\\xa1C\\x00\\xb0\\xa1C\\x00\\xd0\\xa1C\\x00\\xf0\\xa1C\\x00\\x10\\xa2C\\x000\\xa2C\\x00P\\xa2C\\x00p\\xa2C\\x00\\x90\\xa2C\\x00\\xb0\\xa2C\\x00\\xd0\\xa2C\\x00\\xf0\\xa2C\\x00\\x10\\xa3C\\x000\\xa3C\\x00P\\xa3C\\x00p\\xa3C\\x00\\x90\\xa3C\\x00\\xb0\\xa3C\\x00\\xd0\\xa3C\\x00\\xf0\\xa3C\\x00\\x10\\xa4C\\x000\\xa4C\\x00P\\xa4C\\x00p\\xa4C\\x00\\x90\\xa4C\\x00\\xb0\\xa4C\\x00\\xd0\\xa4C\\x00\\xf0\\xa4C\\x00\\x10\\xa5C\\x000\\xa5C\\x00P\\xa5C\\x00p\\xa5C\\x00\\x90\\xa5C\\x00\\xb0\\xa5C\\x00\\xd0\\xa5C\\x00\\xf0\\xa5C\\x00\\x10\\xa6C\\x000\\xa6C\\x00P\\xa6C\\x00p\\xa6C\\x00\\x90\\xa6C\\x00\\xb0\\xa6C\\x00\\xd0\\xa6C\\x00\\xf0\\xa6C\\x00\\x10\\xa7C\\x000\\xa7C\\x00P\\xa7C\\x00p\\xa7C\\x00\\x90\\xa7C\\x00\\xb0\\xa7C\\x00\\xd0\\xa7C\\x00\\xf0\\xa7C\\x00\\x10\\xa8C\\x000\\xa8C\\x00P\\xa8C\\x00p\\xa8C\\x00\\x90\\xa8C\\x00\\xb0\\xa8C\\x00\\xd0\\xa8C\\x00\\xf0\\xa8C\\x00\\x10\\xa9C\\x000\\xa9C\\x00P\\xa9C\\x00p\\xa9C\\x00\\x90\\xa9C\\x00\\xb0\\xa9C\\x00\\xd0\\xa9C\\x00\\xf0\\xa9C\\x00\\x10\\xaaC\\x000\\xaaC\\x00P\\xaaC\\x00p\\xaaC\\x00\\x90\\xaaC\\x00\\xb0\\xaaC\\x00\\xd0\\xaaC\\x00\\xf0\\xaaC\\x00\\x10\\xabC\\x000\\xabC\\x00P\\xabC\\x00p\\xabC\\x00\\x90\\xabC\\x00\\xb0\\xabC\\x00\\xd0\\xabC\\x00\\xf0\\xabC\\x00\\x10\\xacC\\x000\\xacC\\x00P\\xacC\\x00p\\xacC\\x00\\x90\\xacC\\x00\\xb0\\xacC\\x00\\xd0\\xacC\\x00\\xf0\\xacC\\x00\\x10\\xadC\\x000\\xadC\\x00P\\xadC\\x00p\\xadC\\x00\\x90\\xadC\\x00\\xb0\\xadC\\x00\\xd0\\xadC\\x00\\xf0\\xadC\\x00\\x10\\xaeC\\x000\\xaeC\\x00P\\xaeC\\x00p\\xaeC\\x00\\x90\\xaeC\\x00\\xb0\\xaeC\\x00\\xd0\\xaeC\\x00\\xf0\\xaeC\\x00\\x10\\xafC\\x000\\xafC\\x00P\\xafC\\x00p\\xafC\\x00\\x90\\xafC\\x00\\xb0\\xafC\\x00\\xd0\\xafC\\x00\\xf0\\xafC\\x00\\x10\\xb0C\\x000\\xb0C\\x00P\\xb0C\\x00p\\xb0C\\x00\\x90\\xb0C\\x00\\xb0\\xb0C\\x00\\xd0\\xb0C\\x00\\xf0\\xb0C\\x00\\x10\\xb1C\\x000\\xb1C\\x00P\\xb1C\\x00p\\xb1C\\x00\\x90\\xb1C\\x00\\xb0\\xb1C\\x00\\xd0\\xb1C\\x00\\xf0\\xb1C\\x00\\x10\\xb2C\\x000\\xb2C\\x00P\\xb2C\\x00p\\xb2C\\x00\\x90\\xb2C\\x00\\xb0\\xb2C\\x00\\xd0\\xb2C\\x00\\xf0\\xb2C\\x00\\x10\\xb3C\\x000\\xb3C\\x00P\\xb3C\\x00p\\xb3C\\x00\\x90\\xb3C\\x00\\xb0\\xb3C\\x00\\xd0\\xb3C\\x00\\xf0\\xb3C'" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "await read_store._store.get(\"time/c/0\")" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "id": "47a53027-dbae-48aa-85d2-dcbc04e01e61", "metadata": {}, - "outputs": [ - { - "ename": "error", - "evalue": "Failed to decode variable 'time': Error -3 while decompressing data: unknown compression method", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31merror\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/conventions.py:451\u001b[0m, in \u001b[0;36mdecode_cf_variables\u001b[0;34m(variables, attributes, concat_characters, mask_and_scale, decode_times, decode_coords, drop_variables, use_cftime, decode_timedelta)\u001b[0m\n\u001b[1;32m 450\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 451\u001b[0m new_vars[k] \u001b[38;5;241m=\u001b[39m \u001b[43mdecode_cf_variable\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 452\u001b[0m \u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 453\u001b[0m \u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 454\u001b[0m \u001b[43m \u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 455\u001b[0m \u001b[43m \u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 456\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 457\u001b[0m \u001b[43m \u001b[49m\u001b[43mstack_char_dim\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstack_char_dim\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 458\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 459\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_item_or_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 460\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 461\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/conventions.py:292\u001b[0m, in \u001b[0;36mdecode_cf_variable\u001b[0;34m(name, var, concat_characters, mask_and_scale, decode_times, decode_endianness, stack_char_dim, use_cftime, decode_timedelta)\u001b[0m\n\u001b[1;32m 291\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m decode_times:\n\u001b[0;32m--> 292\u001b[0m var \u001b[38;5;241m=\u001b[39m \u001b[43mtimes\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mCFDatetimeCoder\u001b[49m\u001b[43m(\u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 294\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m decode_endianness \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m var\u001b[38;5;241m.\u001b[39mdtype\u001b[38;5;241m.\u001b[39misnative:\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/coding/times.py:1001\u001b[0m, in \u001b[0;36mCFDatetimeCoder.decode\u001b[0;34m(self, variable, name)\u001b[0m\n\u001b[1;32m 1000\u001b[0m calendar \u001b[38;5;241m=\u001b[39m pop_to(attrs, encoding, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcalendar\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1001\u001b[0m dtype \u001b[38;5;241m=\u001b[39m \u001b[43m_decode_cf_datetime_dtype\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43munits\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcalendar\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1002\u001b[0m transform \u001b[38;5;241m=\u001b[39m partial(\n\u001b[1;32m 1003\u001b[0m decode_cf_datetime,\n\u001b[1;32m 1004\u001b[0m units\u001b[38;5;241m=\u001b[39munits,\n\u001b[1;32m 1005\u001b[0m calendar\u001b[38;5;241m=\u001b[39mcalendar,\n\u001b[1;32m 1006\u001b[0m use_cftime\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39muse_cftime,\n\u001b[1;32m 1007\u001b[0m )\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/coding/times.py:214\u001b[0m, in \u001b[0;36m_decode_cf_datetime_dtype\u001b[0;34m(data, units, calendar, use_cftime)\u001b[0m\n\u001b[1;32m 212\u001b[0m values \u001b[38;5;241m=\u001b[39m indexing\u001b[38;5;241m.\u001b[39mImplicitToExplicitIndexingAdapter(indexing\u001b[38;5;241m.\u001b[39mas_indexable(data))\n\u001b[1;32m 213\u001b[0m example_value \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mconcatenate(\n\u001b[0;32m--> 214\u001b[0m [\u001b[43mfirst_n_items\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;129;01mor\u001b[39;00m [\u001b[38;5;241m0\u001b[39m], last_item(values) \u001b[38;5;129;01mor\u001b[39;00m [\u001b[38;5;241m0\u001b[39m]]\n\u001b[1;32m 215\u001b[0m )\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/formatting.py:97\u001b[0m, in \u001b[0;36mfirst_n_items\u001b[0;34m(array, n_desired)\u001b[0m\n\u001b[1;32m 96\u001b[0m array \u001b[38;5;241m=\u001b[39m array\u001b[38;5;241m.\u001b[39m_data\n\u001b[0;32m---> 97\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m np\u001b[38;5;241m.\u001b[39mravel(\u001b[43mto_duck_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43marray\u001b[49m\u001b[43m)\u001b[49m)[:n_desired]\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/namedarray/pycompat.py:138\u001b[0m, in \u001b[0;36mto_duck_array\u001b[0;34m(data, **kwargs)\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 138\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43masarray\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/indexing.py:578\u001b[0m, in \u001b[0;36mImplicitToExplicitIndexingAdapter.__array__\u001b[0;34m(self, dtype, copy)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m Version(np\u001b[38;5;241m.\u001b[39m__version__) \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m Version(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m2.0.0\u001b[39m\u001b[38;5;124m\"\u001b[39m):\n\u001b[0;32m--> 578\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m np\u001b[38;5;241m.\u001b[39masarray(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_duck_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m, dtype\u001b[38;5;241m=\u001b[39mdtype, copy\u001b[38;5;241m=\u001b[39mcopy)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/indexing.py:583\u001b[0m, in \u001b[0;36mImplicitToExplicitIndexingAdapter.get_duck_array\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 582\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget_duck_array\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m--> 583\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43marray\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_duck_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/indexing.py:657\u001b[0m, in \u001b[0;36mLazilyIndexedArray.get_duck_array\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 654\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 655\u001b[0m \u001b[38;5;66;03m# If the array is not an ExplicitlyIndexedNDArrayMixin,\u001b[39;00m\n\u001b[1;32m 656\u001b[0m \u001b[38;5;66;03m# it may wrap a BackendArray so use its __getitem__\u001b[39;00m\n\u001b[0;32m--> 657\u001b[0m array \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43marray\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkey\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 659\u001b[0m \u001b[38;5;66;03m# self.array[self.key] is now a numpy array when\u001b[39;00m\n\u001b[1;32m 660\u001b[0m \u001b[38;5;66;03m# self.array is a BackendArray subclass\u001b[39;00m\n\u001b[1;32m 661\u001b[0m \u001b[38;5;66;03m# and self.key is BasicIndexer((slice(None, None, None),))\u001b[39;00m\n\u001b[1;32m 662\u001b[0m \u001b[38;5;66;03m# so we need the explicit check for ExplicitlyIndexed\u001b[39;00m\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/zarr.py:175\u001b[0m, in \u001b[0;36mZarrArrayWrapper.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 174\u001b[0m method \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_oindex\n\u001b[0;32m--> 175\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mindexing\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexplicit_indexing_adapter\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[43m \u001b[49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43marray\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshape\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindexing\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mIndexingSupport\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mVECTORIZED\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\n\u001b[1;32m 177\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/core/indexing.py:1018\u001b[0m, in \u001b[0;36mexplicit_indexing_adapter\u001b[0;34m(key, shape, indexing_support, raw_indexing_method)\u001b[0m\n\u001b[1;32m 1017\u001b[0m raw_key, numpy_indices \u001b[38;5;241m=\u001b[39m decompose_indexer(key, shape, indexing_support)\n\u001b[0;32m-> 1018\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mraw_indexing_method\u001b[49m\u001b[43m(\u001b[49m\u001b[43mraw_key\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtuple\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1019\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m numpy_indices\u001b[38;5;241m.\u001b[39mtuple:\n\u001b[1;32m 1020\u001b[0m \u001b[38;5;66;03m# index the loaded np.ndarray\u001b[39;00m\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/zarr.py:158\u001b[0m, in \u001b[0;36mZarrArrayWrapper._getitem\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 155\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_getitem\u001b[39m(\u001b[38;5;28mself\u001b[39m, key):\n\u001b[1;32m 156\u001b[0m \u001b[38;5;66;03m# import pdb; pdb.set_trace()\u001b[39;00m\n\u001b[1;32m 157\u001b[0m \u001b[38;5;66;03m# try:\u001b[39;00m\n\u001b[0;32m--> 158\u001b[0m item \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_array\u001b[49m\u001b[43m[\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 159\u001b[0m \u001b[38;5;66;03m# except Exception as e:\u001b[39;00m\n\u001b[1;32m 160\u001b[0m \u001b[38;5;66;03m# import traceback\u001b[39;00m\n\u001b[1;32m 161\u001b[0m \u001b[38;5;66;03m# print(f\"An error occurred: {e}\")\u001b[39;00m\n\u001b[1;32m 162\u001b[0m \u001b[38;5;66;03m# print(\"Stack trace:\")\u001b[39;00m\n\u001b[1;32m 163\u001b[0m \u001b[38;5;66;03m# traceback.print_exc() # Prints the full traceback \u001b[39;00m\n\u001b[1;32m 164\u001b[0m \u001b[38;5;66;03m# import pdb; pdb.set_trace()\u001b[39;00m\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/array.py:1953\u001b[0m, in \u001b[0;36mArray.__getitem__\u001b[0;34m(self, selection)\u001b[0m\n\u001b[1;32m 1952\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m is_pure_orthogonal_indexing(pure_selection, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mndim):\n\u001b[0;32m-> 1953\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_orthogonal_selection\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpure_selection\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfields\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfields\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1954\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/_compat.py:43\u001b[0m, in \u001b[0;36m_deprecate_positional_args.._inner_deprecate_positional_args..inner_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m extra_args \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m---> 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;66;03m# extra_args > 0\u001b[39;00m\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/array.py:2395\u001b[0m, in \u001b[0;36mArray.get_orthogonal_selection\u001b[0;34m(self, selection, out, fields, prototype)\u001b[0m\n\u001b[1;32m 2394\u001b[0m indexer \u001b[38;5;241m=\u001b[39m OrthogonalIndexer(selection, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mshape, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmetadata\u001b[38;5;241m.\u001b[39mchunk_grid)\n\u001b[0;32m-> 2395\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msync\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2396\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_async_array\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_selection\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2397\u001b[0m \u001b[43m \u001b[49m\u001b[43mindexer\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindexer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfields\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfields\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprototype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mprototype\u001b[49m\n\u001b[1;32m 2398\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2399\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/sync.py:141\u001b[0m, in \u001b[0;36msync\u001b[0;34m(coro, loop, timeout)\u001b[0m\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(return_result, \u001b[38;5;167;01mBaseException\u001b[39;00m):\n\u001b[0;32m--> 141\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m return_result\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/sync.py:100\u001b[0m, in \u001b[0;36m_runner\u001b[0;34m(coro)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 100\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m coro\n\u001b[1;32m 101\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m ex:\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/array.py:1009\u001b[0m, in \u001b[0;36mAsyncArray._get_selection\u001b[0;34m(self, indexer, prototype, out, fields)\u001b[0m\n\u001b[1;32m 1007\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m product(indexer\u001b[38;5;241m.\u001b[39mshape) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 1008\u001b[0m \u001b[38;5;66;03m# reading chunks and decoding them\u001b[39;00m\n\u001b[0;32m-> 1009\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcodec_pipeline\u001b[38;5;241m.\u001b[39mread(\n\u001b[1;32m 1010\u001b[0m [\n\u001b[1;32m 1011\u001b[0m (\n\u001b[1;32m 1012\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstore_path \u001b[38;5;241m/\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmetadata\u001b[38;5;241m.\u001b[39mencode_chunk_key(chunk_coords),\n\u001b[1;32m 1013\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmetadata\u001b[38;5;241m.\u001b[39mget_chunk_spec(chunk_coords, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morder, prototype\u001b[38;5;241m=\u001b[39mprototype),\n\u001b[1;32m 1014\u001b[0m chunk_selection,\n\u001b[1;32m 1015\u001b[0m out_selection,\n\u001b[1;32m 1016\u001b[0m )\n\u001b[1;32m 1017\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk_coords, chunk_selection, out_selection \u001b[38;5;129;01min\u001b[39;00m indexer\n\u001b[1;32m 1018\u001b[0m ],\n\u001b[1;32m 1019\u001b[0m out_buffer,\n\u001b[1;32m 1020\u001b[0m drop_axes\u001b[38;5;241m=\u001b[39mindexer\u001b[38;5;241m.\u001b[39mdrop_axes,\n\u001b[1;32m 1021\u001b[0m )\n\u001b[1;32m 1022\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out_buffer\u001b[38;5;241m.\u001b[39mas_ndarray_like()\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/codec_pipeline.py:440\u001b[0m, in \u001b[0;36mBatchedCodecPipeline.read\u001b[0;34m(self, batch_info, out, drop_axes)\u001b[0m\n\u001b[1;32m 434\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mread\u001b[39m(\n\u001b[1;32m 435\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 436\u001b[0m batch_info: Iterable[\u001b[38;5;28mtuple\u001b[39m[ByteGetter, ArraySpec, SelectorTuple, SelectorTuple]],\n\u001b[1;32m 437\u001b[0m out: NDBuffer,\n\u001b[1;32m 438\u001b[0m drop_axes: \u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mint\u001b[39m, \u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m] \u001b[38;5;241m=\u001b[39m (),\n\u001b[1;32m 439\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 440\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m concurrent_map(\n\u001b[1;32m 441\u001b[0m [\n\u001b[1;32m 442\u001b[0m (single_batch_info, out, drop_axes)\n\u001b[1;32m 443\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m single_batch_info \u001b[38;5;129;01min\u001b[39;00m batched(batch_info, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbatch_size)\n\u001b[1;32m 444\u001b[0m ],\n\u001b[1;32m 445\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mread_batch,\n\u001b[1;32m 446\u001b[0m config\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124masync.concurrency\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 447\u001b[0m )\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/common.py:67\u001b[0m, in \u001b[0;36mconcurrent_map\u001b[0;34m(items, func, limit)\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(\u001b[38;5;241m*\u001b[39mitem)\n\u001b[0;32m---> 67\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mgather(\u001b[38;5;241m*\u001b[39m[asyncio\u001b[38;5;241m.\u001b[39mensure_future(run(item)) \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m items])\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/common.py:65\u001b[0m, in \u001b[0;36mconcurrent_map..run\u001b[0;34m(item)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mwith\u001b[39;00m sem:\n\u001b[0;32m---> 65\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(\u001b[38;5;241m*\u001b[39mitem)\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/codec_pipeline.py:270\u001b[0m, in \u001b[0;36mBatchedCodecPipeline.read_batch\u001b[0;34m(self, batch_info, out, drop_axes)\u001b[0m\n\u001b[1;32m 262\u001b[0m chunk_bytes_batch \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m concurrent_map(\n\u001b[1;32m 263\u001b[0m [\n\u001b[1;32m 264\u001b[0m (byte_getter, array_spec\u001b[38;5;241m.\u001b[39mprototype)\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 268\u001b[0m config\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124masync.concurrency\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 269\u001b[0m )\n\u001b[0;32m--> 270\u001b[0m chunk_array_batch \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdecode_batch(\n\u001b[1;32m 271\u001b[0m [\n\u001b[1;32m 272\u001b[0m (chunk_bytes, chunk_spec)\n\u001b[1;32m 273\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk_bytes, (_, chunk_spec, _, _) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\n\u001b[1;32m 274\u001b[0m chunk_bytes_batch, batch_info, strict\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 275\u001b[0m )\n\u001b[1;32m 276\u001b[0m ],\n\u001b[1;32m 277\u001b[0m )\n\u001b[1;32m 278\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk_array, (_, chunk_spec, chunk_selection, out_selection) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\n\u001b[1;32m 279\u001b[0m chunk_array_batch, batch_info, strict\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 280\u001b[0m ):\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/codec_pipeline.py:172\u001b[0m, in \u001b[0;36mBatchedCodecPipeline.decode_batch\u001b[0;34m(self, chunk_bytes_and_specs)\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m bb_codec, chunk_spec_batch \u001b[38;5;129;01min\u001b[39;00m bb_codecs_with_spec[::\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]:\n\u001b[0;32m--> 172\u001b[0m chunk_bytes_batch \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m bb_codec\u001b[38;5;241m.\u001b[39mdecode(\n\u001b[1;32m 173\u001b[0m \u001b[38;5;28mzip\u001b[39m(chunk_bytes_batch, chunk_spec_batch, strict\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 174\u001b[0m )\n\u001b[1;32m 176\u001b[0m ab_codec, chunk_spec_batch \u001b[38;5;241m=\u001b[39m ab_codec_with_spec\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/abc/codec.py:129\u001b[0m, in \u001b[0;36mBaseCodec.decode\u001b[0;34m(self, chunks_and_specs)\u001b[0m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Decodes a batch of chunks.\u001b[39;00m\n\u001b[1;32m 118\u001b[0m \u001b[38;5;124;03mChunks can be None in which case they are ignored by the codec.\u001b[39;00m\n\u001b[1;32m 119\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 127\u001b[0m \u001b[38;5;124;03mIterable[CodecInput | None]\u001b[39;00m\n\u001b[1;32m 128\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 129\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m _batching_helper(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_decode_single, chunks_and_specs)\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/abc/codec.py:407\u001b[0m, in \u001b[0;36m_batching_helper\u001b[0;34m(func, batch_info)\u001b[0m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_batching_helper\u001b[39m(\n\u001b[1;32m 404\u001b[0m func: Callable[[CodecInput, ArraySpec], Awaitable[CodecOutput \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m]],\n\u001b[1;32m 405\u001b[0m batch_info: Iterable[\u001b[38;5;28mtuple\u001b[39m[CodecInput \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m, ArraySpec]],\n\u001b[1;32m 406\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mlist\u001b[39m[CodecOutput \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m]:\n\u001b[0;32m--> 407\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m concurrent_map(\n\u001b[1;32m 408\u001b[0m \u001b[38;5;28mlist\u001b[39m(batch_info),\n\u001b[1;32m 409\u001b[0m _noop_for_none(func),\n\u001b[1;32m 410\u001b[0m config\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124masync.concurrency\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 411\u001b[0m )\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/common.py:67\u001b[0m, in \u001b[0;36mconcurrent_map\u001b[0;34m(items, func, limit)\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(\u001b[38;5;241m*\u001b[39mitem)\n\u001b[0;32m---> 67\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mgather(\u001b[38;5;241m*\u001b[39m[asyncio\u001b[38;5;241m.\u001b[39mensure_future(run(item)) \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m items])\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/common.py:65\u001b[0m, in \u001b[0;36mconcurrent_map..run\u001b[0;34m(item)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mwith\u001b[39;00m sem:\n\u001b[0;32m---> 65\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(\u001b[38;5;241m*\u001b[39mitem)\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/abc/codec.py:420\u001b[0m, in \u001b[0;36m_noop_for_none..wrap\u001b[0;34m(chunk, chunk_spec)\u001b[0m\n\u001b[1;32m 419\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m--> 420\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m func(chunk, chunk_spec)\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/numcodecs/zarr3.py:125\u001b[0m, in \u001b[0;36m_NumcodecsBytesBytesCodec._decode_single\u001b[0;34m(self, chunk_bytes, chunk_spec)\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_decode_single\u001b[39m(\u001b[38;5;28mself\u001b[39m, chunk_bytes: Buffer, chunk_spec: ArraySpec) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Buffer:\n\u001b[0;32m--> 125\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mto_thread(\n\u001b[1;32m 126\u001b[0m as_numpy_array_wrapper,\n\u001b[1;32m 127\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_codec\u001b[38;5;241m.\u001b[39mdecode,\n\u001b[1;32m 128\u001b[0m chunk_bytes,\n\u001b[1;32m 129\u001b[0m chunk_spec\u001b[38;5;241m.\u001b[39mprototype,\n\u001b[1;32m 130\u001b[0m )\n", - "File \u001b[0;32m/usr/local/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/threads.py:25\u001b[0m, in \u001b[0;36mto_thread\u001b[0;34m(func, *args, **kwargs)\u001b[0m\n\u001b[1;32m 24\u001b[0m func_call \u001b[38;5;241m=\u001b[39m functools\u001b[38;5;241m.\u001b[39mpartial(ctx\u001b[38;5;241m.\u001b[39mrun, func, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m---> 25\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m loop\u001b[38;5;241m.\u001b[39mrun_in_executor(\u001b[38;5;28;01mNone\u001b[39;00m, func_call)\n", - "File \u001b[0;32m/usr/local/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/concurrent/futures/thread.py:58\u001b[0m, in \u001b[0;36m_WorkItem.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 58\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/zarr/core/buffer/cpu.py:213\u001b[0m, in \u001b[0;36mas_numpy_array_wrapper\u001b[0;34m(func, buf, prototype)\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Converts the input of `func` to a numpy array and the output back to `Buffer`.\u001b[39;00m\n\u001b[1;32m 192\u001b[0m \n\u001b[1;32m 193\u001b[0m \u001b[38;5;124;03mThis function is useful when calling a `func` that only support host memory such\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[38;5;124;03m The result of `func` converted to a `Buffer`\u001b[39;00m\n\u001b[1;32m 212\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 213\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m prototype\u001b[38;5;241m.\u001b[39mbuffer\u001b[38;5;241m.\u001b[39mfrom_bytes(\u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbuf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mas_numpy_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m)\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/numcodecs/zlib.py:37\u001b[0m, in \u001b[0;36mZlib.decode\u001b[0;34m(self, buf, out)\u001b[0m\n\u001b[1;32m 36\u001b[0m \u001b[38;5;66;03m# do decompression\u001b[39;00m\n\u001b[0;32m---> 37\u001b[0m dec \u001b[38;5;241m=\u001b[39m \u001b[43m_zlib\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecompress\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbuf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 39\u001b[0m \u001b[38;5;66;03m# handle destination - Python standard library zlib module does not\u001b[39;00m\n\u001b[1;32m 40\u001b[0m \u001b[38;5;66;03m# support direct decompression into buffer, so we have to copy into\u001b[39;00m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;66;03m# out if given\u001b[39;00m\n", - "\u001b[0;31merror\u001b[0m: Error -3 while decompressing data: unknown compression method", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31merror\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[23], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mxr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_zarr\u001b[49m\u001b[43m(\u001b[49m\u001b[43mread_store\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconsolidated\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mzarr_format\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m ds\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/zarr.py:1346\u001b[0m, in \u001b[0;36mopen_zarr\u001b[0;34m(store, group, synchronizer, chunks, decode_cf, mask_and_scale, decode_times, concat_characters, decode_coords, drop_variables, consolidated, overwrite_encoded_chunks, chunk_store, storage_options, decode_timedelta, use_cftime, zarr_version, zarr_format, use_zarr_fill_value_as_mask, chunked_array_type, from_array_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 1335\u001b[0m backend_kwargs \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m 1336\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msynchronizer\u001b[39m\u001b[38;5;124m\"\u001b[39m: synchronizer,\n\u001b[1;32m 1337\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mconsolidated\u001b[39m\u001b[38;5;124m\"\u001b[39m: consolidated,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1343\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mzarr_format\u001b[39m\u001b[38;5;124m\"\u001b[39m: zarr_format,\n\u001b[1;32m 1344\u001b[0m }\n\u001b[1;32m 1345\u001b[0m \u001b[38;5;66;03m#import pdb; pdb.set_trace()\u001b[39;00m\n\u001b[0;32m-> 1346\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1347\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilename_or_obj\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstore\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1348\u001b[0m \u001b[43m \u001b[49m\u001b[43mgroup\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1349\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_cf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_cf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1350\u001b[0m \u001b[43m \u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmask_and_scale\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1351\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_times\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1352\u001b[0m \u001b[43m \u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconcat_characters\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1353\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_coords\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_coords\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1354\u001b[0m \u001b[43m \u001b[49m\u001b[43mengine\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mzarr\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1355\u001b[0m \u001b[43m \u001b[49m\u001b[43mchunks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mchunks\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1356\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_variables\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1357\u001b[0m \u001b[43m \u001b[49m\u001b[43mchunked_array_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mchunked_array_type\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1358\u001b[0m \u001b[43m \u001b[49m\u001b[43mfrom_array_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfrom_array_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1359\u001b[0m \u001b[43m \u001b[49m\u001b[43mbackend_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbackend_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1360\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_timedelta\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1361\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1362\u001b[0m \u001b[43m \u001b[49m\u001b[43mzarr_version\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mzarr_version\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1363\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_zarr_fill_value_as_mask\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_zarr_fill_value_as_mask\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1364\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1365\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/api.py:671\u001b[0m, in \u001b[0;36mopen_dataset\u001b[0;34m(filename_or_obj, engine, chunks, cache, decode_cf, mask_and_scale, decode_times, decode_timedelta, use_cftime, concat_characters, decode_coords, drop_variables, inline_array, chunked_array_type, from_array_kwargs, backend_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 659\u001b[0m decoders \u001b[38;5;241m=\u001b[39m _resolve_decoders_kwargs(\n\u001b[1;32m 660\u001b[0m decode_cf,\n\u001b[1;32m 661\u001b[0m open_backend_dataset_parameters\u001b[38;5;241m=\u001b[39mbackend\u001b[38;5;241m.\u001b[39mopen_dataset_parameters,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 667\u001b[0m decode_coords\u001b[38;5;241m=\u001b[39mdecode_coords,\n\u001b[1;32m 668\u001b[0m )\n\u001b[1;32m 670\u001b[0m overwrite_encoded_chunks \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124moverwrite_encoded_chunks\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[0;32m--> 671\u001b[0m backend_ds \u001b[38;5;241m=\u001b[39m \u001b[43mbackend\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 672\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilename_or_obj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 673\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_variables\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 674\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mdecoders\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 675\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 676\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 677\u001b[0m ds \u001b[38;5;241m=\u001b[39m _dataset_from_backend_dataset(\n\u001b[1;32m 678\u001b[0m backend_ds,\n\u001b[1;32m 679\u001b[0m filename_or_obj,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 689\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[1;32m 690\u001b[0m )\n\u001b[1;32m 691\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/zarr.py:1436\u001b[0m, in \u001b[0;36mZarrBackendEntrypoint.open_dataset\u001b[0;34m(self, filename_or_obj, mask_and_scale, decode_times, concat_characters, decode_coords, drop_variables, use_cftime, decode_timedelta, group, mode, synchronizer, consolidated, chunk_store, storage_options, stacklevel, zarr_version, zarr_format, store, engine, use_zarr_fill_value_as_mask)\u001b[0m\n\u001b[1;32m 1434\u001b[0m store_entrypoint \u001b[38;5;241m=\u001b[39m StoreBackendEntrypoint()\n\u001b[1;32m 1435\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m close_on_error(store):\n\u001b[0;32m-> 1436\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mstore_entrypoint\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1437\u001b[0m \u001b[43m \u001b[49m\u001b[43mstore\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1438\u001b[0m \u001b[43m \u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmask_and_scale\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1439\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_times\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1440\u001b[0m \u001b[43m \u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconcat_characters\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1441\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_coords\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_coords\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1442\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_variables\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1443\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1444\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_timedelta\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1445\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1446\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/backends/store.py:46\u001b[0m, in \u001b[0;36mStoreBackendEntrypoint.open_dataset\u001b[0;34m(self, filename_or_obj, mask_and_scale, decode_times, concat_characters, decode_coords, drop_variables, use_cftime, decode_timedelta)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28mvars\u001b[39m, attrs \u001b[38;5;241m=\u001b[39m filename_or_obj\u001b[38;5;241m.\u001b[39mload()\n\u001b[1;32m 44\u001b[0m encoding \u001b[38;5;241m=\u001b[39m filename_or_obj\u001b[38;5;241m.\u001b[39mget_encoding()\n\u001b[0;32m---> 46\u001b[0m \u001b[38;5;28mvars\u001b[39m, attrs, coord_names \u001b[38;5;241m=\u001b[39m \u001b[43mconventions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode_cf_variables\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 47\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mvars\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 48\u001b[0m \u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 49\u001b[0m \u001b[43m \u001b[49m\u001b[43mmask_and_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmask_and_scale\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_times\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 51\u001b[0m \u001b[43m \u001b[49m\u001b[43mconcat_characters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconcat_characters\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 52\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_coords\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_coords\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 53\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_variables\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdrop_variables\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cftime\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_cftime\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 55\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecode_timedelta\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecode_timedelta\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 56\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;66;03m# import pdb; pdb.set_trace()\u001b[39;00m\n\u001b[1;32m 58\u001b[0m ds \u001b[38;5;241m=\u001b[39m Dataset(\u001b[38;5;28mvars\u001b[39m, attrs\u001b[38;5;241m=\u001b[39mattrs)\n", - "File \u001b[0;32m~/github/virtualizarr/venv/lib/python3.12/site-packages/xarray/conventions.py:462\u001b[0m, in \u001b[0;36mdecode_cf_variables\u001b[0;34m(variables, attributes, concat_characters, mask_and_scale, decode_times, decode_coords, drop_variables, use_cftime, decode_timedelta)\u001b[0m\n\u001b[1;32m 451\u001b[0m new_vars[k] \u001b[38;5;241m=\u001b[39m decode_cf_variable(\n\u001b[1;32m 452\u001b[0m k,\n\u001b[1;32m 453\u001b[0m v,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 459\u001b[0m decode_timedelta\u001b[38;5;241m=\u001b[39m_item_or_default(decode_timedelta, k, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[1;32m 460\u001b[0m )\n\u001b[1;32m 461\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m--> 462\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mtype\u001b[39m(e)(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFailed to decode variable \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mk\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00me\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01me\u001b[39;00m\n\u001b[1;32m 463\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m decode_coords \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;28;01mTrue\u001b[39;00m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcoordinates\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mall\u001b[39m\u001b[38;5;124m\"\u001b[39m]:\n\u001b[1;32m 464\u001b[0m var_attrs \u001b[38;5;241m=\u001b[39m new_vars[k]\u001b[38;5;241m.\u001b[39mattrs\n", - "\u001b[0;31merror\u001b[0m: Failed to decode variable 'time': Error -3 while decompressing data: unknown compression method" - ] - } - ], + "outputs": [], "source": [ "ds = xr.open_zarr(read_store, consolidated=False, zarr_format=3)\n", "ds" @@ -1293,9 +361,9 @@ ], "metadata": { "kernelspec": { - "display_name": "venv", + "display_name": "virtualizarr", "language": "python", - "name": "venv" + "name": "virtualizarr" }, "language_info": { "codemirror_mode": { @@ -1307,7 +375,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.7" + "version": "3.11.10" } }, "nbformat": 4,