forked from retoor/devplacepy
update
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
from devplacepy_services.base.manifest import (
|
||||
FORBIDDEN_GAPS,
|
||||
PORT_HINTS,
|
||||
SERVICE_URL_ENV,
|
||||
SERVICES,
|
||||
build_profiles,
|
||||
)
|
||||
|
||||
PROFILES = build_profiles()
|
||||
|
||||
_BROKER_URL_ENV = {
|
||||
"main": "DEVPLACE_DB_SERVICE_URL",
|
||||
"devii_tasks": "DEVPLACE_DEVII_TASKS_STORE_URL",
|
||||
"devii_lessons": "DEVPLACE_DEVII_LESSONS_STORE_URL",
|
||||
}
|
||||
|
||||
|
||||
def port_profile() -> str:
|
||||
return os.environ.get("DEVPLACE_PORT_PROFILE", "micro-dev")
|
||||
|
||||
|
||||
def data_dir() -> Path:
|
||||
root = Path(__file__).resolve().parents[2]
|
||||
return Path(os.environ.get("DEVPLACE_DATA_DIR", str(root / "data")))
|
||||
|
||||
|
||||
def service_url(name: str) -> str:
|
||||
env_key = SERVICE_URL_ENV.get(name)
|
||||
if env_key:
|
||||
override = os.environ.get(env_key, "").strip().rstrip("/")
|
||||
if override:
|
||||
return override
|
||||
profile = port_profile()
|
||||
host = os.environ.get("DEVPLACE_SERVICE_HOST", "127.0.0.1")
|
||||
port = PROFILES[profile][name]
|
||||
return f"http://{host}:{port}"
|
||||
|
||||
|
||||
def broker_url(name: str) -> str:
|
||||
env_key = _BROKER_URL_ENV.get(name)
|
||||
if env_key:
|
||||
override = os.environ.get(env_key, "").strip().rstrip("/")
|
||||
if override:
|
||||
return override
|
||||
if name == "main":
|
||||
return service_url("database")
|
||||
if name == "devii_tasks":
|
||||
return f"{service_url('devii')}/internal/store/devii_tasks"
|
||||
if name == "devii_lessons":
|
||||
return f"{service_url('devii')}/internal/store/devii_lessons"
|
||||
raise KeyError(name)
|
||||
|
||||
|
||||
def sqlite_read_pool_size() -> int:
|
||||
raw = os.environ.get("DEVPLACE_SQLITE_READ_POOL", "8").strip()
|
||||
try:
|
||||
return max(1, int(raw))
|
||||
except ValueError:
|
||||
return 8
|
||||
|
||||
|
||||
def service_spec(name: str):
|
||||
return SERVICES[name]
|
||||
Reference in New Issue
Block a user