home · contact · privacy
On PlomDbConn init, access .default_path through PlomDbFile init (for its validations). master
authorChristian Heller <c.heller@plomlompom.de>
Tue, 18 Feb 2025 11:27:01 +0000 (12:27 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 18 Feb 2025 11:27:01 +0000 (12:27 +0100)
py/db.py

index e13ac14e08bd47d952f1ca0f5ee6876af3178972..ec8ab7a62314dbd51de38a57c11ec379b00d0695 100644 (file)
--- a/py/db.py
+++ b/py/db.py
@@ -124,11 +124,12 @@ class PlomDbFile:
 class PlomDbConn:
     """SQL connection to PlomDbFile."""
     default_path: Path
 class PlomDbConn:
     """SQL connection to PlomDbFile."""
     default_path: Path
+    db_file_class = PlomDbFile
 
     def __init__(self, db_file: Optional[TypePlomDbFile] = None) -> None:
 
     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
         # additional sqlite3.Connection shortcuts beyond .exec
         self.exec_script = self._conn.executescript
         self.commit = self._conn.commit