:py:mod:`flow.record.adapter.sqlite` ==================================== .. py:module:: flow.record.adapter.sqlite Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: flow.record.adapter.sqlite.SqliteReader flow.record.adapter.sqlite.SqliteWriter Functions ~~~~~~~~~ .. autoapisummary:: :nosignatures: flow.record.adapter.sqlite.create_descriptor_table flow.record.adapter.sqlite.update_descriptor_columns flow.record.adapter.sqlite.prepare_insert_sql flow.record.adapter.sqlite.db_insert_record Attributes ~~~~~~~~~~ .. autoapisummary:: flow.record.adapter.sqlite.logger flow.record.adapter.sqlite.__usage__ flow.record.adapter.sqlite.FIELD_MAP flow.record.adapter.sqlite.SQLITE_FIELD_MAP .. py:data:: logger .. py:data:: __usage__ :value: Multiline-String .. raw:: html
Show Value .. code-block:: python """ SQLite adapter --- Write usage: rdump -w sqlite://[PATH]?batch_size=[BATCH_SIZE] Read usage: rdump sqlite://[PATH]?batch_size=[BATCH_SIZE] [PATH]: path to SQLite database file Optional parameters: [BATCH_SIZE]: number of records to read or write in a single transaction (default: 1000) """ .. raw:: html
.. py:data:: FIELD_MAP .. py:data:: SQLITE_FIELD_MAP .. py:function:: create_descriptor_table(con: sqlite3.Connection, descriptor: flow.record.RecordDescriptor) -> None Create table for a RecordDescriptor if it doesn't exists yet. .. py:function:: update_descriptor_columns(con: sqlite3.Connection, descriptor: flow.record.RecordDescriptor) -> None Update columns for descriptor table if new fields are added. .. py:function:: prepare_insert_sql(table_name: str, field_names: tuple[str]) -> str Return (cached) prepared SQL statement for inserting a record based on table name and field names. .. py:function:: db_insert_record(con: sqlite3.Connection, record: flow.record.Record) -> None Insert a record into the database. .. py:class:: SqliteReader(path: str, *, batch_size: str | int = 1000, selector: flow.record.selector.Selector | str | None = None, **kwargs) Bases: :py:obj:`flow.record.adapter.AbstractReader` SQLite reader. .. py:attribute:: logger .. py:method:: table_names() -> list[str] Return a list of table names in the database. .. py:method:: read_table(table_name: str) -> Iterator[flow.record.Record] Read a table from the database and yield records. .. py:method:: __iter__() -> Iterator[flow.record.Record] Iterate over all tables in the database and yield records. .. py:class:: SqliteWriter(path: str, *, batch_size: str | int = 1000, **kwargs) Bases: :py:obj:`flow.record.adapter.AbstractWriter` SQLite writer. .. py:attribute:: logger .. py:method:: write(record: flow.record.Record) -> None Write a record to the database .. py:method:: tx_cycle() -> None .. py:method:: flush() -> None Flush any buffered writes. .. py:method:: close() -> None Close the Writer, no more writes will be possible.