pavise.pandas

Pandas backend for type-parameterized DataFrame with Protocol-based schema validation.

class pavise.pandas.DataFrame(data=None, *args, strict=False, **kwargs)[source]

Bases: DataFrame, Generic[SchemaT_co]

Type-parameterized DataFrame with runtime validation for pandas.

Usage:

# Static type checking only
def process(df: DataFrame[UserSchema]) -> DataFrame[UserSchema]:
    return df

# Runtime validation
validated = DataFrame[UserSchema](raw_df)

The type parameter is covariant, allowing structural subtyping. DataFrame[ChildSchema] is compatible with DataFrame[ParentSchema] when ChildSchema has all columns of ParentSchema.

Parameters:
classmethod __class_getitem__(schema)[source]

Create a new DataFrame class with schema validation.

Parameters:

schema (type)

static __new__(cls, data=None, *args, strict=False, **kwargs)[source]

Create a new DataFrame instance.

Parameters:
__init__(data=None, *args, strict=False, **kwargs)[source]

Initialize DataFrame with optional schema validation.

Parameters:
  • data (Any) – Data to create DataFrame from

  • *args (Any) – Additional arguments passed to pd.DataFrame

  • strict (bool) – If True, raise error on extra columns not in schema

  • **kwargs (Any) – Additional keyword arguments passed to pd.DataFrame

Raises:
Return type:

None

classmethod make_empty()[source]

Create an empty DataFrame with columns from the schema.

Returns:

Empty DataFrame with correct column types

Return type:

DataFrame