Skip to content

Commit 332e73f

Browse files
authored
Merge pull request #41 from zakstucke/main
Bumped PyO3 to 0.19
2 parents 3f8d95e + 63e573a commit 332e73f

File tree

5 files changed

+34
-30
lines changed

5 files changed

+34
-30
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## Unreleased
2+
3+
- Update to PyO3 0.19
4+
15
## 0.18.0 - 2022-08-24
26

37
- Add LICENSE file to the crate

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ documentation = "https://docs.rs/crate/pythonize/"
1212

1313
[dependencies]
1414
serde = { version = "1.0", default-features = false, features = ["std"] }
15-
pyo3 = { version = "0.18.0", default-features = false }
15+
pyo3 = { version = "0.19.0", default-features = false }
1616

1717
[dev-dependencies]
1818
serde = { version = "1.0", default-features = false, features = ["derive"] }
19-
pyo3 = { version = "0.18.0", default-features = false, features = ["auto-initialize", "macros"] }
19+
pyo3 = { version = "0.19.0", default-features = false, features = ["auto-initialize", "macros"] }
2020
serde_json = "1.0"
2121
maplit = "1.0.2"

src/de.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,29 +61,29 @@ impl<'a, 'de> de::Deserializer<'de> for &'a mut Depythonizer<'de> {
6161

6262
if obj.is_none() {
6363
self.deserialize_unit(visitor)
64-
} else if obj.is_instance_of::<PyBool>()? {
64+
} else if obj.is_instance_of::<PyBool>() {
6565
self.deserialize_bool(visitor)
66-
} else if obj.is_instance_of::<PyByteArray>()? || obj.is_instance_of::<PyBytes>()? {
66+
} else if obj.is_instance_of::<PyByteArray>() || obj.is_instance_of::<PyBytes>() {
6767
self.deserialize_bytes(visitor)
68-
} else if obj.is_instance_of::<PyDict>()? {
68+
} else if obj.is_instance_of::<PyDict>() {
6969
self.deserialize_map(visitor)
70-
} else if obj.is_instance_of::<PyFloat>()? {
70+
} else if obj.is_instance_of::<PyFloat>() {
7171
self.deserialize_f64(visitor)
72-
} else if obj.is_instance_of::<PyFrozenSet>()? {
72+
} else if obj.is_instance_of::<PyFrozenSet>() {
7373
self.deserialize_tuple(obj.len()?, visitor)
74-
} else if obj.is_instance_of::<PyInt>()? {
74+
} else if obj.is_instance_of::<PyInt>() {
7575
self.deserialize_i64(visitor)
76-
} else if obj.is_instance_of::<PyList>()? {
76+
} else if obj.is_instance_of::<PyList>() {
7777
self.deserialize_tuple(obj.len()?, visitor)
78-
} else if obj.is_instance_of::<PyLong>()? {
78+
} else if obj.is_instance_of::<PyLong>() {
7979
self.deserialize_i64(visitor)
80-
} else if obj.is_instance_of::<PySet>()? {
80+
} else if obj.is_instance_of::<PySet>() {
8181
self.deserialize_tuple(obj.len()?, visitor)
82-
} else if obj.is_instance_of::<PyString>()? {
82+
} else if obj.is_instance_of::<PyString>() {
8383
self.deserialize_str(visitor)
84-
} else if obj.is_instance_of::<PyTuple>()? {
84+
} else if obj.is_instance_of::<PyTuple>() {
8585
self.deserialize_tuple(obj.len()?, visitor)
86-
} else if obj.is_instance_of::<PyUnicode>()? {
86+
} else if obj.is_instance_of::<PyUnicode>() {
8787
self.deserialize_str(visitor)
8888
} else if let Ok(_) = obj.downcast::<PySequence>() {
8989
self.deserialize_tuple(obj.len()?, visitor)
@@ -247,7 +247,7 @@ impl<'a, 'de> de::Deserializer<'de> for &'a mut Depythonizer<'de> {
247247
V: de::Visitor<'de>,
248248
{
249249
let item = self.input;
250-
if item.is_instance_of::<PyDict>()? {
250+
if item.is_instance_of::<PyDict>() {
251251
// Get the enum variant from the dict key
252252
let d: &PyDict = item.downcast().unwrap();
253253
if d.len() != 1 {
@@ -261,7 +261,7 @@ impl<'a, 'de> de::Deserializer<'de> for &'a mut Depythonizer<'de> {
261261
let value = d.get_item(variant).unwrap();
262262
let mut de = Depythonizer::from_object(value);
263263
visitor.visit_enum(PyEnumAccess::new(&mut de, variant))
264-
} else if item.is_instance_of::<PyString>()? {
264+
} else if item.is_instance_of::<PyString>() {
265265
let s: &PyString = self.input.downcast()?;
266266
visitor.visit_enum(s.to_str()?.into_deserializer())
267267
} else {

src/lib.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,23 @@
1818
//! bar: Option<usize>
1919
//! }
2020
//!
21-
//! let gil = Python::acquire_gil();
22-
//! let py = gil.python();
21+
//! Python::with_gil(|py| {
22+
//! let sample = Sample {
23+
//! foo: "Foo".to_string(),
24+
//! bar: None
25+
//! };
2326
//!
24-
//! let sample = Sample {
25-
//! foo: "Foo".to_string(),
26-
//! bar: None
27-
//! };
27+
//! // Rust -> Python
28+
//! let obj = pythonize(py, &sample).unwrap();
2829
//!
29-
//! // Rust -> Python
30-
//! let obj = pythonize(py, &sample).unwrap();
30+
//! assert_eq!("{'foo': 'Foo', 'bar': None}", &format!("{}", obj.as_ref(py).repr().unwrap()));
3131
//!
32-
//! assert_eq!("{'foo': 'Foo', 'bar': None}", &format!("{}", obj.as_ref(py).repr().unwrap()));
32+
//! // Python -> Rust
33+
//! let new_sample: Sample = depythonize(obj.as_ref(py)).unwrap();
3334
//!
34-
//! // Python -> Rust
35-
//! let new_sample: Sample = depythonize(obj.as_ref(py)).unwrap();
35+
//! assert_eq!(new_sample, sample);
36+
//! });
3637
//!
37-
//! assert_eq!(new_sample, sample);
3838
//! ```
3939
mod de;
4040
mod error;

tests/test_custom_types.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ fn test_custom_list() {
6666
let serialized = pythonize_custom::<PythonizeCustomList, _>(py, &json!([1, 2, 3]))
6767
.unwrap()
6868
.into_ref(py);
69-
assert!(serialized.is_instance_of::<CustomList>().unwrap());
69+
assert!(serialized.is_instance_of::<CustomList>());
7070

7171
let deserialized: Value = depythonize(serialized).unwrap();
7272
assert_eq!(deserialized, json!([1, 2, 3]));
@@ -131,7 +131,7 @@ fn test_custom_dict() {
131131
pythonize_custom::<PythonizeCustomDict, _>(py, &json!({ "hello": 1, "world": 2 }))
132132
.unwrap()
133133
.into_ref(py);
134-
assert!(serialized.is_instance_of::<CustomDict>().unwrap());
134+
assert!(serialized.is_instance_of::<CustomDict>());
135135

136136
let deserialized: Value = depythonize(serialized).unwrap();
137137
assert_eq!(deserialized, json!({ "hello": 1, "world": 2 }));

0 commit comments

Comments
 (0)