From 44f0c1d56342b3ee2fe69870a35ac05a3292cc7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Thu, 29 Sep 2022 17:06:30 -0400 Subject: [PATCH 1/6] Revert "TYP: de-duplicate some type unions (#341)" This reverts commit f54d5ed6511f40d9051c71c3868929ec4a8559f3. --- pandas-stubs/_typing.pyi | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pandas-stubs/_typing.pyi b/pandas-stubs/_typing.pyi index b044efc55..ccdd58ffb 100644 --- a/pandas-stubs/_typing.pyi +++ b/pandas-stubs/_typing.pyi @@ -53,7 +53,7 @@ PandasScalar = Union[bytes, datetime.date, datetime.datetime, datetime.timedelta DatetimeLike = Union[datetime.date, datetime.datetime, np.datetime64, Timestamp] # dtypes -NpDtype = Union[str, np.dtype[np.generic], type[object]] +NpDtype = Union[str, np.dtype[np.generic], type[Union[str, complex, bool, object]]] Dtype = Union[ExtensionDtype, NpDtype] AstypeArg = Union[ExtensionDtype, npt.DTypeLike] # DtypeArg specifies all allowable dtypes in a functions its dtype argument @@ -135,8 +135,12 @@ Scalar = Union[ str, bytes, datetime.date, + datetime.datetime, datetime.timedelta, + bool, complex, + Timestamp, + Timedelta, ] ScalarT = TypeVar("ScalarT", bound=Scalar) # Refine the definitions below in 3.9 to use the specialized type. From 714a53a348e8eb8d1ee8ecff0ba43428b89bb92c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Thu, 29 Sep 2022 17:08:10 -0400 Subject: [PATCH 2/6] disable flake8-pyi's Y041 --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a2c6119be..e5c30bc42 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -30,7 +30,7 @@ repos: - flake8-pyi==22.8.2 types: [pyi] args: [ - --ignore=E301 E302 E305 E402 E501 E701 E704 F401 F811 W503 Y019 Y026 Y027 Y034 Y037, + --ignore=E301 E302 E305 E402 E501 E701 E704 F401 F811 W503 Y019 Y026 Y027 Y034 Y037 Y041, # TypeVars in private files are already private --per-file-ignores=_*.pyi:Y001 ] From 42b9abfb64891fc15adeacdf9e11ada6900b09f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Thu, 29 Sep 2022 18:41:32 -0400 Subject: [PATCH 3/6] int + float --- pandas-stubs/_typing.pyi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pandas-stubs/_typing.pyi b/pandas-stubs/_typing.pyi index ccdd58ffb..0220a8161 100644 --- a/pandas-stubs/_typing.pyi +++ b/pandas-stubs/_typing.pyi @@ -138,6 +138,8 @@ Scalar = Union[ datetime.datetime, datetime.timedelta, bool, + int, + float, complex, Timestamp, Timedelta, From 19dada405283fcc8eea9a8820771dfca84e36f30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Thu, 29 Sep 2022 19:14:43 -0400 Subject: [PATCH 4/6] mypy --- pandas-stubs/core/groupby/generic.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas-stubs/core/groupby/generic.pyi b/pandas-stubs/core/groupby/generic.pyi index f87914f35..f1f75a312 100644 --- a/pandas-stubs/core/groupby/generic.pyi +++ b/pandas-stubs/core/groupby/generic.pyi @@ -151,7 +151,7 @@ class DataFrameGroupBy(GroupBy): ) -> DataFrame: ... # error: Overload 3 for "apply" will never be used because its parameters overlap overload 1 @overload - def apply( # pyright: ignore[reportOverlappingOverload] + def apply( # typing: ignore[misc] self, func: Callable[[Iterable], float], *args, **kwargs ) -> DataFrame: ... def aggregate(self, arg: AggFuncTypeFrame = ..., *args, **kwargs) -> DataFrame: ... From 40ed1dc6f9908f17ad8ba908509799136afc8138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Thu, 29 Sep 2022 19:20:40 -0400 Subject: [PATCH 5/6] pyright and mypy need ignore comments at different lines --- pandas-stubs/core/groupby/generic.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pandas-stubs/core/groupby/generic.pyi b/pandas-stubs/core/groupby/generic.pyi index f1f75a312..a32544b80 100644 --- a/pandas-stubs/core/groupby/generic.pyi +++ b/pandas-stubs/core/groupby/generic.pyi @@ -141,17 +141,17 @@ class _DataFrameGroupByNonScalar(DataFrameGroupBy): class DataFrameGroupBy(GroupBy): def any(self, skipna: bool = ...) -> DataFrame: ... def all(self, skipna: bool = ...) -> DataFrame: ... + # error: Overload 3 for "apply" will never be used because its parameters overlap overload 1 @overload - def apply( + def apply( # typing: ignore[misc] self, func: Callable[[DataFrame], Scalar | list | dict], *args, **kwargs ) -> Series: ... @overload def apply( self, func: Callable[[DataFrame], Series | DataFrame], *args, **kwargs ) -> DataFrame: ... - # error: Overload 3 for "apply" will never be used because its parameters overlap overload 1 @overload - def apply( # typing: ignore[misc] + def apply( # pyright: ignore[reportOverlappingOverload] self, func: Callable[[Iterable], float], *args, **kwargs ) -> DataFrame: ... def aggregate(self, arg: AggFuncTypeFrame = ..., *args, **kwargs) -> DataFrame: ... From ffc00087de46d29c83b3a114e2690b00f3e12ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Thu, 29 Sep 2022 19:40:50 -0400 Subject: [PATCH 6/6] typing -> type --- pandas-stubs/core/groupby/generic.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas-stubs/core/groupby/generic.pyi b/pandas-stubs/core/groupby/generic.pyi index a32544b80..d51792674 100644 --- a/pandas-stubs/core/groupby/generic.pyi +++ b/pandas-stubs/core/groupby/generic.pyi @@ -143,7 +143,7 @@ class DataFrameGroupBy(GroupBy): def all(self, skipna: bool = ...) -> DataFrame: ... # error: Overload 3 for "apply" will never be used because its parameters overlap overload 1 @overload - def apply( # typing: ignore[misc] + def apply( # type: ignore[misc] self, func: Callable[[DataFrame], Scalar | list | dict], *args, **kwargs ) -> Series: ... @overload