From 9fb07d922c2c9b74194471a99496e4225a2e1ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20B=C3=BCrger?= Date: Wed, 3 Jul 2024 08:00:08 +0200 Subject: [PATCH 01/11] cargo update (lru 0.7.7 did not build with nightly) --- Cargo.lock | 670 +++++++++++++++++++++++++++++------------------------ 1 file changed, 363 insertions(+), 307 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 73834e5..3c9045d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ "getrandom", "once_cell", @@ -30,18 +30,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "ascii" @@ -68,20 +68,20 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.68", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "bincode" @@ -115,15 +115,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -139,18 +139,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "74b6a57f98764a267ff415d50a25e6e166f3831a5071af4995296ea97d210490" [[package]] name = "cfg-if" @@ -169,9 +166,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -179,57 +176,49 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset 0.9.0", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "curl-sys" -version = "0.4.68+curl-8.4.0" +version = "0.4.73+curl-8.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a0d18d88360e374b16b2273c832b5e57258ffc1d4aa4f96b108e0738d5752f" +checksum = "450ab250ecf17227c39afb9a2dd9261dc0035cb80f2612472fc0c4aac2dcb84d" dependencies = [ "cc", "libc", @@ -237,20 +226,20 @@ dependencies = [ "openssl-sys", "pkg-config", "vcpkg", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "either" -version = "1.9.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -263,19 +252,19 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "flexbuffers" @@ -313,9 +302,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -332,9 +321,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -347,9 +336,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -357,15 +346,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -374,38 +363,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.68", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -430,9 +419,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -441,15 +430,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "h2" -version = "0.3.22" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -475,16 +464,16 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hdf5" version = "0.8.1" source = "git+https://github.com/magnusuMET/hdf5-rust?branch=hidefix_jul_2023#139027b327c0c6e441f54c769b64ddb6a7d93c7e" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "cfg-if", "hdf5-derive", "hdf5-sys", @@ -492,7 +481,7 @@ dependencies = [ "lazy_static", "libc", "ndarray", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "paste", ] @@ -504,7 +493,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.68", ] [[package]] @@ -545,9 +534,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hidefix" @@ -588,9 +577,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -599,9 +588,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -610,9 +599,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -622,9 +611,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" dependencies = [ "bytes", "futures-channel", @@ -637,7 +626,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2", "tokio", "tower-service", "tracing", @@ -659,9 +648,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -669,12 +658,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.2", + "hashbrown 0.14.5", ] [[package]] @@ -685,9 +674,9 @@ checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -709,30 +698,30 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" -version = "0.3.65" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libdeflate-sys" @@ -754,19 +743,19 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" dependencies = [ "cfg-if", - "windows-sys", + "windows-targets 0.52.5", ] [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" dependencies = [ "cc", "libc", @@ -776,15 +765,15 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -792,9 +781,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lru" @@ -817,9 +806,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memoffset" @@ -830,15 +819,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" version = "0.3.17" @@ -847,31 +827,30 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ - "lazy_static", "libc", "log", "openssl", @@ -911,9 +890,9 @@ dependencies = [ [[package]] name = "netcdf-src" -version = "0.3.2" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77436df6015ab0183477ed27bea283ff5fee22891e907823de11f4ad12e1fc54" +checksum = "68ae83ca3a3cdbd6f5bc1a30b51cc4838679cbc926f6ead0fed5ee3e52708795" dependencies = [ "cmake", "hdf5-sys", @@ -935,28 +914,27 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -1009,26 +987,26 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.59" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -1045,7 +1023,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.68", ] [[package]] @@ -1056,18 +1034,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.1.6+3.1.4" +version = "300.3.1+3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085" +checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.95" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -1089,12 +1067,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.9", + "parking_lot_core 0.9.10", ] [[package]] @@ -1113,34 +1091,34 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.2", "smallvec", - "windows-targets", + "windows-targets 0.52.5", ] [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -1150,9 +1128,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "ppv-lite86" @@ -1195,9 +1173,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -1212,8 +1190,8 @@ dependencies = [ "cfg-if", "indoc", "libc", - "memoffset 0.6.5", - "parking_lot 0.12.1", + "memoffset", + "parking_lot 0.12.3", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", @@ -1265,9 +1243,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1310,9 +1288,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -1320,9 +1298,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -1339,18 +1317,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.2" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", @@ -1360,9 +1338,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", @@ -1371,15 +1349,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" -version = "0.11.22" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64", "bytes", @@ -1399,9 +1377,11 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", @@ -1415,36 +1395,45 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "0.38.24" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ad981d6c340a49cdc40a1028d9c6084ec7e9fa33fcb839cab656a267071e234" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64", ] [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1455,11 +1444,11 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -1468,9 +1457,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -1478,44 +1467,44 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.192" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.12" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.192" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.68", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" dependencies = [ "itoa", "ryu", @@ -1561,28 +1550,18 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" - -[[package]] -name = "socket2" -version = "0.4.10" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1604,15 +1583,21 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "system-configuration" version = "0.5.1" @@ -1636,28 +1621,27 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tempfile" -version = "3.8.1" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "redox_syscall 0.4.1", "rustix", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "c55115c6fbe2d2bef26eb09ad74bde02d8255476fc0c7b515ef09fbb35742d82" dependencies = [ "tinyvec_macros", ] @@ -1670,9 +1654,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.34.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", @@ -1680,20 +1664,20 @@ dependencies = [ "mio", "num_cpus", "pin-project-lite", - "socket2 0.5.5", + "socket2", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.68", ] [[package]] @@ -1708,23 +1692,22 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" [[package]] name = "toml_edit" @@ -1764,15 +1747,15 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -1782,9 +1765,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -1797,9 +1780,9 @@ checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "url" -version = "2.4.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -1835,9 +1818,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1845,24 +1828,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.68", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.38" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -1872,9 +1855,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1882,28 +1865,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.68", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.65" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -1937,7 +1920,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", ] [[package]] @@ -1946,13 +1938,29 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -1961,47 +1969,95 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + [[package]] name = "winnow" -version = "0.5.19" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] @@ -2014,14 +2070,14 @@ checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ "cfg-if", "serde", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "zerocopy" -version = "0.7.26" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", "zerocopy-derive", @@ -2029,11 +2085,11 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.7.26" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.68", ] From 8e8f8f88367139e8e38f54c9daec3972555f1622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20B=C3=BCrger?= Date: Wed, 3 Jul 2024 08:00:08 +0200 Subject: [PATCH 02/11] add crate feature "nightly" to enable features in rust nightly - enables code using cow_is_borrowed - enables code using new_uninit - use Vec::chunk_by (stable since rust 1.70) - use divan for benchmarks - add function to create empty vec --- Cargo.lock | 80 +++++++++++++++++++++++ Cargo.toml | 37 +++++++++++ benches/concurrency.rs | 48 +++++++------- benches/dataset.rs | 14 +++-- benches/index.rs | 14 +++-- benches/large.rs | 54 ++++++++-------- benches/native.rs | 50 ++++++++------- benches/norkyst.rs | 20 +++--- benches/read.rs | 50 ++++++++------- benches/serialize.rs | 126 +++++++++++++++++++------------------ benches/stream.rs | 38 +++++------ src/filters/shuffle.rs | 38 +++++------ src/idx/chunk.rs | 10 +-- src/idx/dataset/dataset.rs | 8 +-- src/idx/dataset/mod.rs | 20 +++--- src/idx/serde.rs | 1 + src/lib.rs | 11 +--- src/reader/dataset.rs | 32 +++++++--- src/reader/direct.rs | 2 +- tests/read_dims.rs | 3 - tests/read_norkyst.rs | 2 - tests/read_strings.rs | 3 - tests/read_svim.rs | 3 - 23 files changed, 398 insertions(+), 266 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3c9045d..05d3053 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,6 +37,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + [[package]] name = "anyhow" version = "1.0.86" @@ -155,6 +161,32 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "clap" +version = "4.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" +dependencies = [ + "anstyle", + "clap_lex", + "terminal_size", +] + +[[package]] +name = "clap_lex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" + [[package]] name = "cmake" version = "0.1.50" @@ -164,6 +196,12 @@ dependencies = [ "cc", ] +[[package]] +name = "condtype" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af" + [[package]] name = "core-foundation" version = "0.9.4" @@ -229,6 +267,31 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "divan" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d567df2c9c2870a43f3f2bd65aaeb18dbce1c18f217c3e564b4fbaeb3ee56c" +dependencies = [ + "cfg-if", + "clap", + "condtype", + "divan-macros", + "libc", + "regex-lite", +] + +[[package]] +name = "divan-macros" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27540baf49be0d484d8f0130d7d8da3011c32a44d4fc873368154f1510e574a2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + [[package]] name = "either" version = "1.13.0" @@ -548,6 +611,7 @@ dependencies = [ "byte-slice-cast", "byteorder", "bytes", + "divan", "flexbuffers", "futures", "futures-core", @@ -1347,6 +1411,12 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + [[package]] name = "regex-syntax" version = "0.8.4" @@ -1637,6 +1707,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + [[package]] name = "tinyvec" version = "1.6.1" diff --git a/Cargo.toml b/Cargo.toml index defdae8..76f0dab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,6 +50,7 @@ features = ["sync", "macros", "rt-multi-thread"] version = "1" [dev-dependencies] +divan = "0.1.14" rand = "0.8" sled = "0.34.6" reqwest = { version = "0.11", features = [ "blocking" ] } @@ -71,4 +72,40 @@ fast-index = [] python = ["pyo3", "numpy"] extension-module = ["python", "pyo3/extension-module"] netcdf = [ "dep:netcdf" ] +unstable = [] +[[bench]] +name = "concurrency" +harness = false + +[[bench]] +name = "dataset" +harness = false + +[[bench]] +name = "index" +harness = false + +[[bench]] +name = "large" +harness = false + +[[bench]] +name = "native" +harness = false + +[[bench]] +name = "norkyst" +harness = false + +[[bench]] +name = "read" +harness = false + +[[bench]] +name = "serialize" +harness = false + +[[bench]] +name = "stream" +harness = false diff --git a/benches/concurrency.rs b/benches/concurrency.rs index 6890c1e..2019550 100644 --- a/benches/concurrency.rs +++ b/benches/concurrency.rs @@ -1,7 +1,5 @@ -#![feature(test)] -extern crate test; use std::sync::Arc; -use test::Bencher; +use divan::Bencher; use hidefix::prelude::*; @@ -30,56 +28,56 @@ mod shuffled_compressed { use super::*; #[ignore] - #[bench] - fn cache_sequential(b: &mut Bencher) { + #[divan::bench] + fn cache_sequential(b: Bencher) { let i = Index::index("tests/data/dmrpp/chunked_shufzip_twoD.h5").unwrap(); let mut r = i.reader("d_4_shufzip_chunks").unwrap(); - b.iter(|| { + b.bench_local(|| { for _ in 0..ITERATIONS { for _ in 0..REPETITIONS { - test::black_box(&r.values::(..).unwrap()); + divan::black_box(&r.values::(..).unwrap()); } } }) } #[ignore] - #[bench] - fn direct_sequential_parallel(b: &mut Bencher) { + #[divan::bench] + fn direct_sequential_parallel(b: Bencher) { let i = Index::index("tests/data/dmrpp/chunked_shufzip_twoD.h5").unwrap(); let ds = i.dataset("d_4_shufzip_chunks").unwrap(); let r = ds .as_par_reader(&"tests/data/dmrpp/chunked_shufzip_twoD.h5") .unwrap(); - b.iter(|| { + b.bench_local(|| { for _ in 0..ITERATIONS { for _ in 0..REPETITIONS { - test::black_box(&r.values_par::(..).unwrap()); + divan::black_box(&r.values_par::(..).unwrap()); } } }) } #[ignore] - #[bench] - fn native_sequential(b: &mut Bencher) { + #[divan::bench] + fn native_sequential(b: Bencher) { let h = hdf5::File::open("tests/data/dmrpp/chunked_shufzip_twoD.h5").unwrap(); let d = h.dataset("d_4_shufzip_chunks").unwrap(); - b.iter(|| { + b.bench_local(|| { for _ in 0..ITERATIONS { for _ in 0..REPETITIONS { - test::black_box(&d.read_raw::().unwrap()); + divan::black_box(&d.read_raw::().unwrap()); } } }) } #[ignore] - #[bench] - fn cache_concurrent_reads(b: &mut Bencher) { + #[divan::bench] + fn cache_concurrent_reads(b: Bencher) { let i = Arc::new(Index::index("tests/data/dmrpp/chunked_shufzip_twoD.h5").unwrap()); let pool = rayon::ThreadPoolBuilder::new() @@ -87,7 +85,7 @@ mod shuffled_compressed { .build() .unwrap(); - b.iter(move || { + b.bench_local(move || { let i = Arc::clone(&i); pool.scope(move |s| { for _ in 0..ITERATIONS { @@ -96,7 +94,7 @@ mod shuffled_compressed { s.spawn(move |_| { let mut r = i.reader("d_4_shufzip_chunks").unwrap(); for _ in 0..REPETITIONS { - test::black_box(&r.values::(..).unwrap()); + divan::black_box(&r.values::(..).unwrap()); } }); } @@ -105,8 +103,8 @@ mod shuffled_compressed { } #[ignore] - #[bench] - fn native_concurrent_reads(b: &mut Bencher) { + #[divan::bench] + fn native_concurrent_reads(b: Bencher) { let h = hdf5::File::open("tests/data/dmrpp/chunked_shufzip_twoD.h5").unwrap(); let d = Arc::new(h.dataset("d_4_shufzip_chunks").unwrap()); @@ -115,7 +113,7 @@ mod shuffled_compressed { .build() .unwrap(); - b.iter(move || { + b.bench_local(move || { let d = Arc::clone(&d); pool.scope(move |s| { for _ in 0..ITERATIONS { @@ -123,7 +121,7 @@ mod shuffled_compressed { s.spawn(move |_| { for _ in 0..REPETITIONS { - test::black_box(&d.read_raw::().unwrap()); + divan::black_box(&d.read_raw::().unwrap()); } }); } @@ -131,3 +129,7 @@ mod shuffled_compressed { }) } } + +fn main() { + divan::main(); +} diff --git a/benches/dataset.rs b/benches/dataset.rs index faed004..f11fd59 100644 --- a/benches/dataset.rs +++ b/benches/dataset.rs @@ -1,17 +1,19 @@ -#![feature(test)] -extern crate test; -use test::Bencher; +use divan::Bencher; use hidefix::idx::DatasetD; use hidefix::idx::Index; -#[bench] -fn slicer(b: &mut Bencher) { +#[divan::bench] +fn slicer(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let d = i.dataset("SST").unwrap(); if let DatasetD::D3(d) = d { - b.iter(|| d.chunk_slices(..).for_each(drop)) + b.bench_local(|| d.chunk_slices(..).for_each(drop)) } else { panic!() } } + +fn main() { + divan::main(); +} diff --git a/benches/index.rs b/benches/index.rs index 0b55717..1dda64f 100644 --- a/benches/index.rs +++ b/benches/index.rs @@ -1,10 +1,12 @@ -#![feature(test)] -extern crate test; -use test::Bencher; +use divan::Bencher; use hidefix::idx::Index; -#[bench] -fn chunked_1d(b: &mut Bencher) { - b.iter(|| Index::index("tests/data/dmrpp/chunked_oneD.h5").unwrap()) +#[divan::bench] +fn chunked_1d(b: Bencher) { + b.bench_local(|| Index::index("tests/data/dmrpp/chunked_oneD.h5").unwrap()) +} + +fn main() { + divan::main(); } diff --git a/benches/large.rs b/benches/large.rs index f117307..9d2cc68 100644 --- a/benches/large.rs +++ b/benches/large.rs @@ -1,6 +1,4 @@ -#![feature(test)] -extern crate test; -use test::Bencher; +use divan::Bencher; use std::path::PathBuf; use std::sync::Mutex; @@ -41,8 +39,8 @@ fn get_file() -> PathBuf { } #[ignore] -#[bench] -fn idx_small_slice(b: &mut Bencher) { +#[divan::bench] +fn idx_small_slice(b: Bencher) { let p = get_file(); let i = Index::index(&p).unwrap(); let mut r = i.reader(VAR).unwrap(); @@ -62,18 +60,18 @@ fn idx_small_slice(b: &mut Bencher) { r.values::((&[0, 0, 0, 0], &[2, 2, 1, 5])).unwrap() ); - b.iter(|| test::black_box(r.values::((&[0, 0, 0, 0], &[2, 2, 1, 5])).unwrap())); + b.bench_local(|| divan::black_box(r.values::((&[0, 0, 0, 0], &[2, 2, 1, 5])).unwrap())); } #[ignore] -#[bench] -fn native_small_slice(b: &mut Bencher) { +#[divan::bench] +fn native_small_slice(b: Bencher) { let p = get_file(); let h = hdf5::File::open(p).unwrap(); let d = h.dataset(VAR).unwrap(); - b.iter(|| { - test::black_box( + b.bench_local(|| { + divan::black_box( d.read_slice::(s![0..2, 0..2, 0..1, 0..5]) .unwrap(), ) @@ -81,8 +79,8 @@ fn native_small_slice(b: &mut Bencher) { } #[ignore] -#[bench] -fn idx_med_slice(b: &mut Bencher) { +#[divan::bench] +fn idx_med_slice(b: Bencher) { let p = get_file(); let i = Index::index(&p).unwrap(); let mut r = i.reader(VAR).unwrap(); @@ -103,8 +101,8 @@ fn idx_med_slice(b: &mut Bencher) { .unwrap() ); - b.iter(|| { - test::black_box( + b.bench_local(|| { + divan::black_box( r.values::((&[0, 0, 0, 0], &[10, 10, 1, 2602])) .unwrap(), ) @@ -112,14 +110,14 @@ fn idx_med_slice(b: &mut Bencher) { } #[ignore] -#[bench] -fn native_med_slice(b: &mut Bencher) { +#[divan::bench] +fn native_med_slice(b: Bencher) { let p = get_file(); let h = hdf5::File::open(p).unwrap(); let d = h.dataset(VAR).unwrap(); - b.iter(|| { - test::black_box( + b.bench_local(|| { + divan::black_box( d.read_slice::(s![0..10, 0..10, 0..1, 0..2602]) .unwrap(), ) @@ -127,8 +125,8 @@ fn native_med_slice(b: &mut Bencher) { } #[ignore] -#[bench] -fn idx_big_slice(b: &mut Bencher) { +#[divan::bench] +fn idx_big_slice(b: Bencher) { let p = get_file(); let i = Index::index(&p).unwrap(); let mut r = i.reader(VAR).unwrap(); @@ -149,8 +147,8 @@ fn idx_big_slice(b: &mut Bencher) { .unwrap() ); - b.iter(|| { - test::black_box( + b.bench_local(|| { + divan::black_box( r.values::((&[0, 0, 0, 0], &[24, 16, 1, 2602])) .unwrap(), ) @@ -158,16 +156,20 @@ fn idx_big_slice(b: &mut Bencher) { } #[ignore] -#[bench] -fn native_big_slice(b: &mut Bencher) { +#[divan::bench] +fn native_big_slice(b: Bencher) { let p = get_file(); let h = hdf5::File::open(p).unwrap(); let d = h.dataset(VAR).unwrap(); - b.iter(|| { - test::black_box( + b.bench_local(|| { + divan::black_box( d.read_slice::(s![0..24, 0..16, 0..1, 0..2602]) .unwrap(), ) }) } + +fn main() { + divan::main(); +} diff --git a/benches/native.rs b/benches/native.rs index 96da0cb..343fcad 100644 --- a/benches/native.rs +++ b/benches/native.rs @@ -1,59 +1,61 @@ -#![feature(test)] -extern crate test; -use test::Bencher; +use divan::Bencher; -#[bench] -fn read_2d_shuffled(b: &mut Bencher) { +#[divan::bench] +fn read_2d_shuffled(b: Bencher) { let h = hdf5::File::open("tests/data/dmrpp/chunked_shuffled_twoD.h5").unwrap(); let d = h.dataset("d_4_shuffled_chunks").unwrap(); - b.iter(|| d.read_raw::().unwrap()) + b.bench_local(|| d.read_raw::().unwrap()) } -#[bench] -fn read_2d_compressed(b: &mut Bencher) { +#[divan::bench] +fn read_2d_compressed(b: Bencher) { let h = hdf5::File::open("tests/data/dmrpp/chunked_gzipped_twoD.h5").unwrap(); let d = h.dataset("d_4_gzipped_chunks").unwrap(); - b.iter(|| d.read_raw::().unwrap()) + b.bench_local(|| d.read_raw::().unwrap()) } -#[bench] -fn read_2d_shuffled_compressed(b: &mut Bencher) { +#[divan::bench] +fn read_2d_shuffled_compressed(b: Bencher) { let h = hdf5::File::open("tests/data/dmrpp/chunked_shufzip_twoD.h5").unwrap(); let d = h.dataset("d_4_shufzip_chunks").unwrap(); - b.iter(|| d.read_raw::().unwrap()) + b.bench_local(|| d.read_raw::().unwrap()) } -#[bench] -fn read_2d_chunked(b: &mut Bencher) { +#[divan::bench] +fn read_2d_chunked(b: Bencher) { let h = hdf5::File::open("tests/data/dmrpp/chunked_oneD.h5").unwrap(); let d = h.dataset("d_4_chunks").unwrap(); - b.iter(|| d.read_raw::().unwrap()) + b.bench_local(|| d.read_raw::().unwrap()) } -#[bench] -fn read_t_float32(b: &mut Bencher) { +#[divan::bench] +fn read_t_float32(b: Bencher) { let h = hdf5::File::open("tests/data/dmrpp/t_float.h5").unwrap(); let d = h.dataset("d32_1").unwrap(); - b.iter(|| d.read_raw::().unwrap()) + b.bench_local(|| d.read_raw::().unwrap()) } -#[bench] -fn read_chunked_1d(b: &mut Bencher) { +#[divan::bench] +fn read_chunked_1d(b: Bencher) { let h = hdf5::File::open("tests/data/dmrpp/chunked_oneD.h5").unwrap(); let d = h.dataset("d_4_chunks").unwrap(); - b.iter(|| d.read_raw::().unwrap()) + b.bench_local(|| d.read_raw::().unwrap()) } -#[bench] -fn coads_values(b: &mut Bencher) { +#[divan::bench] +fn coads_values(b: Bencher) { let h = hdf5::File::open("tests/data/coads_climatology.nc4").unwrap(); let d = h.dataset("SST").unwrap(); - b.iter(|| d.read_raw::().unwrap()) + b.bench_local(|| d.read_raw::().unwrap()) +} + +fn main() { + divan::main(); } diff --git a/benches/norkyst.rs b/benches/norkyst.rs index 8a1cfa7..c544ebe 100644 --- a/benches/norkyst.rs +++ b/benches/norkyst.rs @@ -1,6 +1,4 @@ -#![feature(test)] -extern crate test; -use test::Bencher; +use divan::Bencher; use std::path::PathBuf; use std::sync::Mutex; @@ -37,21 +35,25 @@ fn get_file() -> PathBuf { } #[ignore] -#[bench] -fn idx_big_slice(b: &mut Bencher) { +#[divan::bench] +fn idx_big_slice(b: Bencher) { let p = get_file(); let i = Index::index(&p).unwrap(); let mut u = i.reader("u_eastward").unwrap(); - b.iter(|| test::black_box(u.values::(..).unwrap())); + b.bench_local(|| divan::black_box(u.values::(..).unwrap())); } #[ignore] -#[bench] -fn native_big_slice(b: &mut Bencher) { +#[divan::bench] +fn native_big_slice(b: Bencher) { let p = get_file(); let h = hdf5::File::open(p).unwrap(); let d = h.dataset("u_eastward").unwrap(); - b.iter(|| test::black_box(d.read_raw::().unwrap())) + b.bench_local(|| divan::black_box(d.read_raw::().unwrap())) +} + +fn main() { + divan::main(); } diff --git a/benches/read.rs b/benches/read.rs index 70d713a..dd0bed9 100644 --- a/benches/read.rs +++ b/benches/read.rs @@ -1,58 +1,56 @@ -#![feature(test)] -extern crate test; use hidefix::prelude::*; -use test::Bencher; +use divan::Bencher; -#[bench] -fn read_2d_chunked(b: &mut Bencher) { +#[divan::bench] +fn read_2d_chunked(b: Bencher) { let i = Index::index("tests/data/dmrpp/chunked_oneD.h5").unwrap(); let mut r = i.reader("d_4_chunks").unwrap(); - b.iter(|| r.values::(..).unwrap()) + b.bench_local(|| r.values::(..).unwrap()) } -#[bench] -fn read_2d_shuffled(b: &mut Bencher) { +#[divan::bench] +fn read_2d_shuffled(b: Bencher) { let i = Index::index("tests/data/dmrpp/chunked_shuffled_twoD.h5").unwrap(); let mut r = i.reader("d_4_shuffled_chunks").unwrap(); - b.iter(|| r.values::(..).unwrap()) + b.bench_local(|| r.values::(..).unwrap()) } -#[bench] -fn read_2d_compressed(b: &mut Bencher) { +#[divan::bench] +fn read_2d_compressed(b: Bencher) { let i = Index::index("tests/data/dmrpp/chunked_gzipped_twoD.h5").unwrap(); let mut r = i.reader("d_4_gzipped_chunks").unwrap(); - b.iter(|| r.values::(..).unwrap()) + b.bench_local(|| r.values::(..).unwrap()) } -#[bench] -fn read_2d_shuffled_compressed(b: &mut Bencher) { +#[divan::bench] +fn read_2d_shuffled_compressed(b: Bencher) { let i = Index::index("tests/data/dmrpp/chunked_shufzip_twoD.h5").unwrap(); let mut r = i.reader("d_4_shufzip_chunks").unwrap(); - b.iter(|| r.values::(..).unwrap()) + b.bench_local(|| r.values::(..).unwrap()) } -#[bench] -fn read_t_float32(b: &mut Bencher) { +#[divan::bench] +fn read_t_float32(b: Bencher) { let i = Index::index("tests/data/dmrpp/t_float.h5").unwrap(); let mut r = i.reader("d32_1").unwrap(); - b.iter(|| r.values::(..).unwrap()) + b.bench_local(|| r.values::(..).unwrap()) } -#[bench] -fn read_chunked_1d(b: &mut Bencher) { +#[divan::bench] +fn read_chunked_1d(b: Bencher) { let i = Index::index("tests/data/dmrpp/chunked_oneD.h5").unwrap(); let mut r = i.reader("d_4_chunks").unwrap(); - b.iter(|| r.values::(..).unwrap()) + b.bench_local(|| r.values::(..).unwrap()) } -#[bench] -fn coads(b: &mut Bencher) { +#[divan::bench] +fn coads(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let mut r = i.reader("SST").unwrap(); @@ -66,5 +64,9 @@ fn coads(b: &mut Bencher) { ); } - b.iter(|| r.values::(..).unwrap()) + b.bench_local(|| r.values::(..).unwrap()) +} + +fn main() { + divan::main(); } diff --git a/benches/serialize.rs b/benches/serialize.rs index a08dec1..a61e812 100644 --- a/benches/serialize.rs +++ b/benches/serialize.rs @@ -1,6 +1,4 @@ -#![feature(test)] -extern crate test; -use test::Bencher; +use divan::Bencher; use hidefix::idx::Index; @@ -10,67 +8,67 @@ const FILE: Option<&'static str> = option_env!("HIDEFIX_LARGE_FILE"); mod serde_bincode { use super::*; - #[bench] - fn serialize_coads(b: &mut Bencher) { + #[divan::bench] + fn serialize_coads(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); - b.iter(|| bincode::serialize(&i).unwrap()) + b.bench_local(|| bincode::serialize(&i).unwrap()) } - #[bench] - fn deserialize_coads(b: &mut Bencher) { + #[divan::bench] + fn deserialize_coads(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let bb = bincode::serialize(&i).unwrap(); - b.iter(|| bincode::deserialize::(&bb).unwrap()) + b.bench_local(|| bincode::deserialize::(&bb).unwrap()) } - #[bench] - fn serialize_coads_file(b: &mut Bencher) { + #[divan::bench] + fn serialize_coads_file(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); - b.iter(|| { + b.bench_local(|| { let f = std::fs::File::create("/tmp/coads.idx.bc").unwrap(); let w = std::io::BufWriter::new(f); bincode::serialize_into(w, &i).unwrap() }) } - #[bench] - fn deserialize_coads_file(b: &mut Bencher) { + #[divan::bench] + fn deserialize_coads_file(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let f = std::fs::File::create("/tmp/coads.idx.bc").unwrap(); bincode::serialize_into(f, &i).unwrap(); - b.iter(|| { + b.bench_local(|| { let b = std::fs::read("/tmp/coads.idx.bc").unwrap(); bincode::deserialize::(&b).unwrap(); }) } #[ignore] - #[bench] - fn serialize_large_bincode(b: &mut Bencher) { + #[divan::bench] + fn serialize_large_bincode(b: Bencher) { let i = Index::index(FILE.unwrap()).unwrap(); - b.iter(|| bincode::serialize(&i).unwrap()) + b.bench_local(|| bincode::serialize(&i).unwrap()) } #[ignore] - #[bench] - fn deserialize_large_bincode(b: &mut Bencher) { + #[divan::bench] + fn deserialize_large_bincode(b: Bencher) { let i = Index::index(FILE.unwrap()).unwrap(); let bb = bincode::serialize(&i).unwrap(); - b.iter(|| bincode::deserialize::(&bb).unwrap()) + b.bench_local(|| bincode::deserialize::(&bb).unwrap()) } #[ignore] - #[bench] - fn serialize_large_bincode_file(b: &mut Bencher) { + #[divan::bench] + fn serialize_large_bincode_file(b: Bencher) { let i = Index::index(FILE.unwrap()).unwrap(); - b.iter(|| { + b.bench_local(|| { let f = std::fs::File::create("/tmp/large.idx.bc").unwrap(); let w = std::io::BufWriter::new(f); bincode::serialize_into(w, &i).unwrap() @@ -78,21 +76,21 @@ mod serde_bincode { } #[ignore] - #[bench] - fn deserialize_large_bincode_file(b: &mut Bencher) { + #[divan::bench] + fn deserialize_large_bincode_file(b: Bencher) { let i = Index::index(FILE.unwrap()).unwrap(); let f = std::fs::File::create("/tmp/large.idx.bc").unwrap(); bincode::serialize_into(f, &i).unwrap(); - b.iter(|| { + b.bench_local(|| { let b = std::fs::read("/tmp/large.idx.bc").unwrap(); bincode::deserialize::(&b).unwrap(); }) } #[ignore] - #[bench] - fn deserialize_large_bincode_db_sled(b: &mut Bencher) { + #[divan::bench] + fn deserialize_large_bincode_db_sled(b: Bencher) { let i = Index::index(FILE.unwrap()).unwrap(); let bts = bincode::serialize(&i).unwrap(); @@ -105,15 +103,15 @@ mod serde_bincode { db.insert("large", bts).unwrap(); - b.iter(|| { + b.bench_local(|| { let bts = db.get("large").unwrap().unwrap(); - test::black_box(bincode::deserialize::(&bts).unwrap()); + divan::black_box(bincode::deserialize::(&bts).unwrap()); }) } #[ignore] - #[bench] - fn deserialize_large_bincode_db_sled_only_read(b: &mut Bencher) { + #[divan::bench] + fn deserialize_large_bincode_db_sled_only_read(b: Bencher) { let i = Index::index(FILE.unwrap()).unwrap(); let bts = bincode::serialize(&i).unwrap(); @@ -126,20 +124,20 @@ mod serde_bincode { db.insert("large", bts).unwrap(); - b.iter(|| { - test::black_box(db.get("large").unwrap().unwrap()); + b.bench_local(|| { + divan::black_box(db.get("large").unwrap().unwrap()); }) } #[ignore] - #[bench] - fn deserialize_large_file_only_read(b: &mut Bencher) { + #[divan::bench] + fn deserialize_large_file_only_read(b: Bencher) { let i = Index::index(FILE.unwrap()).unwrap(); let f = std::fs::File::create("/tmp/large.idx.bc").unwrap(); bincode::serialize_into(f, &i).unwrap(); - b.iter(|| { - test::black_box(std::fs::read("/tmp/large.idx.bc").unwrap()); + b.bench_local(|| { + divan::black_box(std::fs::read("/tmp/large.idx.bc").unwrap()); }) } } @@ -149,87 +147,91 @@ mod serde_flexbuffers { use flexbuffers::FlexbufferSerializer as ser; use serde::ser::Serialize; - #[bench] - fn serialize_coads(b: &mut Bencher) { + #[divan::bench] + fn serialize_coads(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); - b.iter(|| { + b.bench_local(|| { let mut s = ser::new(); i.serialize(&mut s).unwrap(); }) } - #[bench] - fn deserialize_coads(b: &mut Bencher) { + #[divan::bench] + fn deserialize_coads(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let mut s = ser::new(); i.serialize(&mut s).unwrap(); - b.iter(|| { + b.bench_local(|| { flexbuffers::from_slice::(s.view()).unwrap(); }) } - #[bench] - fn serialize_coads_file(b: &mut Bencher) { + #[divan::bench] + fn serialize_coads_file(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); - b.iter(|| { + b.bench_local(|| { let mut s = ser::new(); i.serialize(&mut s).unwrap(); std::fs::write("/tmp/coads.idx.fx", s.view()).unwrap(); }) } - #[bench] - fn deserialize_coads_file(b: &mut Bencher) { + #[divan::bench] + fn deserialize_coads_file(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let mut s = ser::new(); i.serialize(&mut s).unwrap(); std::fs::write("/tmp/coads.idx.fx", s.view()).unwrap(); - b.iter(|| { + b.bench_local(|| { let b = std::fs::read("/tmp/coads.idx.fx").unwrap(); flexbuffers::from_slice::(&b).unwrap(); }) } - #[bench] - fn deserialize_coads_file_only_read(b: &mut Bencher) { + #[divan::bench] + fn deserialize_coads_file_only_read(b: Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let mut s = ser::new(); i.serialize(&mut s).unwrap(); std::fs::write("/tmp/coads.idx.fx", s.view()).unwrap(); - b.iter(|| { - test::black_box(std::fs::read("/tmp/coads.idx.fx").unwrap()); + b.bench_local(|| { + divan::black_box(std::fs::read("/tmp/coads.idx.fx").unwrap()); }) } #[ignore] - #[bench] - fn deserialize_large_file(b: &mut Bencher) { + #[divan::bench] + fn deserialize_large_file(b: Bencher) { let i = Index::index(FILE.unwrap()).unwrap(); let mut s = ser::new(); i.serialize(&mut s).unwrap(); std::fs::write("/tmp/large.idx.fx", s.view()).unwrap(); - b.iter(|| { + b.bench_local(|| { let b = std::fs::read("/tmp/large.idx.fx").unwrap(); flexbuffers::from_slice::(&b).unwrap(); }) } #[ignore] - #[bench] - fn deserialize_large_file_only_read(b: &mut Bencher) { + #[divan::bench] + fn deserialize_large_file_only_read(b: Bencher) { let i = Index::index(FILE.unwrap()).unwrap(); let mut s = ser::new(); i.serialize(&mut s).unwrap(); std::fs::write("/tmp/large.idx.fx", s.view()).unwrap(); - b.iter(|| { - test::black_box(std::fs::read("/tmp/large.idx.fx").unwrap()); + b.bench_local(|| { + divan::black_box(std::fs::read("/tmp/large.idx.fx").unwrap()); }) } } + +fn main() { + divan::main(); +} diff --git a/benches/stream.rs b/benches/stream.rs index d64734e..d4659b5 100644 --- a/benches/stream.rs +++ b/benches/stream.rs @@ -1,9 +1,7 @@ -#![feature(test)] -extern crate test; use futures::executor::block_on_stream; use futures::{pin_mut, Stream, StreamExt}; use hidefix::prelude::*; -use test::Bencher; +use divan::Bencher; fn consume_stream(rt: &mut tokio::runtime::Runtime, s: S) { rt.block_on(async move { @@ -12,32 +10,32 @@ fn consume_stream(rt: &mut tokio::runtime::Runtime, s: S) { }); } -#[bench] -fn chunked_1d_values(b: &mut Bencher) { +#[divan::bench] +fn chunked_1d_values(b: Bencher) { let mut rt = tokio::runtime::Runtime::new().unwrap(); let i = Index::index("tests/data/dmrpp/chunked_oneD.h5").unwrap(); let r = i.streamer("d_4_chunks").unwrap(); - b.iter(|| { + b.bench_local(|| { let v = r.stream_values::(..); consume_stream(&mut rt, v); }) } -#[bench] -fn gzip_shuffle_2d_bytes(b: &mut Bencher) { +#[divan::bench] +fn gzip_shuffle_2d_bytes(b: Bencher) { let mut rt = tokio::runtime::Runtime::new().unwrap(); let i = Index::index("tests/data/gzip_shuffle_2d.h5").unwrap(); let r = i.streamer("data").unwrap(); - b.iter(|| { + b.bench_local(|| { let v = r.stream(&Extents::All); consume_stream(&mut rt, v); }) } -#[bench] -fn coads_values(b: &mut Bencher) { +#[divan::bench] +fn coads_values(b: Bencher) { let mut rt = tokio::runtime::Runtime::new().unwrap(); let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let r = i.streamer("SST").unwrap(); @@ -51,26 +49,26 @@ fn coads_values(b: &mut Bencher) { assert_eq!(d.read_raw::().unwrap(), vs); } - b.iter(|| { + b.bench_local(|| { let v = r.stream_values::(..); consume_stream(&mut rt, v); }) } -#[bench] -fn coads_bytes(b: &mut Bencher) { +#[divan::bench] +fn coads_bytes(b: Bencher) { let mut rt = tokio::runtime::Runtime::new().unwrap(); let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let r = i.streamer("SST").unwrap(); - b.iter(|| { + b.bench_local(|| { let v = r.stream(&Extents::All); consume_stream(&mut rt, v); }) } -#[bench] -fn coads_async_read(b: &mut Bencher) { +#[divan::bench] +fn coads_async_read(b: Bencher) { use futures::executor::block_on; use futures::io::AsyncReadExt; use futures::stream::TryStreamExt; @@ -78,7 +76,7 @@ fn coads_async_read(b: &mut Bencher) { let i = Index::index("tests/data/coads_climatology.nc4").unwrap(); let r = i.streamer("SST").unwrap(); - b.iter(|| { + b.bench_local(|| { block_on(async { let v = r .stream(&Extents::All) @@ -89,3 +87,7 @@ fn coads_async_read(b: &mut Bencher) { }) }) } + +fn main() { + divan::main(); +} diff --git a/src/filters/shuffle.rs b/src/filters/shuffle.rs index 1329e64..88298d8 100644 --- a/src/filters/shuffle.rs +++ b/src/filters/shuffle.rs @@ -130,7 +130,7 @@ where mod tests { use super::*; use byteorder::{BigEndian, ByteOrder}; - use test::Bencher; + use divan::Bencher; #[test] fn shuffle_hdf5_example() { @@ -158,30 +158,30 @@ mod tests { ); } - #[bench] - fn shuffle_4kb(b: &mut Bencher) { + #[divan::bench] + fn shuffle_4kb(b: Bencher) { use rand::distributions::Standard; use rand::{thread_rng, Rng}; let v: Vec = thread_rng().sample_iter(Standard).take(1024).collect(); let mut d = vec![0_u8; 1024 * 4]; - b.iter(|| shuffle(&v, &mut d)) + b.bench_local(|| shuffle(&v, &mut d)) } - #[bench] - fn unshuffle_4kb(b: &mut Bencher) { + #[divan::bench] + fn unshuffle_4kb(b: Bencher) { use rand::distributions::Standard; use rand::{thread_rng, Rng}; let v: Vec = thread_rng().sample_iter(Standard).take(1024).collect(); let mut d = vec![0_u8; 1024 * 4]; - b.iter(|| shuffle(&v, &mut d)) + b.bench_local(|| shuffle(&v, &mut d)) } - #[bench] - fn shuffle_4mb(b: &mut Bencher) { + #[divan::bench] + fn shuffle_4mb(b: Bencher) { use rand::distributions::Standard; use rand::{thread_rng, Rng}; @@ -191,11 +191,11 @@ mod tests { .collect(); let mut d = vec![0_i32; 1024 * 1024]; - b.iter(|| unshuffle(&v, &mut d)) + b.bench_local(|| unshuffle(&v, &mut d)) } - #[bench] - fn unshuffle_4mb(b: &mut Bencher) { + #[divan::bench] + fn unshuffle_4mb(b: Bencher) { use rand::distributions::Standard; use rand::{thread_rng, Rng}; @@ -205,21 +205,21 @@ mod tests { .collect(); let mut d = vec![0_i32; 1024 * 1024]; - b.iter(|| unshuffle(&v, &mut d)) + b.bench_local(|| unshuffle(&v, &mut d)) } - #[bench] - fn unshuffle_structured_4kb(b: &mut Bencher) { + #[divan::bench] + fn unshuffle_structured_4kb(b: Bencher) { use rand::distributions::Standard; use rand::{thread_rng, Rng}; let v: Vec = thread_rng().sample_iter(Standard).take(4 * 1024).collect(); - b.iter(|| unshuffle_sized(&v, 4)) + b.bench_local(|| unshuffle_sized(&v, 4)) } - #[bench] - fn unshuffle_structured_4mb(b: &mut Bencher) { + #[divan::bench] + fn unshuffle_structured_4mb(b: Bencher) { use rand::distributions::Standard; use rand::{thread_rng, Rng}; @@ -228,7 +228,7 @@ mod tests { .take(4 * 1024 * 1024) .collect(); - b.iter(|| unshuffle_sized(&v, 4)) + b.bench_local(|| unshuffle_sized(&v, 4)) } #[test] diff --git a/src/idx/chunk.rs b/src/idx/chunk.rs index 31f7933..b7fd60b 100644 --- a/src/idx/chunk.rs +++ b/src/idx/chunk.rs @@ -228,7 +228,7 @@ mod tests { mod serde { use super::*; - use test::Bencher; + use divan::Bencher; #[test] fn as_u64s() { @@ -405,8 +405,8 @@ mod tests { assert_eq!(dcs, cs); } - #[bench] - fn slice_from_u64s_10k_3d(b: &mut Bencher) { + #[divan::bench] + fn slice_from_u64s_10k_3d(b: Bencher) { let chunks: Vec> = (0..10000) .map(|i| Chunk::new(i * 10, 300, [i * 10, i * 100, i * 10000])) .collect(); @@ -423,8 +423,8 @@ mod tests { assert_eq!(dechunks.len(), chunks.len()); assert_eq!(dechunks, chunks.as_slice()); - b.iter(|| { - test::black_box(Chunk::<3>::slice_from_u64s(slice)); + b.bench_local(|| { + divan::black_box(Chunk::<3>::slice_from_u64s(slice)); }); } } diff --git a/src/idx/dataset/dataset.rs b/src/idx/dataset/dataset.rs index 15944a5..d45b8cd 100644 --- a/src/idx/dataset/dataset.rs +++ b/src/idx/dataset/dataset.rs @@ -671,15 +671,15 @@ impl<'a, const D: usize> Iterator for ChunkSlicer<'a, D> { mod tests { use super::super::tests::test_dataset; use super::*; - use test::Bencher; + use divan::Bencher; - #[bench] - fn chunk_start(b: &mut Bencher) { + #[divan::bench] + fn chunk_start(b: Bencher) { let dim_sz = [10, 1]; let coords = [20, 10]; let ch_offset = [ULE::new(20), ULE::new(10)]; - b.iter(|| test::black_box(ChunkSlicer::chunk_start(&coords, &ch_offset, &dim_sz))) + b.bench_local(|| divan::black_box(ChunkSlicer::chunk_start(&coords, &ch_offset, &dim_sz))) } #[test] diff --git a/src/idx/dataset/mod.rs b/src/idx/dataset/mod.rs index 21500a8..60228bf 100644 --- a/src/idx/dataset/mod.rs +++ b/src/idx/dataset/mod.rs @@ -14,7 +14,7 @@ mod tests { use crate::filters::byteorder::Order as ByteOrder; use itertools::izip; use serde::{Deserialize, Serialize}; - use test::Bencher; + use divan::Bencher; pub(crate) fn test_dataset() -> Dataset<'static, 2> { Dataset::new( @@ -83,22 +83,22 @@ mod tests { assert_eq!(d.chunk_slices((&[0, 0], &[1, 0])).next(), None); } - #[bench] - fn chunk_slices_range(b: &mut Bencher) { + #[divan::bench] + fn chunk_slices_range(b: Bencher) { let d = test_dataset(); - b.iter(|| d.chunk_slices(..).for_each(drop)); + b.bench_local(|| d.chunk_slices(..).for_each(drop)); } - #[bench] - fn make_chunk_slices_iterator(b: &mut Bencher) { + #[divan::bench] + fn make_chunk_slices_iterator(b: Bencher) { let d = test_dataset(); - b.iter(|| test::black_box(d.chunk_slices(..))) + b.bench_local(|| divan::black_box(d.chunk_slices(..))) } - #[bench] - fn chunk_at_coord(b: &mut Bencher) { + #[divan::bench] + fn chunk_at_coord(b: Bencher) { let d = test_dataset(); println!("chunks: {:#?}", d.chunks); @@ -127,7 +127,7 @@ mod tests { [ULE::new(10), ULE::new(0)] ); - b.iter(|| test::black_box(d.chunk_at_coord(&[15, 1]))) + b.bench_local(|| divan::black_box(d.chunk_at_coord(&[15, 1]))) } #[test] diff --git a/src/idx/serde.rs b/src/idx/serde.rs index 305df25..17004a7 100644 --- a/src/idx/serde.rs +++ b/src/idx/serde.rs @@ -92,6 +92,7 @@ pub mod chunks_u64s { let chunks: &'a [Chunk] = Chunk::::slice_from_u64s(slice); let chunks = Cow::<'a, [Chunk]>::from(chunks); + #[cfg(feature="unstable")] debug_assert!(chunks.is_borrowed()); Ok(chunks) diff --git a/src/lib.rs b/src/lib.rs index 89ae784..3838eab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -85,16 +85,7 @@ //! hdf5-src = { git = "https://github.com/magnusuMET/hdf5-rust", branch = "hidefix_jul_2023" } //! ``` -#![allow(incomplete_features)] -#![recursion_limit = "1024"] -#![feature(test)] -#![feature(cow_is_borrowed, array_methods)] -#![feature(assert_matches)] -#![feature(slice_group_by)] -#![feature(mutex_unlock)] -#![feature(new_uninit)] - -extern crate test; +#![cfg_attr(feature = "unstable", feature(new_uninit, cow_is_borrowed))] pub mod extent; pub mod filters; diff --git a/src/reader/dataset.rs b/src/reader/dataset.rs index 095ddc7..3ab44d2 100644 --- a/src/reader/dataset.rs +++ b/src/reader/dataset.rs @@ -21,6 +21,26 @@ pub trait Reader { fn shape(&self) -> &[u64]; } +#[cfg(feature = "unstable")] +fn empty_vec(vsz: usize) -> Vec +where + T: Default, +{ + let values = Box::<[T]>::new_uninit_slice(vsz); + let values = unsafe { values.assume_init() }; + values.into_vec() +} + +#[cfg(not(feature = "unstable"))] +fn empty_vec(vsz: usize) -> Vec +where + T: Default, +{ + let mut values = Vec::with_capacity(vsz); + values.resize_with(vsz, T::default); + values +} + pub trait ReaderExt: Reader { /// Reads values into desitination slice. Returns values read. fn values_to(&mut self, extents: E, dst: &mut [T]) -> Result @@ -40,7 +60,7 @@ pub trait ReaderExt: Reader { /// Reads slice of dataset into `Vec`. fn values(&mut self, extents: E) -> Result, anyhow::Error> where - T: ToMutByteSlice, + T: ToMutByteSlice + Default, [T]: ToNative, E: TryInto, E::Error: Into, @@ -59,9 +79,7 @@ pub trait ReaderExt: Reader { ensure!((dsz * vsz) % std::mem::align_of::() == 0, "alignment of datatype ({}) not a multiple of datatype size and length {}*{}={}, alignment may not match and result in unsoundness", std::mem::align_of::(), dsz, vsz, vsz * dsz); - let values = Box::<[T]>::new_uninit_slice(vsz); - let values = unsafe { values.assume_init() }; - let mut values = values.into_vec(); + let mut values = empty_vec(vsz); self.values_to(extents, values.as_mut_slice())?; // XXX: take maybeuninit Ok(values) @@ -93,7 +111,7 @@ pub trait ParReaderExt: Reader + ParReader { /// Reads slice of dataset into `Vec`. fn values_par(&self, extents: E) -> Result, anyhow::Error> where - T: ToMutByteSlice, + T: ToMutByteSlice + Default, [T]: ToNative, E: TryInto, E::Error: Into, @@ -112,9 +130,7 @@ pub trait ParReaderExt: Reader + ParReader { ensure!((dsz * vsz) % std::mem::align_of::() == 0, "alignment of datatype ({}) not a multiple of datatype size and length {}*{}={}, alignment may not match and result in unsoundness", std::mem::align_of::(), dsz, vsz, vsz * dsz); - let values = Box::<[T]>::new_uninit_slice(vsz); - let values = unsafe { values.assume_init() }; - let mut values = values.into_vec(); + let mut values = empty_vec(vsz); self.values_to_par(extents, values.as_mut_slice())?; Ok(values) diff --git a/src/reader/direct.rs b/src/reader/direct.rs index cd2c76a..547d146 100644 --- a/src/reader/direct.rs +++ b/src/reader/direct.rs @@ -46,7 +46,7 @@ impl<'a, const D: usize> ParReader for Direct<'a, D> { ); let groups = self.ds.group_chunk_slices(extents); - let groups = groups.group_by(|a, b| a.0.addr == b.0.addr); + let groups = groups.chunk_by(|a, b| a.0.addr == b.0.addr); let groups = groups.collect::>(); groups.par_iter().try_for_each_init( diff --git a/tests/read_dims.rs b/tests/read_dims.rs index 92fa5a6..4150cab 100644 --- a/tests/read_dims.rs +++ b/tests/read_dims.rs @@ -1,6 +1,3 @@ -#![feature(test)] -extern crate test; - use hidefix::prelude::*; use ndarray::s; diff --git a/tests/read_norkyst.rs b/tests/read_norkyst.rs index 1eee4f9..0d05dd0 100644 --- a/tests/read_norkyst.rs +++ b/tests/read_norkyst.rs @@ -1,6 +1,4 @@ -#![feature(test)] #![allow(non_snake_case)] -extern crate test; use hidefix::idx::{Dataset, DatasetD}; use hidefix::prelude::*; diff --git a/tests/read_strings.rs b/tests/read_strings.rs index a082871..2411234 100644 --- a/tests/read_strings.rs +++ b/tests/read_strings.rs @@ -1,6 +1,3 @@ -#![feature(test)] -extern crate test; - use hidefix::prelude::*; #[test] diff --git a/tests/read_svim.rs b/tests/read_svim.rs index 9ce7a20..fee9f66 100644 --- a/tests/read_svim.rs +++ b/tests/read_svim.rs @@ -1,6 +1,3 @@ -#![feature(test)] -extern crate test; - use futures::executor::block_on_stream; use futures::pin_mut; use hidefix::prelude::*; From 09fe41b2148c84eebfc9d937998eb4dae6913b02 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 8 Aug 2024 09:39:52 +0200 Subject: [PATCH 03/11] cargo fmt --- benches/concurrency.rs | 2 +- benches/read.rs | 2 +- benches/stream.rs | 2 +- src/idx/dataset/mod.rs | 2 +- src/idx/serde.rs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/benches/concurrency.rs b/benches/concurrency.rs index 2019550..74d2da4 100644 --- a/benches/concurrency.rs +++ b/benches/concurrency.rs @@ -1,5 +1,5 @@ -use std::sync::Arc; use divan::Bencher; +use std::sync::Arc; use hidefix::prelude::*; diff --git a/benches/read.rs b/benches/read.rs index dd0bed9..f4f6688 100644 --- a/benches/read.rs +++ b/benches/read.rs @@ -1,5 +1,5 @@ -use hidefix::prelude::*; use divan::Bencher; +use hidefix::prelude::*; #[divan::bench] fn read_2d_chunked(b: Bencher) { diff --git a/benches/stream.rs b/benches/stream.rs index d4659b5..8c12bc3 100644 --- a/benches/stream.rs +++ b/benches/stream.rs @@ -1,7 +1,7 @@ +use divan::Bencher; use futures::executor::block_on_stream; use futures::{pin_mut, Stream, StreamExt}; use hidefix::prelude::*; -use divan::Bencher; fn consume_stream(rt: &mut tokio::runtime::Runtime, s: S) { rt.block_on(async move { diff --git a/src/idx/dataset/mod.rs b/src/idx/dataset/mod.rs index 60228bf..34c54a5 100644 --- a/src/idx/dataset/mod.rs +++ b/src/idx/dataset/mod.rs @@ -12,9 +12,9 @@ mod tests { use super::super::chunk::{Chunk, ULE}; use super::*; use crate::filters::byteorder::Order as ByteOrder; + use divan::Bencher; use itertools::izip; use serde::{Deserialize, Serialize}; - use divan::Bencher; pub(crate) fn test_dataset() -> Dataset<'static, 2> { Dataset::new( diff --git a/src/idx/serde.rs b/src/idx/serde.rs index 17004a7..02d291f 100644 --- a/src/idx/serde.rs +++ b/src/idx/serde.rs @@ -92,7 +92,7 @@ pub mod chunks_u64s { let chunks: &'a [Chunk] = Chunk::::slice_from_u64s(slice); let chunks = Cow::<'a, [Chunk]>::from(chunks); - #[cfg(feature="unstable")] + #[cfg(feature = "unstable")] debug_assert!(chunks.is_borrowed()); Ok(chunks) From 1890cf1812ecf3001c7026816c1648bc412abb6e Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 8 Aug 2024 10:09:01 +0200 Subject: [PATCH 04/11] update dependencies --- Cargo.lock | 629 +++++++++++++++++++++++++++++-------------- Cargo.toml | 20 +- src/reader/cache.rs | 3 +- src/reader/stream.rs | 5 +- 4 files changed, 447 insertions(+), 210 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 05d3053..3922281 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,13 +19,14 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.7.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ - "getrandom", + "cfg-if", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -37,11 +38,17 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anyhow" @@ -74,9 +81,15 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.3.0" @@ -100,9 +113,9 @@ dependencies = [ [[package]] name = "base64" -version = "0.21.7" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bincode" @@ -145,15 +158,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cc" -version = "1.0.104" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b6a57f98764a267ff415d50a25e6e166f3831a5071af4995296ea97d210490" +checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549" [[package]] name = "cfg-if" @@ -163,18 +176,18 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.8" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.8" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstyle", "clap_lex", @@ -183,9 +196,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "cmake" @@ -254,9 +267,9 @@ checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "curl-sys" -version = "0.4.73+curl-8.8.0" +version = "0.4.74+curl-8.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "450ab250ecf17227c39afb9a2dd9261dc0035cb80f2612472fc0c4aac2dcb84d" +checksum = "8af10b986114528fcdc4b63b6f5f021b7057618411046a4de2ba0f0149a097bf" dependencies = [ "cc", "libc", @@ -289,7 +302,7 @@ checksum = "27540baf49be0d484d8f0130d7d8da3011c32a44d4fc873368154f1510e574a2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", ] [[package]] @@ -438,7 +451,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", ] [[package]] @@ -499,15 +512,15 @@ checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "h2" -version = "0.3.26" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", "http", "indexmap", "slab", @@ -518,19 +531,14 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", + "allocator-api2", ] -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - [[package]] name = "hdf5" version = "0.8.1" @@ -543,7 +551,7 @@ dependencies = [ "hdf5-types", "lazy_static", "libc", - "ndarray", + "ndarray 0.15.6", "parking_lot 0.12.3", "paste", ] @@ -556,7 +564,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", ] [[package]] @@ -581,7 +589,7 @@ dependencies = [ "regex", "serde", "serde_derive", - "winreg", + "winreg 0.50.0", ] [[package]] @@ -595,6 +603,12 @@ dependencies = [ "libc", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "hermit-abi" version = "0.3.9" @@ -624,7 +638,7 @@ dependencies = [ "libdeflater", "log", "lru", - "ndarray", + "ndarray 0.16.0", "netcdf", "numpy", "pyo3", @@ -641,9 +655,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -652,12 +666,24 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.6" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", + "futures-util", "http", + "http-body", "pin-project-lite", ] @@ -667,47 +693,77 @@ version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - [[package]] name = "hyper" -version = "0.14.29" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", "http", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", + "http-body-util", "hyper", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -722,19 +778,19 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown", ] [[package]] name = "indoc" -version = "1.0.9" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" +checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" [[package]] name = "instant" @@ -753,9 +809,9 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "itertools" -version = "0.10.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] @@ -789,30 +845,30 @@ checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libdeflate-sys" -version = "0.8.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216b62f1994d8186da0187ad3f925ba267ad44ae67761c7285577583b85b5c6d" +checksum = "7b14a6afa4e2e1d343fd793a1c0a7e5857a73a2697c2ff2c98ac00d6c4ecc820" dependencies = [ "cc", ] [[package]] name = "libdeflater" -version = "0.8.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f0d7ed8d8b1ce10f1613316c83ce236641c2860c0a2ad700b31e1685e76c4f" +checksum = "a17fe2badabdaf756f620748311e99ef99a5fdd681562dfd343fdb16ed7d4797" dependencies = [ "libdeflate-sys", ] [[package]] name = "libloading" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -851,18 +907,18 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lru" -version = "0.7.8" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" dependencies = [ - "hashbrown 0.12.3", + "hashbrown", ] [[package]] name = "matrixmultiply" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" dependencies = [ "autocfg", "rawpointer", @@ -876,9 +932,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memoffset" -version = "0.6.5" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] @@ -900,13 +956,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ + "hermit-abi", "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -937,18 +994,33 @@ dependencies = [ "num-integer", "num-traits", "rawpointer", +] + +[[package]] +name = "ndarray" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "087ee1ca8a7c22830c2bba4a96ed8e72ce0968ae944349324d52522f66aa3944" +dependencies = [ + "matrixmultiply", + "num-complex", + "num-integer", + "num-traits", + "portable-atomic", + "portable-atomic-util", + "rawpointer", "rayon", ] [[package]] name = "netcdf" -version = "0.8.3" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5c16156122fd428e28e67d29ca3b503f9d6da5ba9932e631d309ba50071397" +checksum = "a8aa8799e918d05f6d5d05e08d980f5a4e5d4f4fb503904f2c35c49aed9ac75a" dependencies = [ - "bitflags 1.3.2", - "lazy_static", - "ndarray", + "bitflags 2.6.0", + "libc", + "ndarray 0.15.6", "netcdf-sys", ] @@ -965,9 +1037,9 @@ dependencies = [ [[package]] name = "netcdf-sys" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2dfe2cacf1623a0f51f93d2cfd90386ad40b3daff596f5058ec3037c432c772" +checksum = "41d5387d8e8569b204a9e065529f10d42ef0a1d3b8622d6ee2612765639fbe19" dependencies = [ "curl-sys", "hdf5-sys", @@ -1003,16 +1075,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "num_enum" version = "0.5.11" @@ -1036,24 +1098,24 @@ dependencies = [ [[package]] name = "numpy" -version = "0.17.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a462c1af5ba1fddec1488c4646993a23ae7931f9e170ccba23e9c7c834277797" +checksum = "ec170733ca37175f5d75a5bea5911d6ff45d2cd52849ce98b685394e4f2f37f4" dependencies = [ - "ahash", "libc", - "ndarray", + "ndarray 0.15.6", "num-complex", "num-integer", "num-traits", "pyo3", + "rustc-hash", ] [[package]] name = "object" -version = "0.36.1" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] @@ -1066,9 +1128,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -1087,7 +1149,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", ] [[package]] @@ -1107,9 +1169,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", @@ -1161,9 +1223,9 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.2", + "redox_syscall 0.5.3", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -1178,6 +1240,26 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "pin-project-lite" version = "0.2.14" @@ -1196,11 +1278,29 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +[[package]] +name = "portable-atomic" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" + +[[package]] +name = "portable-atomic-util" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcdd8420072e66d54a407b3316991fe946ce3ab1083a7f575b2463866624704d" +dependencies = [ + "portable-atomic", +] + [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "proc-macro-crate" @@ -1246,9 +1346,9 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.17.3" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "268be0c73583c183f2b14052337465768c07726936a260f480f0857cb95ba543" +checksum = "a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8" dependencies = [ "anyhow", "cfg-if", @@ -1256,6 +1356,7 @@ dependencies = [ "libc", "memoffset", "parking_lot 0.12.3", + "portable-atomic", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", @@ -1264,9 +1365,9 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.17.3" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28fcd1e73f06ec85bf3280c48c67e731d8290ad3d730f8be9dc07946923005c8" +checksum = "7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50" dependencies = [ "once_cell", "target-lexicon", @@ -1274,9 +1375,9 @@ dependencies = [ [[package]] name = "pyo3-ffi" -version = "0.17.3" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f6cb136e222e49115b3c51c32792886defbfb0adead26a688142b346a0b9ffc" +checksum = "01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403" dependencies = [ "libc", "pyo3-build-config", @@ -1284,25 +1385,27 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.17.3" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94144a1266e236b1c932682136dc35a9dee8d3589728f68130c7c3861ef96b28" +checksum = "77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 1.0.109", + "syn 2.0.72", ] [[package]] name = "pyo3-macros-backend" -version = "0.17.3" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8df9be978a2d2f0cdebabb03206ed73b11314701a5bfe71b0d753b81997777f" +checksum = "08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c" dependencies = [ + "heck", "proc-macro2", + "pyo3-build-config", "quote", - "syn 1.0.109", + "syn 2.0.72", ] [[package]] @@ -1381,18 +1484,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.5" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -1425,20 +1528,24 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ "base64", "bytes", "encoding_rs", + "futures-channel", "futures-core", "futures-util", "h2", "http", "http-body", + "http-body-util", "hyper", + "hyper-rustls", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -1460,7 +1567,22 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "winreg 0.52.0", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", ] [[package]] @@ -1469,6 +1591,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustix" version = "0.38.34" @@ -1482,13 +1610,44 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.23.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" dependencies = [ "base64", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" + +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", ] [[package]] @@ -1514,9 +1673,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", "core-foundation", @@ -1527,9 +1686,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -1543,9 +1702,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150" dependencies = [ "serde_derive", ] @@ -1561,22 +1720,23 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", ] [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -1634,12 +1794,24 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "strength_reduce" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "syn" version = "1.0.109" @@ -1653,9 +1825,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.68" +version = "2.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" dependencies = [ "proc-macro2", "quote", @@ -1664,9 +1836,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" [[package]] name = "system-configuration" @@ -1691,20 +1863,21 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.14" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.10.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", "fastrand", + "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1719,9 +1892,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55115c6fbe2d2bef26eb09ad74bde02d8255476fc0c7b515ef09fbb35742d82" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -1734,30 +1907,29 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", ] [[package]] @@ -1770,6 +1942,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.11" @@ -1785,9 +1968,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" @@ -1800,6 +1983,27 @@ dependencies = [ "winnow", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -1854,9 +2058,15 @@ dependencies = [ [[package]] name = "unindent" -version = "0.1.11" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" + +[[package]] +name = "untrusted" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" @@ -1877,9 +2087,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "want" @@ -1917,7 +2127,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", "wasm-bindgen-shared", ] @@ -1951,7 +2161,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2009,7 +2219,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -2029,18 +2248,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -2051,9 +2270,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -2063,9 +2282,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -2075,15 +2294,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -2093,9 +2312,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -2105,9 +2324,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -2117,9 +2336,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -2129,9 +2348,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -2153,6 +2372,16 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -2171,5 +2400,11 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.72", ] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/Cargo.toml b/Cargo.toml index 76f0dab..99e8dbb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,9 +24,9 @@ flexbuffers = "2" futures = "0.3" futures-core = "0.3" futures-util = "0.3" -itertools = "0.10" -libdeflater = "0.8" -lru = "0.7" +itertools = "0.13" +libdeflater = "1.21" +lru = "0.12" serde_bytes = "0.11" strength_reduce = "0.2" zerocopy = "0.7" @@ -35,11 +35,11 @@ hdf5 = "0.8" hdf5-sys = "0.8" hdf5-src = { version = "0.8", features = [ "threadsafe" ] } log = "0.4" -rayon = "1.6" -ndarray = { version = "0.15", features = [ "rayon" ] } -pyo3 = { version = "0.17.3", optional = true, features = ["anyhow", "auto-initialize", "abi3-py38"] } -numpy = { version = "0.17.2", optional = true } -netcdf = { version = "^0.8", optional = true } +rayon = "1.10" +ndarray = { version = "0.16", features = [ "rayon" ] } +pyo3 = { version = "0.21", optional = true, features = ["anyhow", "auto-initialize", "abi3-py38"] } +numpy = { version = "0.21.0", optional = true } +netcdf = { version = "^0.9", optional = true } [dependencies.serde] features = ["derive"] @@ -52,8 +52,8 @@ version = "1" [dev-dependencies] divan = "0.1.14" rand = "0.8" -sled = "0.34.6" -reqwest = { version = "0.11", features = [ "blocking" ] } +sled = "0.34.7" +reqwest = { version = "0.12", features = [ "blocking" ] } [patch.crates-io] hdf5 = { git = "https://github.com/magnusuMET/hdf5-rust", branch = "hidefix_jul_2023" } diff --git a/src/reader/cache.rs b/src/reader/cache.rs index 3153218..bd839cc 100644 --- a/src/reader/cache.rs +++ b/src/reader/cache.rs @@ -1,4 +1,5 @@ use std::io::{Read, Seek}; +use std::num::NonZero; use anyhow::ensure; use lru::LruCache; @@ -24,7 +25,7 @@ impl<'a, R: Read + Seek, const D: usize> CacheReader<'a, R, D> { Ok(CacheReader { ds, fd, - cache: LruCache::new(cache_sz as usize), + cache: LruCache::new(NonZero::new(cache_sz as usize).unwrap()), chunk_sz, }) } diff --git a/src/reader/stream.rs b/src/reader/stream.rs index c2c02ea..a9c047c 100644 --- a/src/reader/stream.rs +++ b/src/reader/stream.rs @@ -1,6 +1,7 @@ use async_stream::stream; use futures::{Stream, StreamExt}; use std::fs::File; +use std::num::NonZero; use std::path::{Path, PathBuf}; use std::pin::Pin; @@ -65,7 +66,7 @@ impl<'a, const D: usize> Streamer for StreamReader<'a, D> { (stream! { let mut fd = File::open(p)?; - let mut ds_cache = LruCache::::new(cache_sz as usize); + let mut ds_cache = LruCache::::new(NonZero::new(cache_sz as usize).unwrap()); for (addr, sz, start, end) in slices { let start = start as usize; @@ -114,7 +115,7 @@ impl<'a, const D: usize> Streamer for StreamReader<'a, D> { (stream! { let mut fd = File::open(p)?; - let mut ds_cache = LruCache::::new(cache_sz as usize); + let mut ds_cache = LruCache::::new(NonZero::new(cache_sz as usize).unwrap()); for (addr, sz, start, end) in slices { let x = xdr::xdr_factor(dtype); From 2cae896284ca6e3be447336ff00933c33275bf15 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 8 Aug 2024 10:11:52 +0200 Subject: [PATCH 05/11] ci: use py 3.10 --- .github/workflows/python.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 27cbe2a..7e92073 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: "3.10" architecture: x64 - name: Build wheels uses: PyO3/maturin-action@v1 @@ -61,7 +61,7 @@ jobs: name: wheels - uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: "3.10" - name: Publish to PyPI env: TWINE_USERNAME: __token__ From 3429f9d5f21517d99e27a5c3cd5dc0d41dbe50d3 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 8 Aug 2024 10:14:33 +0200 Subject: [PATCH 06/11] ci: remove x86 target --- .github/workflows/python.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 7e92073..7cef146 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -19,28 +19,25 @@ jobs: - ubuntu-latest - windows-latest - macos-latest - target: [x86_64] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: "3.10" - architecture: x64 - name: Build wheels uses: PyO3/maturin-action@v1 with: rust-toolchain: nightly - target: ${{ matrix.target }} manylinux: auto args: --release --sdist --out dist - name: Install built wheel - if: matrix.target == 'x86_64' + # if: matrix.target == 'x86_64' run: | pip install numpy xarray netCDF4 pip install hidefix --no-index --find-links dist --force-reinstall --no-deps python -c "import hidefix" - name: Run tests - if: matrix.target == 'x86_64' + # if: matrix.target == 'x86_64' run: | pip install pytest pytest-benchmark dask pytest -v --log-cli-level=debug -s From 1b24a7a2ba83ffb1433c40b83e241bf317e53344 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 8 Aug 2024 10:34:18 +0200 Subject: [PATCH 07/11] downgrade to ndarray 0.15 (because of netcdf) --- Cargo.lock | 32 ++++---------------------------- Cargo.toml | 2 +- src/python/mod.rs | 5 +++-- 3 files changed, 8 insertions(+), 31 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3922281..07ca2ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -551,7 +551,7 @@ dependencies = [ "hdf5-types", "lazy_static", "libc", - "ndarray 0.15.6", + "ndarray", "parking_lot 0.12.3", "paste", ] @@ -638,7 +638,7 @@ dependencies = [ "libdeflater", "log", "lru", - "ndarray 0.16.0", + "ndarray", "netcdf", "numpy", "pyo3", @@ -994,21 +994,6 @@ dependencies = [ "num-integer", "num-traits", "rawpointer", -] - -[[package]] -name = "ndarray" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "087ee1ca8a7c22830c2bba4a96ed8e72ce0968ae944349324d52522f66aa3944" -dependencies = [ - "matrixmultiply", - "num-complex", - "num-integer", - "num-traits", - "portable-atomic", - "portable-atomic-util", - "rawpointer", "rayon", ] @@ -1020,7 +1005,7 @@ checksum = "a8aa8799e918d05f6d5d05e08d980f5a4e5d4f4fb503904f2c35c49aed9ac75a" dependencies = [ "bitflags 2.6.0", "libc", - "ndarray 0.15.6", + "ndarray", "netcdf-sys", ] @@ -1103,7 +1088,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec170733ca37175f5d75a5bea5911d6ff45d2cd52849ce98b685394e4f2f37f4" dependencies = [ "libc", - "ndarray 0.15.6", + "ndarray", "num-complex", "num-integer", "num-traits", @@ -1284,15 +1269,6 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" -[[package]] -name = "portable-atomic-util" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdd8420072e66d54a407b3316991fe946ce3ab1083a7f575b2463866624704d" -dependencies = [ - "portable-atomic", -] - [[package]] name = "ppv-lite86" version = "0.2.20" diff --git a/Cargo.toml b/Cargo.toml index 99e8dbb..b0e41b5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,7 +36,7 @@ hdf5-sys = "0.8" hdf5-src = { version = "0.8", features = [ "threadsafe" ] } log = "0.4" rayon = "1.10" -ndarray = { version = "0.16", features = [ "rayon" ] } +ndarray = { version = "0.15", features = [ "rayon" ] } pyo3 = { version = "0.21", optional = true, features = ["anyhow", "auto-initialize", "abi3-py38"] } numpy = { version = "0.21.0", optional = true } netcdf = { version = "^0.9", optional = true } diff --git a/src/python/mod.rs b/src/python/mod.rs index 859de9b..279043f 100644 --- a/src/python/mod.rs +++ b/src/python/mod.rs @@ -2,6 +2,7 @@ use crate::filters::byteorder::ToNative; use byte_slice_cast::ToMutByteSlice; +use ndarray::parallel::prelude::*; use numpy::{PyArray, PyArray1, PyArrayDyn}; use pyo3::{ prelude::*, @@ -194,8 +195,8 @@ impl Dataset { let (mut indices, (mut counts, mut strides)): (Vec<_>, (Vec<_>, Vec<_>)) = slice .iter() .map(|el| match el { - el if el.is_instance_of::().unwrap() => el.downcast::().unwrap(), - el if el.is_instance_of::().unwrap() => { + el if el.is_instance_of::() => el.downcast::().unwrap(), + el if el.is_instance_of::() => { let ind: isize = el.downcast::().unwrap().extract().unwrap(); PySlice::new(py, ind, ind + 1, 1) } From 7d4e2b882ae4d27a9d0efee768795794d2a998ac Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 8 Aug 2024 10:47:13 +0200 Subject: [PATCH 08/11] nc: values -> get_values --- src/idx/index.rs | 2 +- src/lib.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/idx/index.rs b/src/idx/index.rs index 72a7476..0fa77a2 100644 --- a/src/idx/index.rs +++ b/src/idx/index.rs @@ -226,7 +226,7 @@ mod tests { let mut r = i.reader("SST").unwrap(); let iv = r.values::(..).unwrap(); - let nv = f.variable("SST").unwrap().values::(..).unwrap(); + let nv = f.variable("SST").unwrap().get_values::(..).unwrap(); assert_eq!(iv, nv); } diff --git a/src/lib.rs b/src/lib.rs index 3838eab..6b222ef 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -50,7 +50,7 @@ //! use hidefix::prelude::*; //! //! let f = netcdf::open("tests/data/coads_climatology.nc4").unwrap(); -//! let nv = f.variable("SST").unwrap().values::(..).unwrap(); +//! let nv = f.variable("SST").unwrap().get_values::(..).unwrap(); //! //! let i: Index = (&f).try_into().unwrap(); //! let iv = i.reader("SST").unwrap().values::(..).unwrap(); From ba4f9812edfd52272c3861c9bbd92c9abc663836 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 8 Aug 2024 10:57:18 +0200 Subject: [PATCH 09/11] skip one mftest --- tests/python/test_xarray_backend.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/python/test_xarray_backend.py b/tests/python/test_xarray_backend.py index c215f88..c332d54 100644 --- a/tests/python/test_xarray_backend.py +++ b/tests/python/test_xarray_backend.py @@ -35,6 +35,7 @@ def test_coads_nc(coads, plot): plt.show() +@pytest.mark.skip(reason = 'xarray, cftime, pandas no longer manages to decode dates here') def test_xarray_mfdataset(data): urls = [str(data / 'jan.nc4'), str(data / 'feb.nc4')] ds = xr.decode_cf(xr.open_mfdataset(urls, engine='hidefix')) From 34a0246dc8c5d4cf655a347759de7e2305f079ef Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 8 Aug 2024 11:04:42 +0200 Subject: [PATCH 10/11] ci: test on stable as well --- .github/workflows/python.yml | 11 ++++++----- .github/workflows/rust.yml | 2 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 7cef146..9b07a7e 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -15,10 +15,11 @@ jobs: runs-on: ${{matrix.platform}} strategy: matrix: - platform: - - ubuntu-latest - - windows-latest - - macos-latest + include: + - {platform: ubuntu-latest, rust: nightly} + - {platform: ubuntu-latest, rust: stable} + - {platform: windows-latest, rust: nightly} + - {platform: macos-latest, rust: nightly} steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 @@ -27,7 +28,7 @@ jobs: - name: Build wheels uses: PyO3/maturin-action@v1 with: - rust-toolchain: nightly + rust-toolchain: '${{matrix.rust}}' manylinux: auto args: --release --sdist --out dist - name: Install built wheel diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 64e8f74..868869f 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -45,8 +45,10 @@ jobs: matrix: include: - {platform: ubuntu-latest, rust: nightly} + - {platform: ubuntu-latest, rust: stable} - {platform: windows-latest, rust: nightly} - {platform: macos-latest, rust: nightly} + steps: - name: Checkout repository uses: actions/checkout@v3 From 8ac70b985322a92bc4a031300b5c3ab369b19b1b Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 8 Aug 2024 11:19:57 +0200 Subject: [PATCH 11/11] ci: enable unstable for nightly --- .github/workflows/rust.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 868869f..23bf3d6 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -57,11 +57,11 @@ jobs: with: toolchain: '${{matrix.rust}}' - name: Build and test all crates - run: cargo test -vv --workspace + run: cargo test -vv --workspace ${{matrix.rust == 'nightly' && '--features unstable' || '' }} - name: Build and test all docs - run: cargo test -vv --workspace --doc + run: cargo test -vv --workspace --doc ${{matrix.rust == 'nightly' && '--features unstable' || '' }} - name: Build examples - run: cargo b --examples --verbose + run: cargo b --examples --verbose ${{matrix.rust == 'nightly' && '--features unstable' || '' }} bench: name: Benchmark @@ -70,7 +70,7 @@ jobs: fail-fast: false matrix: include: - - {ubuntu: 20.04, rust: nightly} + - {ubuntu: latest, rust: nightly} steps: - name: Checkout repository uses: actions/checkout@v3 @@ -79,7 +79,7 @@ jobs: with: toolchain: '${{matrix.rust}}' - name: Build and bench - run: cargo bench -vv --workspace + run: cargo bench -vv --workspace --features unstable audit: name: Audit