pola-rs/polars · error · InvalidArgument

{dtype!r} is not a valid polars datatype

Error message

{dtype!r} is not a valid polars datatype

What it means

Validation in the legacy `dataframes` strategy: an element of the dtype sequence is not a recognized Polars datatype (is_polars_dtype returned false). Pass only dtypes obtained from polars.datatypes or the polars module.

Source

Thrown at py-polars/src/polars/testing/parametric/strategies/legacy.py:106

        cols = st.integers(min_value=min_cols, max_value=max_cols).example()
    if isinstance(cols, int):
        names: Sequence[str] = [f"col{n}" for n in range(cols)]
    else:
        names = cols
    n_cols = len(names)

    if dtype is None:
        dtypes: Sequence[PolarsDataType | None] = [None] * n_cols
    elif is_polars_dtype(dtype):
        dtypes = [dtype] * n_cols
    elif isinstance(dtype, Sequence):
        if (n_dtypes := len(dtype)) != n_cols:
            msg = f"given {n_dtypes} dtypes for {n_cols} names"
            raise InvalidArgument(msg)
        dtypes = dtype
    else:
        msg = f"{dtype!r} is not a valid polars datatype"
        raise InvalidArgument(msg)

    # init list of named/typed columns
    return [
        column(name=nm, dtype=tp, unique=unique)
        for nm, tp in zip(names, dtypes, strict=True)
    ]


@deprecated("`create_list_strategy` is deprecated; use `lists` instead.")
def create_list_strategy(
    inner_dtype: PolarsDataType | None = None,
    *,
    select_from: Sequence[Any] | None = None,
    size: int | None = None,
    min_size: int = 0,
    max_size: int | None = None,
    unique: bool = False,
) -> SearchStrategy[list[Any]]:

View on GitHub (pinned to 9b5d73fd00)

Solutions

  1. Pass a valid polars DataType, e.g. `pl.Int64`; fix typos or unsupported dtype values.
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at py-polars/src/polars/testing/parametric/strategies/legacy.py:106 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of pola-rs/polars@9b5d73fd00 (2026-08-19). Data as JSON: /api/errors/c182867bac341ff7. Report an issue: GitHub.