from abc import ABC, abstractmethod from typing import Mapping, Any import sqlite3 class DatabaseController(ABC): __sqlitefile = "./data/wmgzon.db" def __init__(self): self._conn = None try: self._conn = sqlite3.connect(self.__sqlitefile) except sqlite3.Error as e: # Close the connection if still open if self._conn: self._conn.close() print(e) """ Takes a dictionary of fields and returns the object with those fields populated """ def new_instance(self, of: type, with_fields: Mapping[str, Any]): obj = of.__new__(of) for attr, value in with_fields.items(): setattr(obj, attr, value) return obj @abstractmethod def create(self): pass @abstractmethod def read(self): pass @abstractmethod def update(self): pass @abstractmethod def delete(self): pass