from pandas.core.internals.api import make_block # 2023-09-18 pyarrow uses this
|
from pandas.core.internals.array_manager import (
|
ArrayManager,
|
SingleArrayManager,
|
)
|
from pandas.core.internals.base import (
|
DataManager,
|
SingleDataManager,
|
)
|
from pandas.core.internals.concat import concatenate_managers
|
from pandas.core.internals.managers import (
|
BlockManager,
|
SingleBlockManager,
|
)
|
|
__all__ = [
|
"Block", # pylint: disable=undefined-all-variable
|
"DatetimeTZBlock", # pylint: disable=undefined-all-variable
|
"ExtensionBlock", # pylint: disable=undefined-all-variable
|
"make_block",
|
"DataManager",
|
"ArrayManager",
|
"BlockManager",
|
"SingleDataManager",
|
"SingleBlockManager",
|
"SingleArrayManager",
|
"concatenate_managers",
|
]
|
|
|
def __getattr__(name: str):
|
# GH#55139
|
import warnings
|
|
if name == "create_block_manager_from_blocks":
|
# GH#33892
|
warnings.warn(
|
f"{name} is deprecated and will be removed in a future version. "
|
"Use public APIs instead.",
|
DeprecationWarning,
|
# https://github.com/pandas-dev/pandas/pull/55139#pullrequestreview-1720690758
|
# on hard-coding stacklevel
|
stacklevel=2,
|
)
|
from pandas.core.internals.managers import create_block_manager_from_blocks
|
|
return create_block_manager_from_blocks
|
|
if name in [
|
"NumericBlock",
|
"ObjectBlock",
|
"Block",
|
"ExtensionBlock",
|
"DatetimeTZBlock",
|
]:
|
warnings.warn(
|
f"{name} is deprecated and will be removed in a future version. "
|
"Use public APIs instead.",
|
DeprecationWarning,
|
# https://github.com/pandas-dev/pandas/pull/55139#pullrequestreview-1720690758
|
# on hard-coding stacklevel
|
stacklevel=2,
|
)
|
if name == "NumericBlock":
|
from pandas.core.internals.blocks import NumericBlock
|
|
return NumericBlock
|
elif name == "DatetimeTZBlock":
|
from pandas.core.internals.blocks import DatetimeTZBlock
|
|
return DatetimeTZBlock
|
elif name == "ExtensionBlock":
|
from pandas.core.internals.blocks import ExtensionBlock
|
|
return ExtensionBlock
|
elif name == "Block":
|
from pandas.core.internals.blocks import Block
|
|
return Block
|
else:
|
from pandas.core.internals.blocks import ObjectBlock
|
|
return ObjectBlock
|
|
raise AttributeError(f"module 'pandas.core.internals' has no attribute '{name}'")
|