@@ -8464,13 +8464,13 @@ def isin(self, values) -> "DataFrame":
8464
8464
8465
8465
@functools .singledispatch
8466
8466
def create_block_manager (
8467
- data : Any ,
8468
- df : DataFrame ,
8469
- index : Optional [Axes ],
8470
- columns : Optional [Axes ],
8471
- dtype : Optional [Dtype ],
8472
- copy : bool
8473
- ) -> BlockManager :
8467
+ data : Any ,
8468
+ df : DataFrame ,
8469
+ index : Optional [Axes ],
8470
+ columns : Optional [Axes ],
8471
+ dtype : Optional [Dtype ],
8472
+ copy : bool ,
8473
+ ) -> BlockManager :
8474
8474
"""
8475
8475
Convert an object into a BlockManager. Used inside the DataFrame constructor
8476
8476
so if you want to provide a custom way to convert from your objec to a DataFrame
@@ -8481,44 +8481,46 @@ def create_block_manager(
8481
8481
arr = np .array (data , dtype = dtype , copy = copy )
8482
8482
except (ValueError , TypeError ) as err :
8483
8483
exc = TypeError (
8484
- "DataFrame constructor called with "
8485
- f"incompatible data and dtype: { err } "
8484
+ "DataFrame constructor called with " f"incompatible data and dtype: { err } "
8486
8485
)
8487
8486
raise exc from err
8488
8487
8489
8488
if arr .ndim == 0 and index is not None and columns is not None :
8490
- values = cast_scalar_to_array (
8491
- (len (index ), len (columns )), data , dtype = dtype
8492
- )
8493
- return init_ndarray (
8494
- values , index , columns , dtype = values .dtype , copy = False
8495
- )
8489
+ values = cast_scalar_to_array ((len (index ), len (columns )), data , dtype = dtype )
8490
+ return init_ndarray (values , index , columns , dtype = values .dtype , copy = False )
8496
8491
else :
8497
8492
raise ValueError ("DataFrame constructor not properly called!" )
8498
8493
8494
+
8499
8495
@create_block_manager .register
8500
8496
def _create_block_manager_none (data : None , * args , ** kwargs ):
8501
8497
return create_block_manager ({}, * args , ** kwargs )
8502
8498
8499
+
8503
8500
@create_block_manager .register
8504
8501
def _create_block_manager_dataframe (data : DataFrame , * args , ** kwargs ):
8505
8502
return create_block_manager (data ._data , * args , ** kwargs )
8506
8503
8507
8504
8508
8505
@create_block_manager .register
8509
- def _create_block_manager_dataframe (data : BlockManager , df , index , columns , dtype , copy ):
8506
+ def _create_block_manager_dataframe (
8507
+ data : BlockManager , df , index , columns , dtype , copy
8508
+ ):
8510
8509
mgr = df ._init_mgr (
8511
8510
data , axes = dict (index = index , columns = columns ), dtype = dtype , copy = copy
8512
8511
)
8513
8512
return mgr
8514
8513
8514
+
8515
8515
@create_block_manager .register
8516
8516
def _create_block_manager_dict (data : dict , df , index , columns , dtype , copy ):
8517
8517
return init_dict (data , index , columns , dtype = dtype )
8518
8518
8519
8519
8520
8520
@create_block_manager .register
8521
- def _create_block_manager_masked_array (data : ma .MaskedArray , df , index , columns , dtype , copy ):
8521
+ def _create_block_manager_masked_array (
8522
+ data : ma .MaskedArray , df , index , columns , dtype , copy
8523
+ ):
8522
8524
mask = ma .getmaskarray (data )
8523
8525
if mask .any ():
8524
8526
data , fill_value = maybe_upcast (data , copy = True )
@@ -8530,13 +8532,18 @@ def _create_block_manager_masked_array(data: ma.MaskedArray, df, index, columns,
8530
8532
8531
8533
8532
8534
@create_block_manager .register
8533
- def _create_block_manager_masked_record (data : mrecords .MaskedRecords , df , index , columns , dtype , copy ):
8535
+ def _create_block_manager_masked_record (
8536
+ data : mrecords .MaskedRecords , df , index , columns , dtype , copy
8537
+ ):
8534
8538
return masked_rec_array_to_mgr (data , index , columns , dtype , copy )
8535
8539
8540
+
8536
8541
@create_block_manager .register (np .ndarray )
8537
8542
@create_block_manager .register (Series )
8538
8543
@create_block_manager .register (Index )
8539
- def _create_block_manager_array_series_index (data : Union [np .ndarray , Series , Index ], df , index , columns , dtype , copy ):
8544
+ def _create_block_manager_array_series_index (
8545
+ data : Union [np .ndarray , Series , Index ], df , index , columns , dtype , copy
8546
+ ):
8540
8547
if data .dtype .names :
8541
8548
data_columns = list (data .dtype .names )
8542
8549
data = {k : data [k ] for k in data_columns }
@@ -8547,23 +8554,25 @@ def _create_block_manager_array_series_index(data: Union[np.ndarray, Series, Ind
8547
8554
return init_dict ({data .name : data }, index , columns , dtype = dtype )
8548
8555
return init_ndarray (data , index , columns , dtype = dtype , copy = copy )
8549
8556
8557
+
8550
8558
class _IterableExceptStringOrBytesMeta (type ):
8551
8559
def __subclasscheck__ (cls , sub : Type ) -> bool :
8552
- return (
8553
- not issubclass (sub , (str , bytes ))
8554
- and issubclass (sub , abc .Iterable )
8555
- )
8560
+ return not issubclass (sub , (str , bytes )) and issubclass (sub , abc .Iterable )
8561
+
8556
8562
8557
8563
class _IterableExceptStringOrBytes (metaclass = _IterableExceptStringOrBytesMeta ):
8558
8564
"""
8559
8565
Class that is subclass of iterable but not of str or bytes to use for singledispatch
8560
8566
registration
8561
8567
"""
8568
+
8562
8569
pass
8563
8570
8564
8571
8565
8572
@create_block_manager .register
8566
- def _create_block_manager_iterable (data : _IterableExceptStringOrBytes , df , index , columns , dtype , copy ):
8573
+ def _create_block_manager_iterable (
8574
+ data : _IterableExceptStringOrBytes , df , index , columns , dtype , copy
8575
+ ):
8567
8576
if not isinstance (data , (abc .Sequence , ExtensionArray )):
8568
8577
data = list (data )
8569
8578
if len (data ) > 0 :
0 commit comments