blatann.gap.default_bond_db module

class blatann.gap.default_bond_db.DatabaseStrategy

Bases: object

Abstract base class defining the methods and properties for serializing/deserializing bond databases into different formats

property file_extension: str

The file extension that this strategy can serialize/deserialize

load(filename)

Loads/deserializes a database file

Parameters:

filename (str) – Name of the file to deserialize

Return type:

DefaultBondDatabase

Returns:

The loaded bond database

save(filename, db)

Saves/serializes a database to a file

Parameters:
  • filename (str) – Filename to save the database to

  • db (DefaultBondDatabase) – The database object serialize

class blatann.gap.default_bond_db.JsonDatabaseStrategy

Bases: DatabaseStrategy

Strategy for serializing/deserializing bond databases in JSON format

property file_extension: str

The file extension that this strategy can serialize/deserialize

load(filename)

Loads/deserializes a database file

Parameters:

filename (str) – Name of the file to deserialize

Return type:

DefaultBondDatabase

Returns:

The loaded bond database

save(filename, db)

Saves/serializes a database to a file

Parameters:
  • filename (str) – Filename to save the database to

  • db (DefaultBondDatabase) – The database object serialize

class blatann.gap.default_bond_db.PickleDatabaseStrategy

Bases: DatabaseStrategy

Strategy for serializing/deserializing bond databases in pickle format

property file_extension: str

The file extension that this strategy can serialize/deserialize

load(filename)

Loads/deserializes a database file

Parameters:

filename (str) – Name of the file to deserialize

Return type:

DefaultBondDatabase

Returns:

The loaded bond database

save(filename, db)

Saves/serializes a database to a file

Parameters:
  • filename (str) – Filename to save the database to

  • db (DefaultBondDatabase) – The database object serialize

class blatann.gap.default_bond_db.InMemoryDatabaseStrategy

Bases: DatabaseStrategy

No-op strategy for in-memory databases (nothing saved to disk so nothing to do)

IN_MEMORY_EXTENSION = '.memory'
property file_extension: str

The file extension that this strategy can serialize/deserialize

load(filename)

Loads/deserializes a database file

Parameters:

filename (str) – Name of the file to deserialize

Return type:

DefaultBondDatabase

Returns:

The loaded bond database

save(filename, db)

Saves/serializes a database to a file

Parameters:
  • filename (str) – Filename to save the database to

  • db (DefaultBondDatabase) – The database object serialize

blatann.gap.default_bond_db.database_strategies = [<blatann.gap.default_bond_db.PickleDatabaseStrategy object>, <blatann.gap.default_bond_db.JsonDatabaseStrategy object>, <blatann.gap.default_bond_db.InMemoryDatabaseStrategy object>]

List of supported database strategies

blatann.gap.default_bond_db.database_strategies_by_extension: Dict[str, DatabaseStrategy] = {'.json': <blatann.gap.default_bond_db.JsonDatabaseStrategy object>, '.memory': <blatann.gap.default_bond_db.InMemoryDatabaseStrategy object>, '.pkl': <blatann.gap.default_bond_db.PickleDatabaseStrategy object>}

Mapping of database file extensions to their respective strategies

class blatann.gap.default_bond_db.DefaultBondDatabaseLoader(filename='user')

Bases: BondDatabaseLoader

migrate_to_json(base_filename)
load()
Return type:

DefaultBondDatabase

save(db)
class blatann.gap.default_bond_db.DefaultBondDatabase(records=None)

Bases: BondDatabase

create()
add(db_entry)
update(db_entry)
delete(db_entry)
delete_all()
find_entry(own_address, peer_address, peer_is_client, master_id=None)

Attempts to find a bond entry which satisfies the parameters provided

Parameters:
  • own_address (PeerAddress) – The local device’s BLE address

  • peer_address (PeerAddress) – The peer’s BLE address

  • peer_is_client (bool) – Flag indicating the role of the peer. True if the peer is a client/central, False if the peer is a server/peripheral

  • master_id (Optional[BLEGapMasterId]) – If during a security info request, this is the Master ID provided by the peer to search for

Return type:

Optional[BondDbEntry]

Returns:

The first entry that satisfies the above parameters, or None if no entry was found

blatann.gap.default_bond_db.migrate_bond_database(from_file, to_file)

Migrates a bond database file from one format to another.

For supported extensions/formats, check database_strategies_by_extension.keys()

Parameters:
  • from_file (str) – File to migrate from

  • to_file (str) – File to migrate to