diff --git a/Cargo.lock b/Cargo.lock index 417ae11f30d..ff3ce676914 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5790,15 +5790,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "mimalloc" version = "0.1.48" @@ -6987,30 +6978,28 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.27.2" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d" +checksum = "cf85e27e86080aafd5a22eae58a162e133a589551542b3e5cee4beb27e54f8e1" dependencies = [ "chrono", "indexmap", - "indoc", "libc", - "memoffset", "once_cell", "portable-atomic", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", - "unindent", ] [[package]] name = "pyo3-async-runtimes" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ddb5b570751e93cc6777e81fee8087e59cd53b5043292f2a6d59d5bd80fdfd" +checksum = "9e7364a95bf00e8377bbf9b0f09d7ff9715a29d8fcf93b47d1a967363b973178" dependencies = [ - "futures", + "futures-channel", + "futures-util", "once_cell", "pin-project-lite", "pyo3", @@ -7019,18 +7008,18 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.27.2" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6" +checksum = "8bf94ee265674bf76c09fa430b0e99c26e319c945d96ca0d5a8215f31bf81cf7" dependencies = [ "target-lexicon", ] [[package]] name = "pyo3-bytes" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37248130b5b50c06a3bd2ed0a4e763aff9bf3104991c656bc27c303df0889460" +checksum = "1d98190ac733bf1c9a3bdbd2856d85abee243f16b7ef1155feefcd613c8704a1" dependencies = [ "bytes", "pyo3", @@ -7038,9 +7027,9 @@ dependencies = [ [[package]] name = "pyo3-ffi" -version = "0.27.2" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089" +checksum = "491aa5fc66d8059dd44a75f4580a2962c1862a1c2945359db36f6c2818b748dc" dependencies = [ "libc", "pyo3-build-config", @@ -7059,9 +7048,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.27.2" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02" +checksum = "f5d671734e9d7a43449f8480f8b38115df67bef8d21f76837fa75ee7aaa5e52e" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -7071,9 +7060,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.27.2" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9" +checksum = "22faaa1ce6c430a1f71658760497291065e6450d7b5dc2bcf254d49f66ee700a" dependencies = [ "heck", "proc-macro2", @@ -7084,9 +7073,9 @@ dependencies = [ [[package]] name = "pyo3-object_store" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef5552f108a4d65b78c924b27513471a9ba425341ada4be5ea0ca53806ae316" +checksum = "6a900d022739373b3ea71fc77bbd237e094b478f71e4b5460c4371c9dedf7457" dependencies = [ "async-trait", "bytes", @@ -9573,12 +9562,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unindent" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" - [[package]] name = "unit-prefix" version = "0.5.2" diff --git a/Cargo.toml b/Cargo.toml index d095d8334ca..ab6a72f04b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -193,9 +193,10 @@ prost = "0.14" prost-build = "0.14" prost-types = "0.14" public-api = "0.51" -pyo3 = { version = "0.27.0" } -pyo3-bytes = "0.5" +pyo3 = { version = "0.28.0" } +pyo3-bytes = "0.6" pyo3-log = "0.13.0" +pyo3-object_store = "0.10.0" quote = "1.0.41" rand = "0.9.0" rand_distr = "0.5" diff --git a/vortex-python/Cargo.toml b/vortex-python/Cargo.toml index 391dc9b4b47..60c1da60b4d 100644 --- a/vortex-python/Cargo.toml +++ b/vortex-python/Cargo.toml @@ -47,7 +47,7 @@ parking_lot = { workspace = true } pyo3 = { workspace = true, features = ["abi3", "abi3-py311"] } pyo3-bytes = { workspace = true } pyo3-log = { workspace = true } -pyo3-object_store = { version = "0.7" } +pyo3-object_store = { workspace = true } tokio = { workspace = true, features = ["fs", "rt-multi-thread"] } url = { workspace = true } vortex = { workspace = true, features = ["object_store", "tokio"] } diff --git a/vortex-python/src/dtype/mod.rs b/vortex-python/src/dtype/mod.rs index fdd0d902e83..1f739e7ab94 100644 --- a/vortex-python/src/dtype/mod.rs +++ b/vortex-python/src/dtype/mod.rs @@ -92,7 +92,15 @@ pub(crate) fn init(py: Python, parent: &Bound) -> PyResult<()> { } /// Base class for all Vortex data types. -#[pyclass(name = "DType", module = "vortex", frozen, eq, hash, subclass)] +#[pyclass( + name = "DType", + module = "vortex", + frozen, + eq, + hash, + subclass, + from_py_object +)] #[derive(Clone, Debug, PartialEq, Eq, Hash)] pub struct PyDType(DType); diff --git a/vortex-python/src/dtype/ptype.rs b/vortex-python/src/dtype/ptype.rs index b331b316844..880181c166e 100644 --- a/vortex-python/src/dtype/ptype.rs +++ b/vortex-python/src/dtype/ptype.rs @@ -8,7 +8,15 @@ use pyo3::prelude::*; use vortex::dtype::PType; /// Enum for primitive types. -#[pyclass(name = "PType", module = "vortex", frozen, eq, eq_int, str)] +#[pyclass( + name = "PType", + module = "vortex", + frozen, + eq, + eq_int, + str, + from_py_object +)] #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub(crate) enum PyPType { /// An 8-bit unsigned integer diff --git a/vortex-python/src/expr/mod.rs b/vortex-python/src/expr/mod.rs index dfd306c6820..2daaefe4f4d 100644 --- a/vortex-python/src/expr/mod.rs +++ b/vortex-python/src/expr/mod.rs @@ -45,7 +45,7 @@ pub(crate) fn init(py: Python, parent: &Bound) -> PyResult<()> { /// .. seealso:: /// :func:`.column` /// -#[pyclass(name = "Expr", module = "vortex", frozen)] +#[pyclass(name = "Expr", module = "vortex", frozen, from_py_object)] #[derive(Clone)] pub struct PyExpr { inner: Expression, diff --git a/vortex-python/src/scalar/mod.rs b/vortex-python/src/scalar/mod.rs index 9a9fc245fc2..7500ae0f592 100644 --- a/vortex-python/src/scalar/mod.rs +++ b/vortex-python/src/scalar/mod.rs @@ -63,7 +63,15 @@ pub(crate) fn init(py: Python, parent: &Bound) -> PyResult<()> { } /// Base class for Vortex scalar types. -#[pyclass(name = "Scalar", module = "vortex", subclass, frozen, eq, hash)] +#[pyclass( + name = "Scalar", + module = "vortex", + subclass, + frozen, + eq, + hash, + from_py_object +)] #[derive(Clone, PartialEq, Eq, Hash)] pub struct PyScalar(Scalar);