def _detect_time_zone()

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