106
106
PeriodArray ,
107
107
TimedeltaArray ,
108
108
)
109
- from pandas .core .arrays .sparse import SparseDtype
110
109
from pandas .core .base import PandasObject
111
110
import pandas .core .common as com
112
111
from pandas .core .computation import expressions
@@ -2329,7 +2328,7 @@ def maybe_coerce_values(values: ArrayLike) -> ArrayLike:
2329
2328
return values
2330
2329
2331
2330
2332
- def get_block_type (dtype : DtypeObj ):
2331
+ def get_block_type (dtype : DtypeObj ) -> type [ Block ] :
2333
2332
"""
2334
2333
Find the appropriate Block subclass to use for the given values and dtype.
2335
2334
@@ -2341,30 +2340,23 @@ def get_block_type(dtype: DtypeObj):
2341
2340
-------
2342
2341
cls : class, subclass of Block
2343
2342
"""
2344
- # We use kind checks because it is much more performant
2345
- # than is_foo_dtype
2346
- kind = dtype .kind
2347
-
2348
- cls : type [Block ]
2349
-
2350
- if isinstance (dtype , SparseDtype ):
2351
- # Need this first(ish) so that Sparse[datetime] is sparse
2352
- cls = ExtensionBlock
2353
- elif isinstance (dtype , DatetimeTZDtype ):
2354
- cls = DatetimeTZBlock
2343
+ if isinstance (dtype , DatetimeTZDtype ):
2344
+ return DatetimeTZBlock
2355
2345
elif isinstance (dtype , PeriodDtype ):
2356
- cls = NDArrayBackedExtensionBlock
2346
+ return NDArrayBackedExtensionBlock
2357
2347
elif isinstance (dtype , ExtensionDtype ):
2358
2348
# Note: need to be sure PandasArray is unwrapped before we get here
2359
- cls = ExtensionBlock
2349
+ return ExtensionBlock
2360
2350
2361
- elif kind in ["M" , "m" ]:
2362
- cls = DatetimeLikeBlock
2363
- elif kind in ["f" , "c" , "i" , "u" , "b" ]:
2364
- cls = NumericBlock
2365
- else :
2366
- cls = ObjectBlock
2367
- return cls
2351
+ # We use kind checks because it is much more performant
2352
+ # than is_foo_dtype
2353
+ kind = dtype .kind
2354
+ if kind in "Mm" :
2355
+ return DatetimeLikeBlock
2356
+ elif kind in "fciub" :
2357
+ return NumericBlock
2358
+
2359
+ return ObjectBlock
2368
2360
2369
2361
2370
2362
def new_block_2d (
0 commit comments