Bigbrotr
The Bigbrotr class manages connections and interactions with the Bigbrotr database.
Attributes
Section titled “Attributes”| Name | Type | Description |
|---|---|---|
host | str | Database host |
port | int | Database port |
user | str | Database user |
password | str | Password for database access |
dbname | str | Database name |
conn | psycopg2.connection | Database connection object |
cur | psycopg2.cursor | Cursor to execute queries on the database |
Methods
Section titled “Methods”__init__
Section titled “__init__”Initialize a Bigbrotr object.
Parameters
Section titled “Parameters”host(str): Database hostport(int): Database portuser(str): Database userpassword(str): Password for database accessdbname(str): Database name
Example
Section titled “Example”>>> bigbrotr = Bigbrotr("localhost", 5432, "admin", "admin", "bigbrotr")Raises
Section titled “Raises”TypeError: If any parameter is of incorrect type.
connect
Section titled “connect”Establish connection to the database.
Parameters
Section titled “Parameters”None
Example
Section titled “Example”>>> bigbrotr.connect()Returns
Section titled “Returns”None
Close the database connection.
Parameters
Section titled “Parameters”None
Example
Section titled “Example”>>> bigbrotr.close()Returns
Section titled “Returns”None
commit
Section titled “commit”Commit the current transaction.
Parameters
Section titled “Parameters”None
Example
Section titled “Example”>>> bigbrotr.commit()Returns
Section titled “Returns”None
execute
Section titled “execute”Execute an SQL query with optional arguments.
Parameters
Section titled “Parameters”query(str): SQL query string to executeargs(tuple, optional): Arguments for parameterized query (default is empty tuple)
Example
Section titled “Example”>>> bigbrotr.execute("SELECT * FROM events WHERE kind = %s", (0,))Raises
Section titled “Raises”TypeError: Ifqueryis not a string orargsis not a tuple.
Returns
Section titled “Returns”None
fetchall
Section titled “fetchall”Retrieve all results from the last executed query.
Parameters
Section titled “Parameters”None
Example
Section titled “Example”>>> results = bigbrotr.fetchall()Returns
Section titled “Returns”List[Tuple]: List of all query results.
fetchone
Section titled “fetchone”Retrieve a single result from the last executed query.
Parameters
Section titled “Parameters”None
Example
Section titled “Example”>>> result = bigbrotr.fetchone()Returns
Section titled “Returns”TupleorNone: Single query result orNoneif no results.
fetchmany
Section titled “fetchmany”Retrieve a specific number of results from the last executed query.
Parameters
Section titled “Parameters”size(int): Number of rows to fetch
Example
Section titled “Example”>>> results = bigbrotr.fetchmany(10)Raises
Section titled “Raises”TypeError: Ifsizeis not an integer.
Returns
Section titled “Returns”List[Tuple]: List of query results.
delete_orphan_events
Section titled “delete_orphan_events”Delete orphan events from the database.
Parameters
Section titled “Parameters”None
Example
Section titled “Example”>>> bigbrotr.delete_orphan_events()Returns
Section titled “Returns”None
insert_event
Section titled “insert_event”Insert a single event into the database.
Parameters
Section titled “Parameters”event(Event): Event object to insertrelay(Relay): Relay source of the eventseen_at(int, optional): Timestamp when the event was seen (default current time)
Example
Section titled “Example”>>> bigbrotr.insert_event(event, relay, seen_at=1650000000)Raises
Section titled “Raises”TypeError: Ifeventorrelayare of incorrect type, or ifseen_atis not an integer.ValueError: Ifseen_atis negative.
Returns
Section titled “Returns”None
insert_relay
Section titled “insert_relay”Insert a single relay into the database.
Parameters
Section titled “Parameters”relay(Relay): Relay object to insertinserted_at(int, optional): Timestamp of insertion (default current time)
Example
Section titled “Example”>>> bigbrotr.insert_relay(relay)Raises
Section titled “Raises”TypeError: Ifrelayis not a Relay instance orinserted_atnot an integer.ValueError: Ifinserted_atis negative.
Returns
Section titled “Returns”None
insert_relay_metadata
Section titled “insert_relay_metadata”Insert relay metadata into the database.
Parameters
Section titled “Parameters”relay_metadata(RelayMetadata): Relay metadata object
Example
Section titled “Example”>>> bigbrotr.insert_relay_metadata(relay_metadata)Raises
Section titled “Raises”TypeError: Ifrelay_metadatais not a RelayMetadata instance.
Returns
Section titled “Returns”None
insert_event_batch
Section titled “insert_event_batch”Insert a batch of events into the database.
Parameters
Section titled “Parameters”events(List[Event]): List of Event objects to insertrelay(Relay): Relay sourceseen_at(int, optional): Timestamp when events were seen (default current time)
Example
Section titled “Example”>>> bigbrotr.insert_event_batch([event1, event2], relay)Raises
Section titled “Raises”TypeError: If parameters have incorrect types.ValueError: Ifseen_atis negative.
Returns
Section titled “Returns”None
insert_relay_batch
Section titled “insert_relay_batch”Insert a batch of relays into the database.
Parameters
Section titled “Parameters”relays(List[Relay]): List of Relay objects to insertinserted_at(int, optional): Timestamp of insertion (default current time)
Example
Section titled “Example”>>> bigbrotr.insert_relay_batch([relay1, relay2])Raises
Section titled “Raises”TypeError: If parameters have incorrect types.ValueError: Ifinserted_atis negative.
Returns
Section titled “Returns”None
insert_relay_metadata_batch
Section titled “insert_relay_metadata_batch”Insert a batch of relay metadata entries into the database.
Parameters
Section titled “Parameters”relay_metadata_list(List[RelayMetadata]): List of RelayMetadata objects
Example
Section titled “Example”>>> bigbrotr.insert_relay_metadata_batch([metadata1, metadata2])Raises
Section titled “Raises”TypeError: Ifrelay_metadata_listis not a list of RelayMetadata instances.
Returns
Section titled “Returns”None