From 6d3407cd2dbd8c1b1805e536a50cd71cc6ab1b4c Mon Sep 17 00:00:00 2001 From: Nico Mandery Date: Sat, 5 Oct 2024 21:16:25 +0200 Subject: [PATCH] upgrade to pyo3 0.22 --- .github/workflows/ci.yml | 2 +- CHANGES.md | 3 +++ Cargo.toml | 4 ++-- data/ne_110m_land.fgb | Bin 0 -> 98608 bytes src/from_py.rs | 4 +++- src/lib.rs | 14 ++++++++------ src/wrappers.rs | 16 ++++++++-------- 7 files changed, 25 insertions(+), 18 deletions(-) create mode 100644 data/ne_110m_land.fgb diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e693af4..a6af109 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: "3.8" + python-version: "3.12" architecture: x64 if: matrix.os == 'macOS-latest' diff --git a/CHANGES.md b/CHANGES.md index 8eed187..8812963 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased + +* Upgrade `pyo3` from 0.21 to 0.22 and `geozero` from 0.12 to 0.14. + ## 0.8.0 - 2024-04-19 * Upgrade `geozero` from 0.11 to 0.12. * Upgrade `pyo3` from 0.20 to 0.21 and switch to new `Bound` API. diff --git a/Cargo.toml b/Cargo.toml index 7d85b5c..0328364 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,13 +39,13 @@ geo-types = "0.7" num-traits = "0.2" [dependencies.pyo3] -version = "0.21" +version = "0.22" features = [ #"abi3" ] [dependencies.geozero] -version = "0.12" +version = "0.14" default-features = false features = ["with-geo", "with-wkb"] optional = true diff --git a/data/ne_110m_land.fgb b/data/ne_110m_land.fgb new file mode 100644 index 0000000000000000000000000000000000000000..d9096f26ed4d94e825ba91a33d3b73fa6771c507 GIT binary patch literal 98608 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%0D&% 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 Xu#$5xeEYC|)vI@E-!X5{zwP}mi=`x7 literal 0 HcmV?d00001 diff --git a/src/from_py.rs b/src/from_py.rs index fedfe3a..f950097 100644 --- a/src/from_py.rs +++ b/src/from_py.rs @@ -670,7 +670,9 @@ class Something: py.run_bound( r#" import geopandas as gpd -world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) +import os +from pathlib import Path +world = gpd.read_file(Path(os.environ['CARGO_MANIFEST_DIR']) / 'data/ne_110m_land.fgb') "#, None, None, diff --git a/src/lib.rs b/src/lib.rs index 4376c2f..c39eb87 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,6 +25,8 @@ //! ```rust //! use geo_types::{Geometry as GtGeometry, Point}; //! use pyo3::{prepare_freethreaded_python, Python}; +//! use pyo3::types::PyDictMethods; +//! use pyo3::types::PyAnyMethods; //! use py_geo_interface::Geometry; //! //! prepare_freethreaded_python(); @@ -33,7 +35,7 @@ //! //! // Define a python class implementing the geo_interface. This could also be a shapely or geojson //! // object instead. These provide the same interface. -//! py.run(r#" +//! py.run_bound(r#" //! class Something: //! @property //! def __geo_interface__(self): @@ -41,7 +43,7 @@ //! "#, None, None).unwrap(); //! //! // create an instance of the class and extract the geometry -//! py.eval(r#"Something()"#, None, None)?.extract::() +//! py.eval_bound(r#"Something()"#, None, None)?.extract::() //! }).unwrap(); //! assert_eq!(geom.0, GtGeometry::Point(Point::new(5.0_f64, 3.0_f64))); //! ``` @@ -51,7 +53,7 @@ //! ```rust //! use geo_types::{Geometry as GtGeometry, Point}; //! use pyo3::{prepare_freethreaded_python, Python}; -//! use pyo3::types::{PyDict, PyTuple}; +//! use pyo3::types::{PyDict, PyTuple, PyDictMethods}; //! use pyo3::IntoPy; //! use py_geo_interface::Geometry; //! @@ -60,13 +62,13 @@ //! Python::with_gil(|py| { //! //! let geom: Geometry = Point::new(10.6_f64, 23.3_f64).into(); -//! let mut locals = PyDict::new(py); +//! let mut locals = PyDict::new_bound(py); //! locals.set_item("geom", geom.into_py(py)).unwrap(); //! -//! py.run(r#" +//! py.run_bound(r#" //! assert geom.__geo_interface__["type"] == "Point" //! assert geom.__geo_interface__["coordinates"] == (10.6, 23.3) -//! "#, None, Some(locals)).unwrap(); +//! "#, None, Some(&locals)).unwrap(); //! }); //! ``` diff --git a/src/wrappers.rs b/src/wrappers.rs index b59925a..bfe6c95 100644 --- a/src/wrappers.rs +++ b/src/wrappers.rs @@ -85,8 +85,8 @@ macro_rules! dt_mod { } } - impl<'source> FromPyObject<'source> for GeometryVec { - fn extract(ob: &'source PyAny) -> PyResult { + impl FromPyObject<'_> for GeometryVec { + fn extract_bound(ob: &Bound<'_, PyAny>) -> PyResult { ob.as_geometry_vec() } } @@ -108,9 +108,9 @@ macro_rules! dt_mod { fn as_geometry_vec(&self) -> PyResult; } - impl AsGeometryVec for PyAny { + impl AsGeometryVec for Bound<'_, PyAny> { fn as_geometry_vec(&self) -> PyResult { - GeometryVec::extract(self) + GeometryVec::extract_bound(self) } } @@ -129,8 +129,8 @@ macro_rules! dt_mod { } } - impl<'source> FromPyObject<'source> for GeometryVecFc { - fn extract(ob: &'source PyAny) -> PyResult { + impl FromPyObject<'_> for GeometryVecFc { + fn extract_bound(ob: &Bound<'_, PyAny>) -> PyResult { ob.as_geometry_vec_fc() } } @@ -152,9 +152,9 @@ macro_rules! dt_mod { fn as_geometry_vec_fc(&self) -> PyResult; } - impl AsGeometryVecFc for PyAny { + impl AsGeometryVecFc for Bound<'_, PyAny> { fn as_geometry_vec_fc(&self) -> PyResult { - GeometryVecFc::extract(self) + GeometryVecFc::extract_bound(self) } } }