From 4c1ca95dcf9d8db21b73076c5e420feebbe1f612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Thu, 14 Jul 2022 22:01:10 -0400 Subject: [PATCH 1/2] TYP: freq and na_value --- pandas/core/arrays/datetimes.py | 7 +++++-- pandas/core/frame.py | 2 +- pandas/core/indexes/datetimes.py | 3 ++- pandas/core/internals/array_manager.py | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pandas/core/arrays/datetimes.py b/pandas/core/arrays/datetimes.py index 106afcc3c12ea..f4467b67753c2 100644 --- a/pandas/core/arrays/datetimes.py +++ b/pandas/core/arrays/datetimes.py @@ -264,7 +264,10 @@ def _validate_dtype(cls, values, dtype): # error: Signature of "_simple_new" incompatible with supertype "NDArrayBacked" @classmethod def _simple_new( # type: ignore[override] - cls, values: np.ndarray, freq: BaseOffset | None = None, dtype=DT64NS_DTYPE + cls, + values: np.ndarray, + freq: str | BaseOffset | lib.NoDefault | None = None, + dtype=DT64NS_DTYPE, ) -> DatetimeArray: assert isinstance(values, np.ndarray) assert dtype.kind == "M" @@ -291,7 +294,7 @@ def _from_sequence_not_strict( dtype=None, copy: bool = False, tz=None, - freq=lib.no_default, + freq: str | BaseOffset | lib.NoDefault | None = lib.no_default, dayfirst: bool = False, yearfirst: bool = False, ambiguous="raise", diff --git a/pandas/core/frame.py b/pandas/core/frame.py index ead4ea744c647..3f13c220fcb12 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -1746,7 +1746,7 @@ def to_numpy( self, dtype: npt.DTypeLike | None = None, copy: bool = False, - na_value=lib.no_default, + na_value: object = lib.no_default, ) -> np.ndarray: """ Convert the DataFrame to a NumPy array. diff --git a/pandas/core/indexes/datetimes.py b/pandas/core/indexes/datetimes.py index f776585926024..3a7adb19f1c01 100644 --- a/pandas/core/indexes/datetimes.py +++ b/pandas/core/indexes/datetimes.py @@ -25,6 +25,7 @@ lib, ) from pandas._libs.tslibs import ( + BaseOffset, Resolution, periods_per_day, timezones, @@ -312,7 +313,7 @@ def isocalendar(self) -> DataFrame: def __new__( cls, data=None, - freq=lib.no_default, + freq: str | BaseOffset | lib.NoDefault = lib.no_default, tz=None, normalize: bool = False, closed=None, diff --git a/pandas/core/internals/array_manager.py b/pandas/core/internals/array_manager.py index 3a8ed54d6c634..88f81064b826f 100644 --- a/pandas/core/internals/array_manager.py +++ b/pandas/core/internals/array_manager.py @@ -1132,7 +1132,7 @@ def as_array( self, dtype=None, copy: bool = False, - na_value=lib.no_default, + na_value: object = lib.no_default, ) -> np.ndarray: """ Convert the blockmanager data into an numpy array. From 13e487f5fb996e437e7d890456c9dcf2324e32cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Fri, 15 Jul 2022 15:22:46 -0400 Subject: [PATCH 2/2] _simple_new --- pandas/core/arrays/datetimelike.py | 4 +++- pandas/core/arrays/datetimes.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pandas/core/arrays/datetimelike.py b/pandas/core/arrays/datetimelike.py index 0f88ad9811bf0..2fbf8f5bfe87d 100644 --- a/pandas/core/arrays/datetimelike.py +++ b/pandas/core/arrays/datetimelike.py @@ -2190,7 +2190,9 @@ def validate_periods(periods): return periods -def validate_inferred_freq(freq, inferred_freq, freq_infer): +def validate_inferred_freq( + freq, inferred_freq, freq_infer +) -> tuple[BaseOffset | None, bool]: """ If the user passes a freq and another freq is inferred from passed data, require that they match. diff --git a/pandas/core/arrays/datetimes.py b/pandas/core/arrays/datetimes.py index f4467b67753c2..d1930d91c1d3e 100644 --- a/pandas/core/arrays/datetimes.py +++ b/pandas/core/arrays/datetimes.py @@ -266,7 +266,7 @@ def _validate_dtype(cls, values, dtype): def _simple_new( # type: ignore[override] cls, values: np.ndarray, - freq: str | BaseOffset | lib.NoDefault | None = None, + freq: BaseOffset | None = None, dtype=DT64NS_DTYPE, ) -> DatetimeArray: assert isinstance(values, np.ndarray)