From a13c62e579f38cc9c0e8914855b08c87f88980a6 Mon Sep 17 00:00:00 2001 From: Simon Hawkins Date: Sat, 9 Jan 2021 12:57:54 +0000 Subject: [PATCH] TYP: remove ignore from all_timeseries_index_generator --- pandas/_testing/__init__.py | 24 ++++++++++++++++-------- pandas/core/indexes/datetimes.py | 2 +- pandas/core/indexes/period.py | 2 +- pandas/core/indexes/timedeltas.py | 11 ++++++++--- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/pandas/_testing/__init__.py b/pandas/_testing/__init__.py index c51ceb750c338..0b24d89438088 100644 --- a/pandas/_testing/__init__.py +++ b/pandas/_testing/__init__.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from collections import Counter from datetime import datetime from functools import wraps @@ -5,7 +7,7 @@ import os import re import string -from typing import Callable, ContextManager, List, Type +from typing import TYPE_CHECKING, Callable, ContextManager, Iterable, List, Type import warnings import numpy as np @@ -90,6 +92,9 @@ ) from pandas.core.arrays import DatetimeArray, PeriodArray, TimedeltaArray, period_array +if TYPE_CHECKING: + from pandas import PeriodIndex, TimedeltaIndex + _N = 30 _K = 4 @@ -289,17 +294,17 @@ def makeFloatIndex(k=10, name=None): return Index(values * (10 ** np.random.randint(0, 9)), name=name) -def makeDateIndex(k=10, freq="B", name=None, **kwargs): +def makeDateIndex(k: int = 10, freq="B", name=None, **kwargs) -> DatetimeIndex: dt = datetime(2000, 1, 1) dr = bdate_range(dt, periods=k, freq=freq, name=name) return DatetimeIndex(dr, name=name, **kwargs) -def makeTimedeltaIndex(k=10, freq="D", name=None, **kwargs): +def makeTimedeltaIndex(k: int = 10, freq="D", name=None, **kwargs) -> TimedeltaIndex: return pd.timedelta_range(start="1 day", periods=k, freq=freq, name=name, **kwargs) -def makePeriodIndex(k=10, name=None, **kwargs): +def makePeriodIndex(k: int = 10, name=None, **kwargs) -> PeriodIndex: dt = datetime(2000, 1, 1) return pd.period_range(start=dt, periods=k, freq="B", name=name, **kwargs) @@ -402,7 +407,7 @@ def index_subclass_makers_generator(): yield from make_index_funcs -def all_timeseries_index_generator(k=10): +def all_timeseries_index_generator(k: int = 10) -> Iterable[Index]: """ Generator which can be iterated over to get instances of all the classes which represent time-series. @@ -411,10 +416,13 @@ def all_timeseries_index_generator(k=10): ---------- k: length of each of the index instances """ - make_index_funcs = [makeDateIndex, makePeriodIndex, makeTimedeltaIndex] + make_index_funcs: List[Callable[..., Index]] = [ + makeDateIndex, + makePeriodIndex, + makeTimedeltaIndex, + ] for make_index_func in make_index_funcs: - # pandas\_testing.py:1986: error: Cannot call function of unknown type - yield make_index_func(k=k) # type: ignore[operator] + yield make_index_func(k=k) # make series diff --git a/pandas/core/indexes/datetimes.py b/pandas/core/indexes/datetimes.py index 8609c61065327..b7f93295837e0 100644 --- a/pandas/core/indexes/datetimes.py +++ b/pandas/core/indexes/datetimes.py @@ -1089,7 +1089,7 @@ def date_range( def bdate_range( start=None, end=None, - periods=None, + periods: Optional[int] = None, freq="B", tz=None, normalize=True, diff --git a/pandas/core/indexes/period.py b/pandas/core/indexes/period.py index 8fe92ed757401..55e38a082aead 100644 --- a/pandas/core/indexes/period.py +++ b/pandas/core/indexes/period.py @@ -646,7 +646,7 @@ def memory_usage(self, deep: bool = False) -> int: def period_range( - start=None, end=None, periods=None, freq=None, name=None + start=None, end=None, periods: Optional[int] = None, freq=None, name=None ) -> PeriodIndex: """ Return a fixed frequency PeriodIndex. diff --git a/pandas/core/indexes/timedeltas.py b/pandas/core/indexes/timedeltas.py index 5cf1def014450..e80fde87ffdee 100644 --- a/pandas/core/indexes/timedeltas.py +++ b/pandas/core/indexes/timedeltas.py @@ -2,7 +2,7 @@ from pandas._libs import index as libindex, lib from pandas._libs.tslibs import Timedelta, to_offset -from pandas._typing import DtypeObj +from pandas._typing import DtypeObj, Optional from pandas.errors import InvalidIndexError from pandas.core.dtypes.common import TD64NS_DTYPE, is_scalar, is_timedelta64_dtype @@ -212,7 +212,12 @@ def inferred_type(self) -> str: def timedelta_range( - start=None, end=None, periods=None, freq=None, name=None, closed=None + start=None, + end=None, + periods: Optional[int] = None, + freq=None, + name=None, + closed=None, ) -> TimedeltaIndex: """ Return a fixed frequency TimedeltaIndex, with day as the default @@ -236,7 +241,7 @@ def timedelta_range( Returns ------- - rng : TimedeltaIndex + TimedeltaIndex Notes -----