patito.duckdb.Relation.__str__

Relation.__str__()

Return string representation of Relation object.

Includes an expression tree, the result columns, and a result preview.

Return type:

str

Example

>>> import patito as pt
>>> products = pt.duckdb.Relation(
...     pt.DataFrame(
...         {
...             "product_name": ["apple", "red_apple", "banana", "oranges"],
...             "supplier_id": [2, 2, 1, 3],
...         }
...     )
... ).set_alias("products")
>>> print(str(products))  # xdoctest: +SKIP
---------------------
--- Relation Tree ---
---------------------
arrow_scan(94609350519648, 140317161740928, 140317161731168, 1000000)
---------------------
-- Result Columns  --
---------------------
- product_name (VARCHAR)
- supplier_id (BIGINT)
---------------------
-- Result Preview  --
---------------------
product_name    supplier_id
VARCHAR BIGINT
[ Rows: 4]
apple   2
red_apple       2
banana  1
oranges 3
>>> suppliers = pt.duckdb.Relation(
...     pt.DataFrame(
...         {
...             "id": [1, 2],
...             "supplier_name": ["Banana Republic", "Applies Inc."],
...         }
...     )
... ).set_alias("suppliers")
>>> relation = (
...     products.set_alias("p")
...     .inner_join(
...         suppliers.set_alias("s"),
...         on="p.supplier_id = s.id",
...     )
...     .aggregate(
...         "supplier_name",
...         num_products="count(product_name)",
...         group_by=["supplier_id", "supplier_name"],
...     )
... )
>>> print(str(relation))  # xdoctest: +SKIP
---------------------
--- Relation Tree ---
---------------------
Aggregate [supplier_name, count(product_name)]
  Join INNER p.supplier_id = s.id
    arrow_scan(94609350519648, 140317161740928, 140317161731168, 1000000)
    arrow_scan(94609436221024, 140317161740928, 140317161731168, 1000000)
---------------------
-- Result Columns  --
---------------------
- supplier_name (VARCHAR)
- num_products (BIGINT)
---------------------
-- Result Preview  --
---------------------
supplier_name   num_products
VARCHAR BIGINT
[ Rows: 2]
Applies Inc.    2
Banana Republic 1