@@ -4,13 +4,11 @@ use pyo3::prelude::*;
4
4
use pyo3:: types:: PyDate ;
5
5
use pyo3:: types:: PyDateTime ;
6
6
use pyo3:: types:: PyTime ;
7
+ use pyo3:: IntoPyObjectExt ;
7
8
8
9
use crate :: parsing:: Parser ;
9
10
use crate :: python:: types:: { Duration , FixedTimezone } ;
10
11
11
- // TODO: pyO3 v0.23 deprecates `ToPyObject`, function below must be migrated as per
12
- // https://pyo3.rs/v0.23.0/migration
13
- #[ allow( deprecated) ]
14
12
#[ pyfunction]
15
13
pub fn parse_iso8601 ( py : Python , input : & str ) -> PyResult < PyObject > {
16
14
let parsed = Parser :: new ( input) . parse ( ) ;
@@ -31,12 +29,12 @@ pub fn parse_iso8601(py: Python, input: &str) -> PyResult<PyObject> {
31
29
datetime. microsecond ,
32
30
Some (
33
31
Py :: new ( py, FixedTimezone :: new ( offset, datetime. tzname ) ) ?
34
- . to_object ( py )
32
+ . into_any ( )
35
33
. downcast_bound ( py) ?,
36
34
) ,
37
35
) ?;
38
36
39
- Ok ( dt. to_object ( py ) )
37
+ Ok ( dt. into_any ( ) . unbind ( ) )
40
38
}
41
39
None => {
42
40
let dt = PyDateTime :: new (
@@ -51,7 +49,7 @@ pub fn parse_iso8601(py: Python, input: &str) -> PyResult<PyObject> {
51
49
None ,
52
50
) ?;
53
51
54
- Ok ( dt. to_object ( py ) )
52
+ Ok ( dt. into_any ( ) . unbind ( ) )
55
53
}
56
54
} ,
57
55
( true , false ) => {
@@ -62,7 +60,7 @@ pub fn parse_iso8601(py: Python, input: &str) -> PyResult<PyObject> {
62
60
datetime. day as u8 ,
63
61
) ?;
64
62
65
- Ok ( dt. to_object ( py ) )
63
+ Ok ( dt. into_any ( ) . unbind ( ) )
66
64
}
67
65
( false , true ) => match datetime. offset {
68
66
Some ( offset) => {
@@ -74,12 +72,12 @@ pub fn parse_iso8601(py: Python, input: &str) -> PyResult<PyObject> {
74
72
datetime. microsecond ,
75
73
Some (
76
74
Py :: new ( py, FixedTimezone :: new ( offset, datetime. tzname ) ) ?
77
- . to_object ( py )
75
+ . into_any ( )
78
76
. downcast_bound ( py) ?,
79
77
) ,
80
78
) ?;
81
79
82
- Ok ( dt. to_object ( py ) )
80
+ Ok ( dt. into_any ( ) . unbind ( ) )
83
81
}
84
82
None => {
85
83
let dt = PyTime :: new (
@@ -91,7 +89,7 @@ pub fn parse_iso8601(py: Python, input: &str) -> PyResult<PyObject> {
91
89
None ,
92
90
) ?;
93
91
94
- Ok ( dt. to_object ( py ) )
92
+ Ok ( dt. into_any ( ) . unbind ( ) )
95
93
}
96
94
} ,
97
95
( _, _) => Err ( exceptions:: PyValueError :: new_err (
@@ -111,7 +109,7 @@ pub fn parse_iso8601(py: Python, input: &str) -> PyResult<PyObject> {
111
109
Some ( duration. microseconds ) ,
112
110
) ,
113
111
) ?
114
- . to_object ( py) ) ,
112
+ . into_py_any ( py) ? ) ,
115
113
( _, _, _) => Err ( exceptions:: PyValueError :: new_err (
116
114
"Not yet implemented" . to_string ( ) ,
117
115
) ) ,
0 commit comments