diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 378d9c7..e4e1f10 100644 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,7 +8,6 @@ jobs: vmImage: $(image_name) timeoutInMinutes: 360 steps: - - bash: echo "##vso[task.prependpath]$CONDA/bin" displayName: Add conda to PATH diff --git a/examples/zarr_v2.ipynb b/examples/zarr_v2.ipynb index b6193f6..4f0d62c 100644 --- a/examples/zarr_v2.ipynb +++ b/examples/zarr_v2.ipynb @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -27,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -36,27 +36,78 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[69, 68, 68, ..., 74, 78, 81],\n", + " [71, 71, 71, ..., 77, 80, 82],\n", + " [74, 75, 75, ..., 78, 80, 81],\n", + " ...,\n", + " [13, 14, 15, ..., 70, 70, 68],\n", + " [15, 17, 19, ..., 70, 70, 68],\n", + " [11, 13, 15, ..., 70, 69, 68]], dtype=uint8)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.imshow(a, cmap='Greys_r')" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(325, 232)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a.shape" ] @@ -70,16 +121,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "!rm -rf marie_curie.zarr" + "!rm -rf marie_curie.zarr marie_curie2.zarr" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -88,7 +139,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -97,9 +148,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.9 10.7 1.7\t 2.6 3.5 4.4 5.3\t 6.2 7.11 8.10 9.1\r\n", + "0.1 1.0 10.8 1.8\t 2.7 3.6 4.5 5.4\t 6.3 7.2 8.11 9.10\r\n", + "0.10 10.0 10.9 1.9\t 2.8 3.7 4.6 5.5\t 6.4 7.3 8.2 9.11\r\n", + "0.11 10.1 1.1 2.0\t 2.9 3.8 4.7 5.6\t 6.5 7.4 8.3 9.2\r\n", + "0.2 10.10 1.10 2.1\t 3.0 3.9 4.8 5.7\t 6.6 7.5 8.4 9.3\r\n", + "0.3 10.11 1.11 2.10 3.1 4.0 4.9 5.8\t 6.7 7.6 8.5 9.4\r\n", + "0.4 10.2 1.2 2.11 3.10 4.1 5.0 5.9\t 6.8 7.7 8.6 9.5\r\n", + "0.5 10.3 1.3 2.2\t 3.11 4.10 5.1 6.0\t 6.9 7.8 8.7 9.6\r\n", + "0.6 10.4 1.4 2.3\t 3.2 4.11 5.10 6.1\t 7.0 7.9 8.8 9.7\r\n", + "0.7 10.5 1.5 2.4\t 3.3 4.2 5.11 6.10 7.1 8.0 8.9 9.8\r\n", + "0.8 10.6 1.6 2.5\t 3.4 4.3 5.2 6.11 7.10 8.1 9.0 9.9\r\n" + ] + } + ], "source": [ "!ls marie_curie.zarr" ] @@ -113,22 +182,7 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - ">bash\n", - "rm -rf zarrita *.tar.gz*\n", - "mkdir -p zarrita\n", - "\n", - "wget https://github.com/alimanfoo/zarrita/archive/master.tar.gz -O zarrita.tar.gz -q\n", - "tar zxf zarrita.tar.gz -C zarrita --strip-components 1\n", - "mv zarrita/zarrita.py ." - ] - }, - { - "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -138,7 +192,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -148,7 +202,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -158,7 +212,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -185,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -197,9 +251,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
69
68
68
74
78
81
71
71
71
77
80
82
74
75
75
78
80
81
13
14
15
70
70
68
15
17
19
70
70
68
11
13
15
70
69
68
" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ ">xcpp14\n", "auto a = z.get_array();\n", @@ -208,7 +273,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -222,7 +287,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -238,9 +303,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2343a2de65914a428580439efbda732b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "A Jupyter widget" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ ">xcpp14\n", "xw::image img;\n", @@ -254,6 +335,58 @@ "source": [ "The original image has been reconstructed." ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + ">xcpp14\n", + "auto h2 = xt::create_zarr_hierarchy(\"marie_curie2.zarr\", \"2\");" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + ">xcpp14\n", + "std::vector shape = {325, 232};\n", + "std::vector chunk_shape = {30, 20};\n", + "std::string dtype = \"u2\";\n", + "char chunk_memory_layout = 'C';\n", + "char chunk_separator = '.';\n", + "xt::xio_blosc_config compressor;\n", + "auto z2 = h2.create_array(\"\", shape, chunk_shape, dtype);//, chunk_memory_layout, chunk_separator, compressor);" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "ename": "Standard Exception", + "evalue": "callback not found", + "output_type": "error", + "traceback": [ + "Standard Exception: callback not found" + ] + } + ], + "source": [ + ">xcpp14\n", + "z2 = z" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/include/xtensor-zarr/xzarr_aws_store.hpp b/include/xtensor-zarr/xzarr_aws_store.hpp index 04613a3..f6fb61f 100644 --- a/include/xtensor-zarr/xzarr_aws_store.hpp +++ b/include/xtensor-zarr/xzarr_aws_store.hpp @@ -115,7 +115,7 @@ namespace xt request.SetKey(m_path); std::shared_ptr writer = Aws::MakeShared("SampleAllocationTag", m_path.c_str(), std::ios_base::in | std::ios_base::binary); - writer->write(value, size); + writer->write(value, (std::streamsize)size); writer->flush(); request.SetBody(writer); diff --git a/include/xtensor-zarr/xzarr_common.hpp b/include/xtensor-zarr/xzarr_common.hpp index 48f9f76..73d7f60 100644 --- a/include/xtensor-zarr/xzarr_common.hpp +++ b/include/xtensor-zarr/xzarr_common.hpp @@ -20,11 +20,11 @@ namespace xt std::size_t zarr_major; if (i == std::string::npos) { - zarr_major = std::stoi(zarr_version); + zarr_major = (std::size_t)std::stoi(zarr_version); } else { - zarr_major = std::stoi(zarr_version.substr(0, i)); + zarr_major = (std::size_t)std::stoi(zarr_version.substr(0, i)); } if ((zarr_major < 2) || (zarr_major > 3)) { diff --git a/include/xtensor-zarr/xzarr_file_system_store.hpp b/include/xtensor-zarr/xzarr_file_system_store.hpp index d48a8cd..9ed79af 100644 --- a/include/xtensor-zarr/xzarr_file_system_store.hpp +++ b/include/xtensor-zarr/xzarr_file_system_store.hpp @@ -129,7 +129,7 @@ namespace xt } } std::ofstream stream(m_path, std::ofstream::binary); - stream.write(value, size); + stream.write(value, (std::streamsize)size); stream.flush(); } diff --git a/include/xtensor-zarr/xzarr_gcs_store.hpp b/include/xtensor-zarr/xzarr_gcs_store.hpp index 6d55511..148275e 100644 --- a/include/xtensor-zarr/xzarr_gcs_store.hpp +++ b/include/xtensor-zarr/xzarr_gcs_store.hpp @@ -95,7 +95,7 @@ namespace xt void xzarr_gcs_stream::assign(const char* value, std::size_t size) { auto writer = m_client.WriteObject(m_bucket, m_path); - writer.write(value, size); + writer.write(value, (std::streamsize)size); writer.flush(); } diff --git a/test/test_zarr.cpp b/test/test_zarr.cpp index 5dbaec4..5215f41 100644 --- a/test/test_zarr.cpp +++ b/test/test_zarr.cpp @@ -156,7 +156,7 @@ namespace xt "data/root/arthur/dent/c1/1", "data/root/arthur/dent/c2/0", "data/root/arthur/dent/c2/1"}; - for (int i = 0; i < 6; i++) + for (unsigned long int i = 0; i < 6; i++) { EXPECT_EQ(keys1[i], ref1[i]); } @@ -165,7 +165,7 @@ namespace xt auto keys2 = s2.list(); std::string ref2[] = {"android.array.json", "paranoid.group.json"}; - for (int i = 0; i < 2; i++) + for (unsigned long int i = 0; i < 2; i++) { EXPECT_EQ(keys2[i], ref2[i]); // we don't have rights to erase objects in this bucket as an anonymous client @@ -192,4 +192,15 @@ namespace xt auto h = create_zarr_hierarchy("test.zr3"); auto z = h.create_array("/foo", shape, chunk_shape, " shape = {4, 4}; + std::vector chunk_shape = {2, 2}; + auto h1 = create_zarr_hierarchy("src.zr3"); + zarray z1 = h1.create_array("/", shape, chunk_shape, "