TrfDatabase

class vallenae.io.TrfDatabase(filename, mode='ro')[source]

IO wrapper for trfdb (transient feature) database file.

__init__(filename, mode='ro')[source]

Open trfdb database file.

Parameters:
  • filename (str) – Path to trfdb database file

  • mode (str) – Define database access: “ro” (read-only), “rw” (read-write), “rwc” (read-write and create empty database if it does not exist)

Methods

__init__(filename[, mode])

Open trfdb database file.

close()

Close database connection.

columns()

Columns of data table.

connection()

Get SQLite connection object.

create(filename)

Create empty trfdb.

fieldinfo()

Read fieldinfo table.

globalinfo()

Read globalinfo table.

iread(*[, trai, query_filter])

Stream features with returned iterable.

listen([existing, wait, query_filter])

Listen to database changes and return new records.

read(**kwargs)

Read features to Pandas DataFrame.

rows()

Number of rows in data table.

tables()

Get table names.

write(feature_set)

Write feature record to trfdb.

write_fieldinfo(field, info)

Write to fieldinfo table.

Attributes

connected

Check if connected to SQLite database.

filename

Filename of database.

static create(filename)[source]

Create empty trfdb.

Parameters:

filename (str) – Path to new trfdb database file

read(**kwargs)[source]

Read features to Pandas DataFrame.

Parameters:

**kwargs – Arguments passed to iread

Return type:

DataFrame

Returns:

Pandas DataFrame with features

iread(*, trai=None, query_filter=None)[source]

Stream features with returned iterable.

Parameters:
  • trai (Union[int, Sequence[int], None]) – Read data by TRAI (transient recorder index)

  • query_filter (str | None) – Optional query filter provided as SQL clause, e.g. “FFT_CoG >= 150 AND CTP < 20”

Return type:

SizedIterable[FeatureRecord]

Returns:

Sized iterable to sequential read features

listen(existing=False, wait=False, query_filter=None)[source]

Listen to database changes and return new records.

Parameters:
  • existing (bool) – Return already existing records

  • wait (bool) – Wait for new records even if no acquisition (writer) is active. Otherwise the function returns after all records are read.

  • query_filter (str | None) – Optional query filter provided as SQL clause, e.g. “TRAI >= 100”

Yields:

New feature records

Return type:

Iterable[FeatureRecord]

write(feature_set)[source]

Write feature record to trfdb.

Parameters:

feature_set (FeatureRecord) – Feature set

Return type:

int

Returns:

Index (trai) of inserted row

close()

Close database connection.

columns()

Columns of data table.

Return type:

tuple[str, ...]

property connected: bool

Check if connected to SQLite database.

connection()

Get SQLite connection object.

Raises:

RuntimeError – If connection is closed

Return type:

Connection

fieldinfo()

Read fieldinfo table.

The fieldinfo table stores informations about columns of the data table (like units).

Return type:

dict[str, dict[str, Any]]

Returns:

Dict of column names and informations (again a dict)

property filename: str

Filename of database.

globalinfo()

Read globalinfo table.

Return type:

dict[str, Any]

rows()

Number of rows in data table.

Return type:

int

tables()

Get table names.

Return type:

set[str]

write_fieldinfo(field, info)

Write to fieldinfo table.

Parameters:
  • field (str) – Column name of data table

  • info (dict[str, Any]) – Dict of properties and values, e.g. {“Unit”: “[Hz]”}

Raises:

ValueError – If field is not a column of data table