Datenbank-Zugang für unsere Case Study I
import os
from tinydb import TinyDB
from tinydb.storages import JSONStorage
from datetime import datetime, date
from tinydb_serialization import Serializer, SerializationMiddleware
from tinydb_serialization.serializers import DateTimeSerializer
class DatabaseConnector:
"""
Usage: DatabaseConnector().get_devices_table()
The information about the actual database file path
and the serializer objects has been abstracted away into this class
"""
__instance = None
def __new__(cls):
if cls.__instance is None:
cls.__instance = super().__new__(cls)
cls.__instance.path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'database.json')
return cls.__instance
def get_table(self, table_name: str) -> Table:
return TinyDB(self.__instance.path, storage=serializer).table(table_name)