35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from configparser import ConfigParser
|
|
from pathlib import Path
|
|
import platform
|
|
|
|
|
|
class Config:
|
|
_instance = None
|
|
|
|
def __new__(cls):
|
|
if cls._instance is None:
|
|
cls._instance = super().__new__(cls)
|
|
config = ConfigParser()
|
|
config_path = Path("config.ini")
|
|
config.read(config_path)
|
|
cls._instance.config = config
|
|
return cls._instance
|
|
|
|
def get_mssql_url(self) -> str:
|
|
mssql = self.config["mssql"]
|
|
driver = "ODBC Driver 18 for SQL Server" if platform.platform.system() == "Linux" else "SQL Server"
|
|
driver = driver.replace(" ", "+")
|
|
return f"mssql+pyodbc://{mssql['user']}:{mssql['password']}@{mssql['host']}/{mssql['name']}?driver={driver}"
|
|
|
|
def get_postgres_url(self) -> str:
|
|
db = self.config["postgres"]
|
|
return f"postgresql://{db['user']}:{db['password']}@{db['host']}/{db['name']}"
|
|
|
|
def get_seq_url(self) -> str:
|
|
seq = self.config["seq"]
|
|
return seq["url"]
|
|
|
|
def get_seq_api_key(self) -> str:
|
|
seq = self.config["seq"]
|
|
return seq["api_key"]
|