taucmdr.cf.storage.sqlite3_file module¶
Local file backend for SQLite databases.
A persistent, transactional record storage system using sqlite3
for
both the database and the key/value store.
-
class
taucmdr.cf.storage.sqlite3_file.
SQLiteDatabase
(dbfile, storage=None)[source]¶ Bases:
object
Represents a connection to the database.
-
dbfile
¶ str
Path to database file
-
commit_transaction
()[source]¶ Commit a transaction previously started with
_SQLiteDatabase.start_transaction
-
purge
()[source]¶ Delete every record in every table in the database. :raises:
SQLiteStorageError
–Attempt to perform and operation on a database which is not open
-
revert_transaction
()[source]¶ Revert a transaction previously started with
_SQLiteDatabase.start_transaction
-
start_transaction
()[source]¶ Begin a transaction, which can be reverted with
_SQLiteDatabase.revert_transaction
or committed with_SQLiteDatabase.commit_transaction
.
-
table
(table_name)[source]¶ Get a table object for a table in this database. :param table_name: The name of the table requested :type table_name: str
Returns: A table object for the table table_name Raises: SQLiteStorageError
– Attempt to perform and operation on a database which is not open
-
tables
()[source]¶ Get a list of all the tables in the database :returns: A list of the target names for the tables in the database. :raises:
SQLiteStorageError
–Attempt to perform and operation on a database which is not open
-
-
class
taucmdr.cf.storage.sqlite3_file.
SQLiteLocalFileStorage
(name, prefix)[source]¶ Bases:
taucmdr.cf.storage.local_file.LocalFileStorage
A persistent, transactional record storage system.
Uses
sqlite3
for both the database and the key/value store.-
dbfile
¶ str
Absolute path to database file.
-
Record
¶ alias of
_SQLiteJsonRecord
-
contains
(keys, table_name=None, match_any=False)[source]¶ Check if the specified table contains at least one matching record.
- The behavior depends on the type of keys:
- self.Record.eid_type: check for the record with that element identifier.
- dict: check for the record with attributes matching keys.
- list or tuple: return the equivalent of
map(contains, keys)
. - None: return False.
Parameters: Returns: True if the table contains at least one matching record, False otherwise.
Return type: Raises: ValueError
– Invalid value for keys.
-
count
(table_name=None)[source]¶ Count the records in the database.
Parameters: table_name (str) – Name of the table to operate on. See AbstractDatabase.table
.Returns: Number of records in the table. Return type: int
-
dbfile
-
get
(keys, table_name=None, match_any=False)[source]¶ Find a single record.
- The behavior depends on the type of keys:
- self.Record.eid_type: return the record with that element identifier.
- dict: return the record with attributes matching keys.
- list or tuple: return a list of records matching the elements of keys
- None: return None.
Parameters: Returns: The matching data record if keys was a self.Record.eid_type or dict. list: All matching data records if keys was a list or tuple. None: No record found or
bool(keys) == False
.Return type: Raises: ValueError
– Invalid value for keys.
-
insert
(data, table_name=None)[source]¶ Create a new record.
If the table doesn’t exist it will be created.
Parameters: Returns: The new record.
Return type:
-
match
(field, table_name=None, regex=None, test=None)[source]¶ Find records where field matches regex or test.
Either regex or test may be specified, not both. If regex is given, then all records with field matching the regular expression are returned. If test is given then all records with field set to a value that caues test to return True are returned. If neither is given, return all records where field is set to any value.
Parameters: Returns: Matching data records.
Return type: Raises: ValueError
– Invalid value for keys.
-
purge
(table_name=None)[source]¶ Delete all records.
Parameters: table_name (str) – Name of the table to operate on. See AbstractDatabase.table
.
-
remove
(keys, table_name=None, match_any=False)[source]¶ Delete records.
- The behavior depends on the type of keys:
- self.Record.eid_type: delete the record with that element identifier.
- dict: delete all records with attributes matching keys.
- list or tuple: delete all records matching the elements of keys.
Parameters: Raises: ValueError
–bool(keys) == False
or invalid value for keys.
-
search
(keys=None, table_name=None, match_any=False)[source]¶ Find multiple records.
- The behavior depends on the type of keys:
- self.Record.eid_type: return the record with that element identifier.
- dict: return all records with attributes matching keys.
- list or tuple: return a list of records matching the elements of keys
- None: return all records.
Parameters: Returns: Matching data records.
Return type: Raises: ValueError
– Invalid value for keys.
-
unset
(fields, keys, table_name=None, match_any=False)[source]¶ Update records by unsetting fields.
Update only allows you to update a record by adding new fields or overwriting existing fields. Use this method to remove a field from the record.
- The behavior depends on the type of keys:
- self.Record.eid_type: update the record with that element identifier.
- dict: update all records with attributes matching keys.
- list or tuple: apply update to all records matching the elements of keys.
Parameters: - fields (list) – Names of fields to remove from matching records.
- keys – Fields or element identifiers to match.
- table_name (str) – Name of the table to operate on. See
AbstractDatabase.table
. - match_any (bool) – Only applies if keys is a dictionary. If True then any key in keys may match or if False then all keys in keys must match.
Raises: ValueError
–bool(keys) == False
or invalid value for keys.
-
update
(fields, keys, table_name=None, match_any=False)[source]¶ Update records.
- The behavior depends on the type of keys:
- self.Record.eid_type: update the record with that element identifier.
- dict: update all records with attributes matching keys.
- list or tuple: apply update to all records matching the elements of keys.
Parameters: - fields (dict) – Data to record.
- keys – Fields or element identifiers to match.
- table_name (str) – Name of the table to operate on. See
AbstractDatabase.table
. - match_any (bool) – Only applies if keys is a dictionary. If True then any key in keys may match or if False then all keys in keys must match.
Raises: ValueError
–bool(keys) == False
or invalid value for keys.
-
-
exception
taucmdr.cf.storage.sqlite3_file.
SQLiteStorageError
(table_name=None)[source]¶ Bases:
taucmdr.cf.storage.StorageError
Indicates that the database connection has not been initialized.
-
message_fmt
= '%(value)s\n\n%(hints)s\nPlease contact %(contact)s for assistance.'¶
-