|
1 | 1 | use arity::try_binary_elementwise;
|
2 | 2 | use chrono::{LocalResult, NaiveDateTime, TimeZone};
|
3 |
| -use polars::chunked_array::temporal::parse_time_zone; |
4 |
| -use polars::chunked_array::ChunkedArray::TimeZone as PolarsTimeZone; |
| 3 | +use pyo3_polars::export::polars_core::datatypes::time_zone::parse_time_zone; |
5 | 4 | use polars::prelude::*;
|
6 | 5 | use polars_arrow::legacy::time_zone::Tz;
|
7 | 6 | use pyo3_polars::export::polars_core::utils::arrow::legacy::kernels::Ambiguous;
|
8 | 7 | use pyo3_polars::export::polars_core::utils::arrow::temporal_conversions::{
|
9 | 8 | timestamp_ms_to_datetime, timestamp_ns_to_datetime, timestamp_us_to_datetime,
|
10 | 9 | };
|
11 | 10 | use std::str::FromStr;
|
| 11 | +use pyo3_polars::export::polars_core::datatypes::TimeZone as PolarsTimeZone; |
12 | 12 |
|
13 | 13 | fn naive_utc_to_naive_local_in_new_time_zone(
|
14 | 14 | from_tz: &Tz,
|
@@ -51,7 +51,8 @@ pub fn elementwise_to_local_datetime(
|
51 | 51 | datetime: &Logical<DatetimeType, Int64Type>,
|
52 | 52 | tz: &StringChunked,
|
53 | 53 | ) -> PolarsResult<DatetimeChunked> {
|
54 |
| - let from_time_zone = datetime.time_zone().as_deref().unwrap_or(&PlSmallStr::from("UTC")); |
| 54 | + let binding = PlSmallStr::from("UTC"); |
| 55 | + let from_time_zone = datetime.time_zone().as_deref().unwrap_or(&binding); |
55 | 56 | let from_tz = parse_time_zone(from_time_zone)?;
|
56 | 57 |
|
57 | 58 | let timestamp_to_datetime: fn(i64) -> NaiveDateTime = match datetime.time_unit() {
|
@@ -142,6 +143,6 @@ pub fn elementwise_from_local_datetime(
|
142 | 143 | }
|
143 | 144 | }),
|
144 | 145 | };
|
145 |
| - let out = out?.into_datetime(datetime.time_unit(), PolarsTimeZone{Some(PlSmallStr::from_str(out_tz))}); |
| 146 | + let out = out?.into_datetime(datetime.time_unit(), PolarsTimeZone::opt_try_new(Some(out_tz))?); |
146 | 147 | Ok(out)
|
147 | 148 | }
|
0 commit comments