class PlomDbConn:
"""SQL connection to PlomDbFile."""
default_path: Path
+ db_file_class = PlomDbFile
def __init__(self, db_file: Optional[TypePlomDbFile] = None) -> None:
- self._conn = sql_connect(
- db_file.path if db_file else self.default_path,
- autocommit=False)
+ # only access .default_path through db_file_class init, for validations
+ vetted = db_file if db_file else self.db_file_class(self.default_path)
+ self._conn = sql_connect(vetted.path, autocommit=False)
# additional sqlite3.Connection shortcuts beyond .exec
self.exec_script = self._conn.executescript
self.commit = self._conn.commit