some docstring things
This commit is contained in:
		
							
								
								
									
										17
									
								
								database.py
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								database.py
									
									
									
									
									
								
							| @@ -1,6 +1,8 @@ | |||||||
| """This module contains functionality for interacting with a PostgreSQL database. It will automatically handle error | """This module contains functionality for interacting with a PostgreSQL database. It will automatically handle error | ||||||
| conditions (i.e. missing columns) without terminating the entire program. Use the :py:class:`DBConnector` class to | conditions (i.e. missing columns) without terminating the entire program. Use the :py:class:`DBConnector` class to | ||||||
| handle database interactions, either as a standalone object or in a context manager.""" | handle database interactions, either as a standalone object or in a context manager.""" | ||||||
|  | from __future__ import annotations | ||||||
|  |  | ||||||
| import os | import os | ||||||
| import psycopg2 | import psycopg2 | ||||||
| from psycopg2 import DatabaseError, OperationalError | from psycopg2 import DatabaseError, OperationalError | ||||||
| @@ -22,7 +24,9 @@ class DBConnector: | |||||||
|        with DBConnector() as db: |        with DBConnector() as db: | ||||||
|            db.read() |            db.read() | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
|     def _db_start(self): |     def _db_start(self): | ||||||
|  |         """Setup the database connection and cursor.""" | ||||||
|         try: |         try: | ||||||
|             self.conn = psycopg2.connect( |             self.conn = psycopg2.connect( | ||||||
|                 f"host={DB_ADDRESS} port={DB_PORT} dbname={DB_NAME} user={DB_USER} password={DB_PASSWORD}") |                 f"host={DB_ADDRESS} port={DB_PORT} dbname={DB_NAME} user={DB_USER} password={DB_PASSWORD}") | ||||||
| @@ -31,6 +35,7 @@ class DBConnector: | |||||||
|             raise e |             raise e | ||||||
|  |  | ||||||
|     def _db_stop(self): |     def _db_stop(self): | ||||||
|  |         """Close the cursor and connection.""" | ||||||
|         self.cur.close() |         self.cur.close() | ||||||
|         self.conn.close() |         self.conn.close() | ||||||
|  |  | ||||||
| @@ -47,12 +52,18 @@ class DBConnector: | |||||||
|         self._db_stop() |         self._db_stop() | ||||||
|  |  | ||||||
|     def _query(self, sql) -> list[dict]: |     def _query(self, sql) -> list[dict]: | ||||||
|  |         """Basic function for running queries. | ||||||
|  |  | ||||||
|  |         :param sql: SQL query as plaintext. | ||||||
|  |         :return: Results of the query, or an empty list if none.""" | ||||||
|  |         result = [] | ||||||
|         try: |         try: | ||||||
|             self.cur.execute(sql) |             self.cur.execute(sql) | ||||||
|             result = self.cur.fetchall() |             result = self._read_dict() | ||||||
|         except DatabaseError as e: |         except DatabaseError as e: | ||||||
|             print(f"DB ERROR [{e.pgcode}]: {e.pgerror}") |             print(f"ERROR {e.pgcode}: {e.pgerror}\n" | ||||||
|             result = [] |                   f"Caused by query: {sql}") | ||||||
|  |         finally: | ||||||
|             return result |             return result | ||||||
|  |  | ||||||
|     def read(self, **kwargs) -> list[dict]: |     def read(self, **kwargs) -> list[dict]: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user