Source code for mirar.database.base_table

"""
Module to define PSQL database tables using sqlalchemy
"""

import logging

from sqlalchemy import inspect

logger = logging.getLogger(__name__)


[docs] class BaseTable: """ Parent class for database tables. Tables should inherit from this and DeclarativeBase. """ @property def __tablename__(self): raise NotImplementedError @property def db_name(self): """ Name of the database. :return: None """ raise NotImplementedError
[docs] def get_primary_key(self) -> str: """ Function to get primary key of table Returns: primary key """ return inspect(self.__class__).primary_key[0].name