This commit is contained in:
2026-01-10 14:58:15 -06:00
parent 536c35e69c
commit b547d69d48
6 changed files with 23 additions and 26 deletions

View File

@@ -20,4 +20,5 @@ requires = ["uv_build>=0.9.17,<0.10.0"]
build-backend = "uv_build" build-backend = "uv_build"
[tool.pyright] [tool.pyright]
analysis.diagnosticMode = "workspace"
#reportExplicitAny = false #reportExplicitAny = false

3
pyrightconfig.json Normal file
View File

@@ -0,0 +1,3 @@
{
"basedpyright.analysis.diagnosticMode": "workspace"
}

View File

@@ -23,9 +23,10 @@ class App(ReplaceStatic):
class Url(ReplaceStatic): class Url(ReplaceStatic):
src = ReplaceDynamic("url") src = ReplaceDynamic("url")
@property
@override @override
def __str__(self) -> str: def dest(self) -> str:
val = super(Url, self).__str__() val = super(Url, self).dest
if not val: if not val:
return val return val
return ".".join((val, "ccamper7", "net")) return ".".join((val, "ccamper7", "net"))

View File

@@ -1,7 +1,7 @@
from collections.abc import Callable from collections.abc import Callable
from dataclasses import dataclass, field from dataclasses import dataclass, field
from itertools import chain from itertools import chain
from typing import ClassVar, Self, final, override from typing import ClassVar, Self, final
def format_src(src: str) -> str: def format_src(src: str) -> str:
@@ -21,14 +21,6 @@ class ReplaceUnique:
def auto_format(cls, src: str, dest: str): def auto_format(cls, src: str, dest: str):
return cls(format_src(src), dest) return cls(format_src(src), dest)
# @override
# def __str__(self) -> str:
# if not self.dest:
# return ""
# if isinstance(self.dest, str):
# return self.dest
# return self.dest()
@final @final
@dataclass(frozen=True, slots=True) @dataclass(frozen=True, slots=True)
@@ -56,18 +48,18 @@ class ReplaceDynamic:
@dataclass(frozen=True, slots=True) @dataclass(frozen=True, slots=True)
class ReplaceStatic: class ReplaceStatic:
src: ClassVar[ReplaceDynamic] src: ClassVar[ReplaceDynamic]
dest: None | str | Callable[[], str] _dest: None | str | Callable[[], str]
def __call__(self, string: str) -> str: def __call__(self, string: str) -> str:
return string.replace(self.src.fmt, str(self)) return string.replace(self.src.fmt, self.dest)
@override @property
def __str__(self) -> str: def dest(self) -> str:
if not self.dest: if not self._dest:
return "" return ""
if isinstance(self.dest, str): if isinstance(self._dest, str):
return self.dest return self._dest
return self.dest() return self._dest()
@classmethod @classmethod
def two_stage(cls, dest: str) -> tuple[Self, ReplaceDynamic]: def two_stage(cls, dest: str) -> tuple[Self, ReplaceDynamic]:

View File

@@ -27,7 +27,7 @@ class NetArgs:
@override @override
def __str__(self) -> str: def __str__(self) -> str:
return f"{OrgData.org_app!s}_{self.name}" return f"{OrgData.org_app.dest}_{self.name}"
@property @property
def external(self) -> bool: def external(self) -> bool:

View File

@@ -3,7 +3,7 @@ from typing import Self, final, override
from docker_compose.cfg.compose_paths import ServicePath from docker_compose.cfg.compose_paths import ServicePath
from docker_compose.cfg.org import OrgData, Url from docker_compose.cfg.org import OrgData, Url
from docker_compose.cfg.replace import ReplaceStatic, ReplaceUnique from docker_compose.cfg.replace import ReplaceUnique
from docker_compose.compose.services_yaml import ( from docker_compose.compose.services_yaml import (
HealthCheck, HealthCheck,
ServiceYamlRead, ServiceYamlRead,
@@ -17,10 +17,10 @@ from docker_compose.util.Ts import T_Primitive
class Service: class Service:
_traefik_labels = frozenset( _traefik_labels = frozenset(
( (
f"traefik.http.routers.{OrgData.org_app!s}.rule=Host(`{Url!s}`)", f"traefik.http.routers.{OrgData.org_app.dest}.rule=Host(`{Url.src}`)",
f"traefik.http.routers.{OrgData.org_app.src}.entrypoints=websecure", f"traefik.http.routers.{OrgData.org_app.dest}.entrypoints=websecure",
f"traefik.docker.network={OrgData.org_app.src}_proxy", f"traefik.docker.network={OrgData.org_app.dest}_proxy",
f"traefik.http.routers.{OrgData.org_app.src}.tls.certresolver=le", f"traefik.http.routers.{OrgData.org_app.dest}.tls.certresolver=le",
) )
) )
@@ -57,7 +57,7 @@ class Service:
return cls.from_dict(path.fqdn, path.as_dict) return cls.from_dict(path.fqdn, path.as_dict)
@classmethod @classmethod
def from_dict(cls, fqdn: ReplaceStatic, data: ServiceYamlRead) -> Self: def from_dict(cls, fqdn: ReplaceUnique, data: ServiceYamlRead) -> Self:
# helper = ServiceYamlProps(data) # helper = ServiceYamlProps(data)
labels = frozenset(data.get("labels", ())) labels = frozenset(data.get("labels", ()))
# ports = (f'"{p}"' for p in data.get("ports", ())) # ports = (f'"{p}"' for p in data.get("ports", ()))