Source code for deploydb.db


import sys
from contextlib import contextmanager
import pyodbc

from .model import DbCreds


[docs]class Database: """ Represents a database connection """ def __init__(self, creds: DbCreds) -> None: self.creds = creds.__dict__ self._conn_str = 'APP=deploydb;DRIVER={driver};SERVER={server};DATABASE=master;UID={user};PWD={passw}' # noqa self._conn_builder() def _conn_builder(self) -> str: self._conn_str = self._conn_str.format(**self.creds)
[docs] @contextmanager def connect(self, db_name='master'): connection = pyodbc.connect( str=self._conn_str, autocommit=True ) connection.timeout = 5 # default timeout 5 sec. cursor = connection.cursor() try: cursor.execute(f"USE [{db_name}];") yield cursor except pyodbc.DatabaseError as err: error, = err.args sys.stderr.write(error.message) except pyodbc.ProgrammingError as prg: raise prg finally: connection.close()