From 11840f17df4fea7c9408f0b884f1a352dda354e5 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sun, 8 Sep 2019 09:54:31 -0700 Subject: [PATCH 1/2] PERF: lazify type-check import --- pandas/io/formats/format.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pandas/io/formats/format.py b/pandas/io/formats/format.py index f8db1b19dadfa..5c7050a907260 100644 --- a/pandas/io/formats/format.py +++ b/pandas/io/formats/format.py @@ -27,8 +27,6 @@ ) from unicodedata import east_asian_width -from dateutil.tz.tz import tzutc -from dateutil.zoneinfo import tzfile import numpy as np from pandas._config.config import get_option, set_option @@ -75,6 +73,9 @@ from pandas.io.formats.printing import adjoin, justify, pprint_thing if TYPE_CHECKING: + from dateutil.tz.tz import tzutc # noqa:F401 + from dateutil.zoneinfo import tzfile # noqa:F401 + from pandas import Series, DataFrame, Categorical formatters_type = Union[ @@ -1553,7 +1554,7 @@ def _is_dates_only( def _format_datetime64( x: Union[NaTType, Timestamp], - tz: Optional[Union[tzfile, tzutc]] = None, + tz: Optional[Union["tzfile", "tzutc"]] = None, nat_rep: str = "NaT", ) -> str: if x is None or (is_scalar(x) and isna(x)): From a34564f67938a146779f4e57cb5597e1d25c4da4 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sun, 8 Sep 2019 16:03:33 -0700 Subject: [PATCH 2/2] change to tzinfo --- pandas/io/formats/format.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pandas/io/formats/format.py b/pandas/io/formats/format.py index 5c7050a907260..4a66ad48d1318 100644 --- a/pandas/io/formats/format.py +++ b/pandas/io/formats/format.py @@ -5,6 +5,7 @@ import codecs from contextlib import contextmanager +from datetime import tzinfo import decimal from functools import partial from io import StringIO @@ -73,9 +74,6 @@ from pandas.io.formats.printing import adjoin, justify, pprint_thing if TYPE_CHECKING: - from dateutil.tz.tz import tzutc # noqa:F401 - from dateutil.zoneinfo import tzfile # noqa:F401 - from pandas import Series, DataFrame, Categorical formatters_type = Union[ @@ -1553,9 +1551,7 @@ def _is_dates_only( def _format_datetime64( - x: Union[NaTType, Timestamp], - tz: Optional[Union["tzfile", "tzutc"]] = None, - nat_rep: str = "NaT", + x: Union[NaTType, Timestamp], tz: Optional[tzinfo] = None, nat_rep: str = "NaT" ) -> str: if x is None or (is_scalar(x) and isna(x)): return nat_rep