35 lines
961 B
Python
35 lines
961 B
Python
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
|