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
: Ifquery
is not a string orargs
is 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”Tuple
orNone
: Single query result orNone
if 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
: Ifsize
is 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
: Ifevent
orrelay
are of incorrect type, or ifseen_at
is not an integer.ValueError
: Ifseen_at
is 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
: Ifrelay
is not a Relay instance orinserted_at
not an integer.ValueError
: Ifinserted_at
is 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_metadata
is 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_at
is 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_at
is 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_list
is not a list of RelayMetadata instances.
Returns
Section titled “Returns”None