home · contact · privacy
Minor class method reorganizations.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 19 Mar 2024 23:46:13 +0000 (00:46 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 19 Mar 2024 23:46:13 +0000 (00:46 +0100)
plomtask/days.py
plomtask/db.py
plomtask/http.py

index f1920b4d1343bbb486cd537b2c77102e22756a37..d64b34b6bc69c01fd6d6a17437bbc90f357d301a 100644 (file)
@@ -25,9 +25,11 @@ class Day:
         if not self.datetime:
             raise HandledException(f'Given date of wrong format: {self.date}')
 
-    def save(self, db_conn: DatabaseConnection):
-        """Add (or re-write) self to database."""
-        db_conn.exec('REPLACE INTO days VALUES (?)', (self.date,))
+    def __eq__(self, other: object):
+        return isinstance(other, self.__class__) and self.date == other.date
+
+    def __lt__(self, other):
+        return self.date < other.date
 
     @classmethod
     def from_table_row(cls, row: Row):
@@ -59,8 +61,6 @@ class Day:
         """Return what weekday matches self.date."""
         return self.datetime.strftime('%A')
 
-    def __eq__(self, other: object):
-        return isinstance(other, self.__class__) and self.date == other.date
-
-    def __lt__(self, other):
-        return self.date < other.date
+    def save(self, db_conn: DatabaseConnection):
+        """Add (or re-write) self to database."""
+        db_conn.exec('REPLACE INTO days VALUES (?)', (self.date,))
index 50eb737cbfa3924eb3f393dd5440ed08fce0b8d9..d6966e62f5a974e7fd6f5156988cfe2b8fbf57dc 100644 (file)
@@ -7,27 +7,27 @@ from plomtask.misc import HandledException
 PATH_DB_SCHEMA = 'scripts/init.sql'
 
 
-class DatabaseFile:
+class DatabaseFile:  # pylint: disable=too-few-public-methods
     """Represents the sqlite3 database's file."""
 
     def __init__(self, path):
         self.path = path
-        self.check()
-
-    def check(self):
-        """Check file exists and is of proper schema."""
-        self.exists = isfile(self.path)
-        if self.exists:
-            self.validate_schema()
+        self._check()
 
     def remake(self):
         """Create tables in self.path file as per PATH_DB_SCHEMA sql file."""
         with sql_connect(self.path) as conn:
             with open(PATH_DB_SCHEMA, 'r', encoding='utf-8') as f:
                 conn.executescript(f.read())
-        self.check()
+        self._check()
+
+    def _check(self):
+        """Check file exists and is of proper schema."""
+        self.exists = isfile(self.path)
+        if self.exists:
+            self._validate_schema()
 
-    def validate_schema(self):
+    def _validate_schema(self):
         """Compare found schema with what's stored at PATH_DB_SCHEMA."""
         sql_for_schema = 'SELECT sql FROM sqlite_master ORDER BY sql'
         msg_err = 'Database has wrong tables schema. Diff:\n'
index b6019ef0761b1dc3a86d3a12f395cd5b96f40c5c..afcaa116173145bb2ab5b2547937d5458d3e2666 100644 (file)
@@ -22,17 +22,6 @@ class TaskHandler(BaseHTTPRequestHandler):
     """Handles single HTTP request."""
     server: TaskServer
 
-    def send_html(self, html: str, code: int = 200):
-        """Send HTML as proper HTTP response."""
-        self.send_response(code)
-        self.end_headers()
-        self.wfile.write(bytes(html, 'utf-8'))
-
-    def send_msg(self, msg: str, code: int = 400):
-        """Send message in HTML formatting as HTTP response."""
-        html = self.server.jinja.get_template('msg.html').render(msg=msg)
-        self.send_html(html, code)
-
     def do_GET(self):
         """Handle any GET request."""
         try:
@@ -49,9 +38,9 @@ class TaskHandler(BaseHTTPRequestHandler):
                 raise HandledException('Test!')
             conn.commit()
             conn.close()
-            self.send_html(html)
+            self._send_html(html)
         except HandledException as error:
-            self.send_msg(error)
+            self._send_msg(error)
 
     def do_GET_calendar(self, conn: DatabaseConnection):
         """Show Days."""
@@ -62,3 +51,14 @@ class TaskHandler(BaseHTTPRequestHandler):
         """Show single Day."""
         day = Day.by_date(conn, date)
         return self.server.jinja.get_template('day.html').render(day=day)
+
+    def _send_html(self, html: str, code: int = 200):
+        """Send HTML as proper HTTP response."""
+        self.send_response(code)
+        self.end_headers()
+        self.wfile.write(bytes(html, 'utf-8'))
+
+    def _send_msg(self, msg: str, code: int = 400):
+        """Send message in HTML formatting as HTTP response."""
+        html = self.server.jinja.get_template('msg.html').render(msg=msg)
+        self._send_html(html, code)