Pandera uses its own DataType interface to abstract data structures like Apache Spark, Apache Arrow, and xarray. This allows for a standardized API and the ability to define logical data types (e.g., IPAddress) on top of physical data types (e.g., str).
Key components:
pandera.dtypes: Defines semantic types for framework engines.pandera.engines.numpy_engine: Implements NumPy datatypes.pandera.engines.pandas_engine: Implements Pandas-specific datatypes (e.g., pd.DatetimeTZDtype).
Users can extend the interface by modifying data type checks, modifying the behavior of the coerce argument in DataFrameSchema, or adding custom data types.