patito.Relation.with_missing_defaultable_columns

Relation.with_missing_defaultable_columns(include=None, exclude=None)

Add missing defaultable columns filled with the default values of correct type.

Make sure to invoke Relation.set_model() with the correct model schema before executing Relation.with_missing_default_columns().

Parameters
  • include (Optional[Iterable[str]]) – If provided, only fill in default values for missing columns part of this collection of column names.

  • exclude (Optional[Iterable[str]]) – If provided, do not fill in default values for missing columns part of this collection of column names.

Returns

New relation where missing columns with default values according to the schema have been filled in.

Return type

Relation

Example

>>> import patito as pt
>>> class MyModel(pt.Model):
...     non_default_column: int
...     another_non_default_column: int
...     default_column: int = 42
...     another_default_column: int = 42
...
>>> relation = pt.Relation(
...     "select 1 as non_default_column, 2 as default_column"
... )
>>> relation.to_df()
shape: (1, 2)
┌────────────────────┬────────────────┐
│ non_default_column ┆ default_column │
│ ---                ┆ ---            │
│ i64                ┆ i64            │
╞════════════════════╪════════════════╡
│ 1                  ┆ 2              │
└────────────────────┴────────────────┘
>>> relation.set_model(MyModel).with_missing_defaultable_columns().to_df()
shape: (1, 3)
┌────────────────────┬────────────────┬────────────────────────┐
│ non_default_column ┆ default_column ┆ another_default_column │
│ ---                ┆ ---            ┆ ---                    │
│ i64                ┆ i64            ┆ i64                    │
╞════════════════════╪════════════════╪════════════════════════╡
│ 1                  ┆ 2              ┆ 42                     │
└────────────────────┴────────────────┴────────────────────────┘