|
from __future__ import annotations |
|
|
|
from typing import Callable |
|
|
|
from pandas.compat._optional import import_optional_dependency |
|
|
|
import pandas as pd |
|
|
|
|
|
def _arrow_dtype_mapping() -> dict: |
|
pa = import_optional_dependency("pyarrow") |
|
return { |
|
pa.int8(): pd.Int8Dtype(), |
|
pa.int16(): pd.Int16Dtype(), |
|
pa.int32(): pd.Int32Dtype(), |
|
pa.int64(): pd.Int64Dtype(), |
|
pa.uint8(): pd.UInt8Dtype(), |
|
pa.uint16(): pd.UInt16Dtype(), |
|
pa.uint32(): pd.UInt32Dtype(), |
|
pa.uint64(): pd.UInt64Dtype(), |
|
pa.bool_(): pd.BooleanDtype(), |
|
pa.string(): pd.StringDtype(), |
|
pa.float32(): pd.Float32Dtype(), |
|
pa.float64(): pd.Float64Dtype(), |
|
} |
|
|
|
|
|
def arrow_string_types_mapper() -> Callable: |
|
pa = import_optional_dependency("pyarrow") |
|
|
|
return { |
|
pa.string(): pd.StringDtype(storage="pyarrow_numpy"), |
|
pa.large_string(): pd.StringDtype(storage="pyarrow_numpy"), |
|
}.get |
|
|