in python-package/lets_plot/plot/series_meta.py [0:0]
def _detect_time_zone(var_name: str, data: Union[Dict, 'pandas.DataFrame', 'polars.DataFrame']) -> Optional[str]:
if is_pandas_data_frame(data):
if var_name in data:
var_content = data[var_name]
if hasattr(var_content, 'dt') and hasattr(var_content.dt, 'tz') and var_content.dt.tz is not None:
return str(var_content.dt.tz)
elif is_polars_dataframe(data):
if var_name in data.columns:
col_dtype = data[var_name].dtype
if hasattr(col_dtype, 'time_zone'):
if col_dtype.time_zone is not None:
return str(col_dtype.time_zone)
elif isinstance(data, dict):
if var_name in data:
var_content = data[var_name]
if isinstance(var_content, Iterable):
for val in var_content:
if isinstance(val, datetime) and val.tzinfo is not None:
return str(val.tzinfo)
# NumPy datetime64 objects don't store timezone information,
# so we can't extract it from them.
return None