8000 suppress FutureWarning for Series.dt.to_pydatetime() calls · plotly/plotly.py@e65aabc · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit e65aabc

Browse files
committed
suppress FutureWarning for Series.dt.to_pydatetime() calls
1 parent e19dec8 commit e65aabc

File tree

3 files changed

+27
-4
lines changed

3 files changed

+27
-4
lines changed

packages/python/plotly/_plotly_utils/basevalidators.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import io
88
import re
99
import sys
10+
import warnings
1011

1112
from _plotly_utils.optional_imports import get_module
1213

@@ -100,7 +101,11 @@ def copy_to_readonly_numpy_array(v, kind=None, force_numeric=False):
100101
elif v.dtype.kind == "M":
101102
# Convert datetime Series/Index to numpy array of datetimes
102103
if isinstance(v, pd.Series):
103-
v = v.dt.to_pydatetime()
104+
with warnings.catch_warnings():
105+
warnings.simplefilter("ignore", FutureWarning)
106+
# Series.dt.to_pydatetime will return Index[object]
107+
# https://github.com/pandas-dev/pandas/pull/52459
108+
v = np.array(v.dt.to_pydatetime())
104109
else:
105110
# DatetimeIndex
106111
v = v.to_pydatetime()
@@ -109,7 +114,13 @@ def copy_to_readonly_numpy_array(v, kind=None, force_numeric=False):
109114
if dtype.kind in numeric_kinds:
110115
v = v.values
111116
elif dtype.kind == "M":
112-
v = [row.dt.to_pydatetime().tolist() for i, row in v.iterrows()]
117+
with warnings.catch_warnings():
118+
warnings.simplefilter("ignore", FutureWarning)
119+
# Series.dt.to_pydatetime will return Index[object]
120+
# https://github.com/pandas-dev/pandas/pull/52459
121+
v = [
122+
np.array(row.dt.to_pydatetime()).tolist() for i, row in v.iterrows()
123+
]
113124

114125
if not isinstance(v, np.ndarray):
115126
# v has its own logic on how to convert itself into a numpy array

packages/python/plotly/plotly/io/_json.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import json
22
import decimal
33
import datetime
4+
import warnings
45
from pathlib import Path
56

67
from plotly.io._utils import validate_coerce_fig_to_dict, validate_coerce_output_type
@@ -535,7 +536,11 @@ def clean_to_json_compatible(obj, **kwargs):
535536
return np.ascontiguousarray(obj.values)
536537
elif obj.dtype.kind == "M":
537538
if isinstance(obj, pd.Series):
538-
dt_values = obj.dt.to_pydatetime().tolist()
539+
with warnings.catch_warnings():
540+
warnings.simplefilter("ignore", FutureWarning)
541+
# Series.dt.to_pydatetime will return Index[object]
542+
# https://github.com/pandas-dev/pandas/pull/52459
543+
dt_values = np.array(obj.dt.to_pydatetime()).tolist()
539544
else: # DatetimeIndex
540545
dt_values = obj.to_pydatetime().tolist()
541546

packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import datetime
99
import re
1010
import sys
11+
import warnings
1112
from pytz import timezone
1213
from _plotly_utils.optional_imports import get_module
1314

@@ -194,7 +195,13 @@ def to_str(v):
194195
if isinstance(datetime_array, list):
195196
dt_values = [to_str(d) for d in datetime_array]
196197
elif isinstance(datetime_array, pd.Series):
197-
dt_values = [to_str(d) for d in datetime_array.dt.to_pydatetime().tolist()]
198+
with warnings.catch_warnings():
199+
warnings.simplefilter("ignore", FutureWarning)
200+
# Series.dt.to_pydatetime will return Index[object]
201+
# https://github.com/pandas-dev/pandas/pull/52459
202+
dt_values = [
203+
to_str(d) for d in np.array(datetime_array.dt.to_pydatetime()).tolist()
204+
]
198205
elif isinstance(datetime_array, pd.DatetimeIndex):
199206
dt_values = [to_str(d) for d in datetime_array.to_pydatetime().tolist()]
200207
else: # numpy datetime64 array

0 commit comments

Comments
 (0)
0