1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
Subject: Revert: Bumped Pyo3 to 0.19
--- b/src/de.rs
+++ a/src/de.rs
@@ -61,29 +61,29 @@
if obj.is_none() {
self.deserialize_unit(visitor)
+ } else if obj.is_instance_of::<PyBool>()? {
- } else if obj.is_instance_of::<PyBool>() {
self.deserialize_bool(visitor)
+ } else if obj.is_instance_of::<PyByteArray>()? || obj.is_instance_of::<PyBytes>()? {
- } else if obj.is_instance_of::<PyByteArray>() || obj.is_instance_of::<PyBytes>() {
self.deserialize_bytes(visitor)
+ } else if obj.is_instance_of::<PyDict>()? {
- } else if obj.is_instance_of::<PyDict>() {
self.deserialize_map(visitor)
+ } else if obj.is_instance_of::<PyFloat>()? {
- } else if obj.is_instance_of::<PyFloat>() {
self.deserialize_f64(visitor)
+ } else if obj.is_instance_of::<PyFrozenSet>()? {
- } else if obj.is_instance_of::<PyFrozenSet>() {
self.deserialize_tuple(obj.len()?, visitor)
+ } else if obj.is_instance_of::<PyInt>()? {
- } else if obj.is_instance_of::<PyInt>() {
self.deserialize_i64(visitor)
+ } else if obj.is_instance_of::<PyList>()? {
- } else if obj.is_instance_of::<PyList>() {
self.deserialize_tuple(obj.len()?, visitor)
+ } else if obj.is_instance_of::<PyLong>()? {
- } else if obj.is_instance_of::<PyLong>() {
self.deserialize_i64(visitor)
+ } else if obj.is_instance_of::<PySet>()? {
- } else if obj.is_instance_of::<PySet>() {
self.deserialize_tuple(obj.len()?, visitor)
+ } else if obj.is_instance_of::<PyString>()? {
- } else if obj.is_instance_of::<PyString>() {
self.deserialize_str(visitor)
+ } else if obj.is_instance_of::<PyTuple>()? {
- } else if obj.is_instance_of::<PyTuple>() {
self.deserialize_tuple(obj.len()?, visitor)
+ } else if obj.is_instance_of::<PyUnicode>()? {
- } else if obj.is_instance_of::<PyUnicode>() {
self.deserialize_str(visitor)
} else if let Ok(_) = obj.downcast::<PySequence>() {
self.deserialize_tuple(obj.len()?, visitor)
@@ -247,7 +247,7 @@
V: de::Visitor<'de>,
{
let item = self.input;
+ if item.is_instance_of::<PyDict>()? {
- if item.is_instance_of::<PyDict>() {
// Get the enum variant from the dict key
let d: &PyDict = item.downcast().unwrap();
if d.len() != 1 {
@@ -261,7 +261,7 @@
let value = d.get_item(variant).unwrap();
let mut de = Depythonizer::from_object(value);
visitor.visit_enum(PyEnumAccess::new(&mut de, variant))
+ } else if item.is_instance_of::<PyString>()? {
- } else if item.is_instance_of::<PyString>() {
let s: &PyString = self.input.downcast()?;
visitor.visit_enum(s.to_str()?.into_deserializer())
} else {
--- b/src/lib.rs
+++ a/src/lib.rs
@@ -18,23 +18,23 @@
//! bar: Option<usize>
//! }
//!
+//! let gil = Python::acquire_gil();
+//! let py = gil.python();
-//! Python::with_gil(|py| {
-//! let sample = Sample {
-//! foo: "Foo".to_string(),
-//! bar: None
-//! };
//!
+//! let sample = Sample {
+//! foo: "Foo".to_string(),
+//! bar: None
+//! };
-//! // Rust -> Python
-//! let obj = pythonize(py, &sample).unwrap();
//!
+//! // Rust -> Python
+//! let obj = pythonize(py, &sample).unwrap();
-//! assert_eq!("{'foo': 'Foo', 'bar': None}", &format!("{}", obj.as_ref(py).repr().unwrap()));
//!
+//! assert_eq!("{'foo': 'Foo', 'bar': None}", &format!("{}", obj.as_ref(py).repr().unwrap()));
-//! // Python -> Rust
-//! let new_sample: Sample = depythonize(obj.as_ref(py)).unwrap();
//!
+//! // Python -> Rust
+//! let new_sample: Sample = depythonize(obj.as_ref(py)).unwrap();
-//! assert_eq!(new_sample, sample);
-//! });
//!
+//! assert_eq!(new_sample, sample);
//! ```
mod de;
mod error;
--- b/tests/test_custom_types.rs
+++ a/tests/test_custom_types.rs
@@ -66,7 +66,7 @@
let serialized = pythonize_custom::<PythonizeCustomList, _>(py, &json!([1, 2, 3]))
.unwrap()
.into_ref(py);
+ assert!(serialized.is_instance_of::<CustomList>().unwrap());
- assert!(serialized.is_instance_of::<CustomList>());
let deserialized: Value = depythonize(serialized).unwrap();
assert_eq!(deserialized, json!([1, 2, 3]));
@@ -131,7 +131,7 @@
pythonize_custom::<PythonizeCustomDict, _>(py, &json!({ "hello": 1, "world": 2 }))
.unwrap()
.into_ref(py);
+ assert!(serialized.is_instance_of::<CustomDict>().unwrap());
- assert!(serialized.is_instance_of::<CustomDict>());
let deserialized: Value = depythonize(serialized).unwrap();
assert_eq!(deserialized, json!({ "hello": 1, "world": 2 }));
|