luminadb.table module

Table

class luminadb.table.Table(parent: Database, table: str, columns: Iterable[Column] | None = None)[source]

Bases: object

Table. Make sure you remember how the table goes.

add_column(column: Column | BuilderColumn)[source]

Add column to table

property auto_commit

Auto commit state of this instance

columns()[source]

Table columns

commit()[source]

Commit changes

count()[source]

Count how much objects/rows stored in this table

delete(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, limit: int = 0, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None)[source]

Delete row or rows

Parameters:
  • where (Condition, optional) – Condition to determine deletion See Signature class about conditional stuff. Defaults to None.

  • limit (int, optional) – Limit deletion by integer. Defaults to 0.

  • order (Optional[Orders], optional) – Order of deletion. Defaults to None.

Returns:

Rows affected

Return type:

int

delete_one(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None)[source]

Delete a row

Parameters:
  • where (Condition, optional) – Conditional to determine deletion.

  • None. (Defaults to)

  • order (Optional[Orders], optional) – Order of deletion. Defaults to None.

property deleted

Is table deleted

property force_dirty

Force dirty state, whether .selecting() on dirty/uncommitted data is allowed or not

force_nodelete()[source]

Force β€œundelete” table. Used if table was mistakenly assigned as deleted.

property in_transaction

Returns True if the table is in an active transaction.

insert(data: dict[str, Any])[source]

Insert data to current table

Parameters:

data (Data) – Data to insert. Make sure it’s compatible with the table.

Returns:

Last rowid

Return type:

int

insert_many(datas: list[dict[str, Any]])[source]

Alias to insert_multiple

insert_multiple(datas: list[dict[str, Any]])[source]

Insert multiple values

Parameters:

datas (Iterable[Data]) – Data to be inserted.

property name

Table name

paginate_select(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: tuple[str, ...] | Literal['*'] = '*', page: int = 0, length: int = 10, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None, flatten: Literal[False] = False) Generator[list[Row[Any]], None, None][source]
paginate_select(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: str | tuple[str] = '_COLUMN', page: int = 0, length: int = 10, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None, flatten: Literal[False] = False) Generator[list[Any], None, None]
paginate_select(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: tuple[str, ...] | Literal['*'] = '*', page: int = 0, length: int = 10, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None, flatten: Literal[True] = True) Generator[Row[list[Any]], None, None]

Paginate select

Parameters:
  • where (Condition, optional) – Confitions to use. Defaults to None.

  • what (OnlyColumn, optional) – Select what you want. Default to None.

  • page (int) – Which page number be returned first

  • length (int, optional) – Pagination length. Defaults to 10.

  • order (Optional[Orders], optional) – Order. Defaults to None.

  • flatten (bool) – Flatten returned data into dict of lists. Defaults to False.

Yields:

Generator[Queries, None, None] – Step-by-step paginated result.

rename_column(old_column: str, new_column: str)[source]

Rename existing column to new column

rollback()[source]

Rollback

select(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: tuple[str, ...] | Literal['*'] = '*', limit: int = 0, offset: int = 0, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None, flatten: Literal[False] = False) list[Row[Any]][source]
select(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: tuple[str, ...] | Literal['*'] = '*', limit: int = 0, offset: int = 0, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None, flatten: Literal[True] = True) Row[list[Any]]
select(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: ParsedFn = _null, limit: int = 0, offset: int = 0, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None, flatten: Literal[False] = False) Any
select(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: str | tuple[str] = '_COLUMN', limit: int = 0, offset: int = 0, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None, flatten: Literal[False] = False) list[Any]

Select data in current table. Bare .select() returns all data.

Parameters:
  • where (Condition, optional) – Conditions to used. Defaults to None.

  • what – (OnlyColumn, ParsedFn, optional): Select what you want. Default to None.

  • limit (int, optional) – Limit of select. Defaults to 0.

  • offset (int, optional) – Offset. Defaults to 0

  • order (Optional[Orders], optional) – Selection order. Defaults to None.

  • flatten (bool) – Flatten returned data into dict of lists. Defaults to False.

Returns:

Selected data

Return type:

Queries

select_one(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: ParsedFn = _null, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None) Any[source]
select_one(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: tuple[str, ...] | Literal['*'] = '*', order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None) Row[Any]
select_one(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, what: str | tuple[str] = '_COLUMN', order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None) Any

Select one data

Parameters:
  • where (Condition, optional) – Condition to use. Defaults to None.

  • what – (OnlyColumn, optional): Select what you want. Default to None.

  • order (Optional[Orders], optional) – Order of selection. Defaults to None.

Returns:

Selected data

Return type:

Any

subquery(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None, columns: tuple[str, ...] | Literal['*'] | str, limit: int = 0) SubQuery[source]

Push subquery to current .select() of other table

update(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, data: dict[str, Any] | None = None, limit: int = 0, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None)[source]

Update rows of current table

Parameters:
  • data (Data) – New data to update

  • where (Condition, optional) – Condition dictionary. See Signature about how condition works. Defaults to None.

  • limit (int, optional) – Limit updates. Defaults to 0.

  • order (Optional[Orders], optional) – Order of change. Defaults to None.

Returns:

Rows affected

Return type:

int

update_one(where: dict[str, Signature | ParsedFn | SubQuery | Any] | list[tuple[str, Signature | SubQuery | ParsedFn]] | None = None, data: dict[str, Any] | None = None, order: tuple[tuple[str, Literal['asc', 'desc']], ...] | tuple[str, Literal['asc', 'desc']] | None = None) int[source]

Update 1 data only