""" Base table class for database operations. This module provides the base Table class that handles cursor management and common database operations for table-specific implementations. """ import sqlite3 from typing import Optional, Any class Table: """ Base class for database table operations. Attributes: connection: SQLite database connection cursor: Database cursor for executing queries """ def __init__(self, connection: sqlite3.Connection): """ Initialize the table with a database connection. Args: connection: SQLite database connection """ self.connection = connection self.cursor = self.connection.cursor() def create(self): """Create the table structure. To be implemented by subclasses.""" raise NotImplementedError("Subclasses must implement create() method") def exists(self, pk_value: Any) -> bool: """ Check if a record exists by primary key. Args: pk_value: Primary key value to check Returns: True if record exists, False otherwise """ raise NotImplementedError("Subclasses must implement exists() method") def save(self, obj: Any) -> bool: """ Save a single object to the database. Args: obj: Object to save Returns: True if object was saved, False if it already exists """ raise NotImplementedError("Subclasses must implement save() method") def load(self, pk_value: Any) -> Optional[Any]: """ Load a single object from the database by primary key. Args: pk_value: Primary key value to load Returns: Object if found, None otherwise """ raise NotImplementedError("Subclasses must implement load() method") def commit(self): """Commit pending changes to the database.""" self.connection.commit() def close(self): """Close the cursor.""" self.cursor.close()