import socket from dataclasses import dataclass @dataclass class MedicusConfig: server: str path: str @property def dsn(self) -> str: return f"{self.server}:{self.path}" def get_medicus_config() -> MedicusConfig: """ Vrátí konfiguraci připojení k databázi Medicus podle jména počítače. Logika: - LEKAR → localhost, M:\\Medicus\\Data\\Medicus.fdb (ostrý lokální) - SESTRA → 192.168.1.10, M:\\Medicus\\Data\\Medicus.fdb (ostrý přes síť) - LENOVO → 192.168.1.10, M:\\Medicus\\Data\\Medicus.fdb (testovací přes síť) - ostatní → localhost, C:\\Medicus 3\\Data\\Medicus.fdb (testovací lokální) Vrací: MedicusConfig s atributy server, path a vlastností dsn ("server:path"). Příklad použití: from Knihovny.najdi_medicus import get_medicus_config cfg = get_medicus_config() con = fdb.connect(dsn=cfg.dsn, user="SYSDBA", password="masterkey") """ hostname = socket.gethostname().upper() if hostname == "LEKAR": return MedicusConfig(server="localhost", path=r"M:\Medicus\Data\Medicus.fdb") elif hostname in ("SESTRA", "LENOVO"): return MedicusConfig(server="192.168.1.10", path=r"M:\Medicus\Data\Medicus.fdb") else: return MedicusConfig(server="localhost", path=r"C:\Medicus 3\Data\Medicus.fdb") if __name__ == "__main__": cfg = get_medicus_config() print(f"Hostname : {socket.gethostname()}") print(f"Server : {cfg.server}") print(f"Path : {cfg.path}") print(f"DSN : {cfg.dsn}")