This commit is contained in:
michaela.buzalkova
2026-04-22 08:12:52 +02:00
parent 09e5eb9a9d
commit 4e0d768825
3 changed files with 56 additions and 1 deletions
+49
View File
@@ -0,0 +1,49 @@
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}")