From e90f5198766c6e007522eca063dd98a41bf1e28f Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Fri, 30 May 2025 07:28:53 -0600 Subject: [PATCH 1/2] deps: update rustac --- Cargo.lock | 474 ++++++++++++++++++++++++++++++-------------------- Cargo.toml | 1 - src/read.rs | 12 +- src/search.rs | 20 ++- src/walk.rs | 16 +- src/write.rs | 34 ++-- 6 files changed, 327 insertions(+), 230 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a274076..2c34376 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -129,12 +129,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "6680de5231bd6ee4c6191b8a1325daa282b415391ec9d3a37bd34f2060dc73fa" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] @@ -479,7 +479,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -674,9 +674,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.23" +version = "1.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766" +checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" dependencies = [ "jobserver", "libc", @@ -733,9 +733,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.38" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000" +checksum = "fd60e63e9be68e5fb56422e397cf9baddded06dae1d2e523401542383bc72a9f" dependencies = [ "clap_builder", "clap_derive", @@ -743,9 +743,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.38" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" +checksum = "89cc6392a1f72bbeb820d71f32108f61fdaf18bc526e1d23954168a67759ef51" dependencies = [ "anstream", "anstyle", @@ -784,7 +784,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" dependencies = [ "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.0", +] + +[[package]] +name = "console" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width 0.2.0", + "windows-sys 0.59.0", ] [[package]] @@ -815,9 +828,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -1048,6 +1061,12 @@ dependencies = [ "serde", ] +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + [[package]] name = "equivalent" version = "1.0.2" @@ -1312,6 +1331,15 @@ dependencies = [ "geo-types", ] +[[package]] +name = "geo-traits" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e7c353d12a704ccfab1ba8bfb1a7fe6cb18b665bf89d37f4f7890edcd260206" +dependencies = [ + "geo-types", +] + [[package]] name = "geo-types" version = "0.7.16" @@ -1333,33 +1361,28 @@ dependencies = [ "arrow-array", "arrow-buffer", "arrow-schema", - "geo-traits", - "geoarrow-schema", + "geo-traits 0.2.0", + "geoarrow-schema 0.1.0-dev", "num-traits", "serde_json", "thiserror 1.0.69", - "wkb", + "wkb 0.8.0", "wkt 0.12.0 (git+https://github.com/georust/wkt?rev=270ffe0eaf5ba5255c364dbade39c451562a9e9b)", ] [[package]] -name = "geoarrow-geoparquet" -version = "0.1.0-dev" -source = "git+https://github.com/geoarrow/geoarrow-rs/?rev=17bf33e4cf78b060afa08ca9560dc4efd73c2c76#17bf33e4cf78b060afa08ca9560dc4efd73c2c76" +name = "geoarrow-array" +version = "0.4.0-beta.4" +source = "git+https://github.com/geoarrow/geoarrow-rs/?rev=d27500849c6cee019535d6749991d1fd122baecf#d27500849c6cee019535d6749991d1fd122baecf" dependencies = [ - "arrow-arith", "arrow-array", "arrow-buffer", - "arrow-ord", "arrow-schema", - "geo-traits", - "geo-types", - "geoarrow-array", - "geoarrow-schema", - "parquet", - "serde", - "serde_json", - "serde_with", + "geo-traits 0.3.0", + "geoarrow-schema 0.4.0-beta.4", + "num-traits", + "wkb 0.9.0", + "wkt 0.14.0", ] [[package]] @@ -1368,11 +1391,23 @@ version = "0.1.0-dev" source = "git+https://github.com/geoarrow/geoarrow-rs/?rev=17bf33e4cf78b060afa08ca9560dc4efd73c2c76#17bf33e4cf78b060afa08ca9560dc4efd73c2c76" dependencies = [ "arrow-schema", - "geo-traits", + "geo-traits 0.2.0", "serde", "serde_json", ] +[[package]] +name = "geoarrow-schema" +version = "0.4.0-beta.4" +source = "git+https://github.com/geoarrow/geoarrow-rs/?rev=d27500849c6cee019535d6749991d1fd122baecf#d27500849c6cee019535d6749991d1fd122baecf" +dependencies = [ + "arrow-schema", + "geo-traits 0.3.0", + "serde", + "serde_json", + "thiserror 1.0.69", +] + [[package]] name = "geographiclib-rs" version = "0.2.5" @@ -1395,6 +1430,26 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "geoparquet" +version = "0.4.0-beta.4" +source = "git+https://github.com/geoarrow/geoarrow-rs/?rev=d27500849c6cee019535d6749991d1fd122baecf#d27500849c6cee019535d6749991d1fd122baecf" +dependencies = [ + "arrow-arith", + "arrow-array", + "arrow-buffer", + "arrow-ord", + "arrow-schema", + "geo-traits 0.3.0", + "geo-types", + "geoarrow-array 0.4.0-beta.4", + "geoarrow-schema 0.4.0-beta.4", + "parquet", + "serde", + "serde_json", + "serde_with", +] + [[package]] name = "geozero" version = "0.14.0" @@ -1631,11 +1686,10 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.5" +version = "0.27.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +checksum = "03a01595e11bdcec50946522c32dde3fc6914743000a68b93000965f2f02406d" dependencies = [ - "futures-util", "http", "hyper", "hyper-util", @@ -1645,22 +1699,26 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots 0.26.11", + "webpki-roots", ] [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "b1c293b6b3d21eca78250dc7dbebd6b9210ec5530e038cbfe0661b5c47ab06e8" dependencies = [ + "base64", "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", + "ipnet", "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", @@ -1871,6 +1929,20 @@ dependencies = [ "serde", ] +[[package]] +name = "indicatif" +version = "0.17.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" +dependencies = [ + "console", + "number_prefix", + "portable-atomic", + "unicode-width 0.2.0", + "vt100", + "web-time", +] + [[package]] name = "indoc" version = "2.0.6" @@ -1889,6 +1961,16 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1921,9 +2003,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jiff" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f02000660d30638906021176af16b17498bd0d12813dbfe7b276d8bc7f3c0806" +checksum = "a194df1107f33c79f4f93d02c80798520551949d59dfad22b6157048a88cca93" dependencies = [ "jiff-static", "jiff-tzdb-platform", @@ -1936,9 +2018,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c30758ddd7188629c6713fc45d1188af4f44c90582311d0c8d8c9907f60c48" +checksum = "6c6e1db7ed32c6c71b759497fae34bf7933636f75a251b9e736555da426f6442" dependencies = [ "proc-macro2", "quote", @@ -2179,9 +2261,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -2275,13 +2357,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2416,6 +2498,12 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "numpy" version = "0.24.0" @@ -2486,6 +2574,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "openssl-probe" version = "0.1.6" @@ -2515,9 +2609,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -2525,15 +2619,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -2646,7 +2740,7 @@ dependencies = [ [[package]] name = "pgstac" version = "0.3.0" -source = "git+https://github.com/stac-utils/rustac?branch=main#8a33be4288cad2979b2c261082bdfef494d3e732" +source = "git+https://github.com/stac-utils/rustac?branch=main#e2f92de4d4803edfdd43e4c0c86e06efb2aea044" dependencies = [ "serde", "serde_json", @@ -3258,9 +3352,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "e98ff6b0dbbe4d5a37318f433d4fc82babd21631f194d370409ceb2e40b2f0b5" dependencies = [ "base64", "bytes", @@ -3284,7 +3378,6 @@ dependencies = [ "quinn", "rustls", "rustls-native-certs", - "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", @@ -3294,14 +3387,14 @@ dependencies = [ "tokio-rustls", "tokio-util", "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.11", - "windows-registry", + "webpki-roots", ] [[package]] @@ -3383,20 +3476,26 @@ dependencies = [ [[package]] name = "rustac" version = "0.5.3" -source = "git+https://github.com/stac-utils/rustac?branch=main#8a33be4288cad2979b2c261082bdfef494d3e732" +source = "git+https://github.com/stac-utils/rustac?branch=main#e2f92de4d4803edfdd43e4c0c86e06efb2aea044" dependencies = [ "anyhow", + "async-stream", "axum", "clap", + "futures-core", + "futures-util", "serde_json", "stac", "stac-api", "stac-duckdb", "stac-io", "stac-server", + "stac-validate", "tokio", "tracing", + "tracing-indicatif", "tracing-subscriber", + "url", ] [[package]] @@ -3406,9 +3505,8 @@ dependencies = [ "cargo-lock", "clap", "duckdb", - "geoarrow-array", + "geoarrow-array 0.1.0-dev", "geojson", - "object_store", "pyo3", "pyo3-arrow", "pyo3-async-runtimes", @@ -3519,9 +3617,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" @@ -3752,9 +3850,9 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3791,7 +3889,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stac" version = "0.12.0" -source = "git+https://github.com/stac-utils/rustac?branch=main#8a33be4288cad2979b2c261082bdfef494d3e732" +source = "git+https://github.com/stac-utils/rustac?branch=main#e2f92de4d4803edfdd43e4c0c86e06efb2aea044" dependencies = [ "arrow-array", "arrow-cast", @@ -3800,12 +3898,12 @@ dependencies = [ "bytes", "chrono", "geo", - "geo-traits", + "geo-traits 0.3.0", "geo-types", - "geoarrow-array", - "geoarrow-geoparquet", - "geoarrow-schema", + "geoarrow-array 0.4.0-beta.4", + "geoarrow-schema 0.4.0-beta.4", "geojson", + "geoparquet", "indexmap 2.9.0", "log", "mime", @@ -3821,7 +3919,7 @@ dependencies = [ [[package]] name = "stac-api" version = "0.7.1" -source = "git+https://github.com/stac-utils/rustac?branch=main#8a33be4288cad2979b2c261082bdfef494d3e732" +source = "git+https://github.com/stac-utils/rustac?branch=main#e2f92de4d4803edfdd43e4c0c86e06efb2aea044" dependencies = [ "async-stream", "chrono", @@ -3846,7 +3944,7 @@ dependencies = [ [[package]] name = "stac-derive" version = "0.2.0" -source = "git+https://github.com/stac-utils/rustac?branch=main#8a33be4288cad2979b2c261082bdfef494d3e732" +source = "git+https://github.com/stac-utils/rustac?branch=main#e2f92de4d4803edfdd43e4c0c86e06efb2aea044" dependencies = [ "quote", "syn 2.0.101", @@ -3855,14 +3953,14 @@ dependencies = [ [[package]] name = "stac-duckdb" version = "0.1.1" -source = "git+https://github.com/stac-utils/rustac?branch=main#8a33be4288cad2979b2c261082bdfef494d3e732" +source = "git+https://github.com/stac-utils/rustac?branch=main#e2f92de4d4803edfdd43e4c0c86e06efb2aea044" dependencies = [ "arrow-array", "chrono", "cql2", "duckdb", "geo", - "geoarrow-array", + "geoarrow-schema 0.4.0-beta.4", "geojson", "getrandom 0.3.3", "log", @@ -3875,11 +3973,9 @@ dependencies = [ [[package]] name = "stac-io" version = "0.1.0" -source = "git+https://github.com/stac-utils/rustac?branch=main#8a33be4288cad2979b2c261082bdfef494d3e732" +source = "git+https://github.com/stac-utils/rustac?branch=main#e2f92de4d4803edfdd43e4c0c86e06efb2aea044" dependencies = [ "bytes", - "fluent-uri", - "jsonschema 0.30.0", "object_store", "parquet", "reqwest", @@ -3894,7 +3990,7 @@ dependencies = [ [[package]] name = "stac-server" version = "0.3.4" -source = "git+https://github.com/stac-utils/rustac?branch=main#8a33be4288cad2979b2c261082bdfef494d3e732" +source = "git+https://github.com/stac-utils/rustac?branch=main#e2f92de4d4803edfdd43e4c0c86e06efb2aea044" dependencies = [ "axum", "bb8", @@ -3918,6 +4014,20 @@ dependencies = [ "url", ] +[[package]] +name = "stac-validate" +version = "0.4.0" +source = "git+https://github.com/stac-utils/rustac?branch=main#e2f92de4d4803edfdd43e4c0c86e06efb2aea044" +dependencies = [ + "fluent-uri", + "jsonschema 0.30.0", + "reqwest", + "serde", + "serde_json", + "stac", + "thiserror 2.0.12", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -4183,9 +4293,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.45.0" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", "bytes", @@ -4338,9 +4448,12 @@ checksum = "0fdb0c213ca27a9f57ab69ddb290fd80d970922355b83ae380b395d3986b8a2e" dependencies = [ "bitflags", "bytes", + "futures-util", "http", "http-body", + "iri-string", "pin-project-lite", + "tower", "tower-layer", "tower-service", "tracing", @@ -4391,6 +4504,18 @@ dependencies = [ "valuable", ] +[[package]] +name = "tracing-indicatif" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8201ca430e0cd893ef978226fd3516c06d9c494181c8bf4e5b32e30ed4b40aa1" +dependencies = [ + "indicatif", + "tracing", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "tracing-log" version = "0.2.0" @@ -4496,6 +4621,12 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "unicode-width" version = "0.2.0" @@ -4540,9 +4671,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "uuid-simd" @@ -4579,6 +4714,39 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" +[[package]] +name = "vt100" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de" +dependencies = [ + "itoa", + "log", + "unicode-width 0.1.14", + "vte", +] + +[[package]] +name = "vte" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197" +dependencies = [ + "arrayvec", + "utf8parse", + "vte_generate_state_changes", +] + +[[package]] +name = "vte_generate_state_changes" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -4723,15 +4891,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.0", -] - [[package]] name = "webpki-roots" version = "1.0.0" @@ -4793,7 +4952,7 @@ dependencies = [ "windows-interface", "windows-link", "windows-result", - "windows-strings 0.4.2", + "windows-strings", ] [[package]] @@ -4824,17 +4983,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" -[[package]] -name = "windows-registry" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result", - "windows-strings 0.3.1", - "windows-targets 0.53.0", -] - [[package]] name = "windows-result" version = "0.3.4" @@ -4844,15 +4992,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-strings" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-strings" version = "0.4.2" @@ -4868,7 +5007,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4877,7 +5016,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4886,30 +5025,14 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "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]] -name = "windows-targets" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" -dependencies = [ - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -4918,96 +5041,48 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - [[package]] name = "winnow" version = "0.7.10" @@ -5032,7 +5107,19 @@ version = "0.8.0" source = "git+https://github.com/georust/wkb?rev=5a2027995997017bcd531e6be7e5cf126db1d4c1#5a2027995997017bcd531e6be7e5cf126db1d4c1" dependencies = [ "byteorder", - "geo-traits", + "geo-traits 0.2.0", + "num_enum", + "thiserror 1.0.69", +] + +[[package]] +name = "wkb" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff9eff6aebac4c64f9c7c057a68f6359284e2a80acf102dffe041fe219b3a082" +dependencies = [ + "byteorder", + "geo-traits 0.3.0", "num_enum", "thiserror 1.0.69", ] @@ -5055,7 +5142,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1c591649bd1c9d4e28459758bbb5fb5c0edc7a67060b52422f4761c94ffe961" dependencies = [ - "geo-traits", + "geo-traits 0.2.0", "geo-types", "log", "num-traits", @@ -5067,7 +5154,20 @@ name = "wkt" version = "0.12.0" source = "git+https://github.com/georust/wkt?rev=270ffe0eaf5ba5255c364dbade39c451562a9e9b#270ffe0eaf5ba5255c364dbade39c451562a9e9b" dependencies = [ - "geo-traits", + "geo-traits 0.2.0", + "geo-types", + "log", + "num-traits", + "thiserror 1.0.69", +] + +[[package]] +name = "wkt" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb2b923ccc882312e559ffaa832a055ba9d1ac0cc8e86b3e25453247e4b81d7" +dependencies = [ + "geo-traits 0.3.0", "geo-types", "log", "num-traits", diff --git a/Cargo.toml b/Cargo.toml index 6c8fdcb..05f7a72 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,6 @@ tokio = { version = "1.44.0", features = ["rt-multi-thread"] } pyo3-log = "0.12.1" tracing = "0.1.41" pyo3-object_store = "0.2.0" -object_store = "0.12.1" [build-dependencies] cargo-lock = "10" diff --git a/src/read.rs b/src/read.rs index 5cc1262..11bfebc 100644 --- a/src/read.rs +++ b/src/read.rs @@ -2,7 +2,7 @@ use crate::{Error, Json}; use pyo3::{Bound, PyResult, Python, pyfunction, types::PyAny}; use pyo3_object_store::AnyObjectStore; use stac::{Link, Links, SelfHref, Value}; -use stac_io::Format; +use stac_io::{Format, StacStore}; #[pyfunction] #[pyo3(signature = (href, *, format=None, store=None, set_self_link=true))] @@ -19,15 +19,13 @@ pub fn read( .unwrap_or_default(); pyo3_async_runtimes::tokio::future_into_py(py, async move { let mut value: Value = if let Some(store) = store { - format - .get_store(store.into_dyn(), href.as_str()) + StacStore::from(store) + .get_format(&href, format) .await .map_err(Error::from)? } else { - format - .get_opts(href.as_str(), [] as [(&str, &str); 0]) - .await - .map_err(Error::from)? + let (store, path) = stac_io::parse_href(&href).map_err(Error::from)?; + store.get_format(path, format).await.map_err(Error::from)? }; if set_self_link { value.set_link(Link::self_(href.clone())); diff --git a/src/search.rs b/src/search.rs index bbf6a7d..d7dad03 100644 --- a/src/search.rs +++ b/src/search.rs @@ -5,7 +5,7 @@ use pyo3::{Bound, FromPyObject, PyErr, PyResult, exceptions::PyValueError, types use pyo3_object_store::AnyObjectStore; use stac::Bbox; use stac_api::{Fields, Filter, Items, Search, Sortby}; -use stac_io::Format; +use stac_io::{Format, StacStore}; #[pyfunction] #[pyo3(signature = (href, *, intersects=None, ids=None, collections=None, max_items=None, limit=None, bbox=None, datetime=None, include=None, exclude=None, sortby=None, filter=None, query=None, use_duckdb=None, **kwargs))] @@ -109,13 +109,14 @@ pub fn search_to<'py>( let count = value.items.len(); let value = serde_json::to_value(value).map_err(Error::from)?; if let Some(store) = store { - format - .put_store(store.into_dyn(), outfile, value) + StacStore::from(store) + .put_format(outfile, value, format) .await .map_err(Error::from)?; } else { - format - .put_opts(outfile, value, [] as [(&str, &str); 0]) + let (store, path) = stac_io::parse_href(outfile).map_err(Error::from)?; + store + .put_format(path, value, format) .await .map_err(Error::from)?; } @@ -127,13 +128,14 @@ pub fn search_to<'py>( let count = value.items.len(); let value = serde_json::to_value(value).map_err(Error::from)?; if let Some(store) = store { - format - .put_store(store.into_dyn(), outfile, value) + StacStore::from(store) + .put_format(outfile, value, format) .await .map_err(Error::from)?; } else { - format - .put_opts(outfile, value, [] as [(&str, &str); 0]) + let (store, path) = stac_io::parse_href(outfile).map_err(Error::from)?; + store + .put_format(path, value, format) .await .map_err(Error::from)?; } diff --git a/src/walk.rs b/src/walk.rs index 13feb82..f5cee95 100644 --- a/src/walk.rs +++ b/src/walk.rs @@ -1,12 +1,11 @@ use crate::{Error, Json, Result}; -use object_store::ObjectStore; use pyo3::{ Bound, Py, PyAny, PyResult, Python, exceptions::PyStopAsyncIteration, pyclass, pyfunction, pymethods, types::PyDict, }; use pyo3_object_store::AnyObjectStore; use stac::{Item, Links, SelfHref, Value}; -use stac_io::Format; +use stac_io::{Format, StacStore}; use std::collections::VecDeque; use std::sync::Arc; use tokio::sync::Mutex; @@ -22,7 +21,7 @@ pub fn walk(container: Bound<'_, PyDict>, store: Option) -> Resu let mut walks = VecDeque::new(); walks.push_back(value); let store = if let Some(store) = store { - Some(store.into_dyn()) + Some(StacStore::from(store.into_dyn())) } else { None }; @@ -36,7 +35,7 @@ pub fn walk(container: Bound<'_, PyDict>, store: Option) -> Resu #[derive(Clone)] pub struct Walk { values: Arc>>, - store: Option>, + store: Option, } #[pymethods] @@ -70,13 +69,10 @@ impl Walk { } join_set.spawn(async move { if let Some(store) = store { - Format::json() - .get_store::(store, link.href.as_str()) - .await + store.get_format(link.href.as_str(), Format::json()).await } else { - Format::json() - .get_opts(link.href.as_str(), [] as [(&str, &str); 0]) - .await + let (store, path) = stac_io::parse_href(link.href)?; + store.get_format(path, Format::json()).await } }); } diff --git a/src/write.rs b/src/write.rs index 997d53d..2923257 100644 --- a/src/write.rs +++ b/src/write.rs @@ -3,7 +3,7 @@ use pyo3::{Bound, PyAny, PyResult, Python, pyfunction}; use pyo3_object_store::AnyObjectStore; use serde_json::Value; use stac::{Item, ItemCollection}; -use stac_io::Format; +use stac_io::{Format, StacStore}; #[pyfunction] #[pyo3(signature = (href, value, *, format=None, store=None))] @@ -29,26 +29,28 @@ pub fn write<'py>( .and_then(|f| f.parse::().ok()) .or_else(|| Format::infer_from_href(&href)) .unwrap_or_default(); - let put_result = if let Some(store) = store { - format - .put_store(store.into_dyn(), href, value) + let (stac_store, path) = if let Some(store) = store { + (StacStore::from(store.into_dyn()), None) + } else { + stac_io::parse_href(&href) + .map(|(store, path)| (store, Some(path))) + .map_err(Error::from)? + }; + let put_result = if let Some(path) = path { + stac_store + .put_format(path.as_ref(), value, format) .await - .map(Some) .map_err(Error::from)? } else { - format - .put_opts(href, value, [] as [(&str, &str); 0]) + stac_store + .put_format(href, value, format) .await .map_err(Error::from)? }; - if let Some(put_result) = put_result { - let put_result = serde_json::json!({ - "e_tag": put_result.e_tag, - "version": put_result.version, - }); - Ok(Some(Json(put_result))) - } else { - Ok(None) - } + let put_result = serde_json::json!({ + "e_tag": put_result.e_tag, + "version": put_result.version, + }); + Ok(Some(Json(put_result))) }) } From a8a9a40104aa5d2d7c47c53c3f4c8ba113525574 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Fri, 30 May 2025 07:46:49 -0600 Subject: [PATCH 2/2] fix: test script --- .gitignore | 1 + scripts/test | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 943c576..d88455c 100644 --- a/.gitignore +++ b/.gitignore @@ -166,3 +166,4 @@ cython_debug/ docs/generated tests/duckdb-extensions +tests/out.json diff --git a/scripts/test b/scripts/test index 3676ba3..ff5391a 100755 --- a/scripts/test +++ b/scripts/test @@ -3,4 +3,4 @@ set -e uv run pytest "$@" -uv run rustac translate spec-examples/v1.1.0/simple-item.json /dev/null +uv run rustac translate spec-examples/v1.1.0/simple-item.json tests/out.json && rm tests/out.json