TYP: Added cast to ABC EA types (#38586) · pandas-dev/pandas@c6b05c3 (original) (raw)
`@@ -5,6 +5,7 @@
`
5
5
``
6
6
`if TYPE_CHECKING:
`
7
7
`from pandas import (
`
``
8
`+
Categorical,
`
8
9
`CategoricalIndex,
`
9
10
`DataFrame,
`
10
11
`DatetimeIndex,
`
`@@ -19,6 +20,13 @@
`
19
20
`TimedeltaIndex,
`
20
21
`UInt64Index,
`
21
22
` )
`
``
23
`+
from pandas.core.arrays import (
`
``
24
`+
DatetimeArray,
`
``
25
`+
ExtensionArray,
`
``
26
`+
PandasArray,
`
``
27
`+
PeriodArray,
`
``
28
`+
TimedeltaArray,
`
``
29
`+
)
`
22
30
`from pandas.core.generic import NDFrame
`
23
31
``
24
32
``
`@@ -111,16 +119,32 @@ def _check(cls, inst) -> bool:
`
111
119
`"Type[DataFrame]", create_pandas_abc_type("ABCDataFrame", "_typ", ("dataframe",))
`
112
120
`)
`
113
121
``
114
``
`-
ABCCategorical = create_pandas_abc_type("ABCCategorical", "_typ", ("categorical"))
`
115
``
`-
ABCDatetimeArray = create_pandas_abc_type("ABCDatetimeArray", "_typ", ("datetimearray"))
`
116
``
`-
ABCTimedeltaArray = create_pandas_abc_type(
`
117
``
`-
"ABCTimedeltaArray", "_typ", ("timedeltaarray")
`
118
``
`-
)
`
119
``
`-
ABCPeriodArray = create_pandas_abc_type("ABCPeriodArray", "_typ", ("periodarray",))
`
120
``
`-
ABCExtensionArray = create_pandas_abc_type(
`
121
``
`-
"ABCExtensionArray",
`
122
``
`-
"_typ",
`
123
``
`-
Note: IntervalArray and SparseArray are included bc they have _typ="extension"
`
124
``
`-
{"extension", "categorical", "periodarray", "datetimearray", "timedeltaarray"},
`
125
``
`-
)
`
126
``
`-
ABCPandasArray = create_pandas_abc_type("ABCPandasArray", "_typ", ("npy_extension",))
`
``
122
`+
ABCCategorical = cast(
`
``
123
`+
"Type[Categorical]",
`
``
124
`+
create_pandas_abc_type("ABCCategorical", "_typ", ("categorical")),
`
``
125
`+
)
`
``
126
`+
ABCDatetimeArray = cast(
`
``
127
`+
"Type[DatetimeArray]",
`
``
128
`+
create_pandas_abc_type("ABCDatetimeArray", "_typ", ("datetimearray")),
`
``
129
`+
)
`
``
130
`+
ABCTimedeltaArray = cast(
`
``
131
`+
"Type[TimedeltaArray]",
`
``
132
`+
create_pandas_abc_type("ABCTimedeltaArray", "_typ", ("timedeltaarray")),
`
``
133
`+
)
`
``
134
`+
ABCPeriodArray = cast(
`
``
135
`+
"Type[PeriodArray]",
`
``
136
`+
create_pandas_abc_type("ABCPeriodArray", "_typ", ("periodarray",)),
`
``
137
`+
)
`
``
138
`+
ABCExtensionArray = cast(
`
``
139
`+
"Type[ExtensionArray]",
`
``
140
`+
create_pandas_abc_type(
`
``
141
`+
"ABCExtensionArray",
`
``
142
`+
"_typ",
`
``
143
`+
Note: IntervalArray and SparseArray are included bc they have _typ="extension"
`
``
144
`+
{"extension", "categorical", "periodarray", "datetimearray", "timedeltaarray"},
`
``
145
`+
),
`
``
146
`+
)
`
``
147
`+
ABCPandasArray = cast(
`
``
148
`+
"Type[PandasArray]",
`
``
149
`+
create_pandas_abc_type("ABCPandasArray", "_typ", ("npy_extension",)),
`
``
150
`+
)
`