Skip to main content

Predefined row factories

...

We have predefined row_factories for fast usage.

tuple_row

Instead of dict you can return tuple as a result.

from psqlpy.row_factories import tuple_row

...


async def main() -> None:
    conn_result = await psql_pool.execute(
        querystring=f"SELECT * FROM {table_name}",
    )
    tuple_res = conn_result.row_factory(row_factory=tuple_row)

    assert isinstance(tuple_res[0], tuple)

class_row

You can build class from database result.

from dataclasses import dataclass

from psqlpy.row_factories import class_row

...


@dataclass
class ValidationTestModel:
    id: int
    name: str


async def main() -> None:
    conn_result = await psql_pool.execute(
        querystring=f"SELECT * FROM {table_name}",
    )
    tuple_res = conn_result.row_factory(row_factory=class_row(ValidationTestModel))

    assert isinstance(tuple_res[0], ValidationTestModel)