From e2c15f7145290a97fd78f27209808a8a6e7c6a33 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Thu, 15 Oct 2026 14:43:38 +0800 Subject: [PATCH] fix: add defensive exhaustive branches to enum matches --- src/assemblicon/cli.py | 2 ++ src/assemblicon/highlevel/environment.py | 4 ++-- src/assemblicon/lowlevel/artproc.py | 4 ++++ src/assemblicon/lowlevel/artrdr.py | 2 ++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/assemblicon/cli.py b/src/assemblicon/cli.py index 20a49fd..99179a9 100644 --- a/src/assemblicon/cli.py +++ b/src/assemblicon/cli.py @@ -16,6 +16,8 @@ class CliSvgRenderKind(enum.StrEnum): return SvgRenderKind.Inkscape case CliSvgRenderKind.ReSvg: return SvgRenderKind.ReSvg + case _: + raise ValueError(f"Unknown CLI-specific SVG render kind: {self}") @dataclass(frozen=True) diff --git a/src/assemblicon/highlevel/environment.py b/src/assemblicon/highlevel/environment.py index e25c88b..7d30287 100644 --- a/src/assemblicon/highlevel/environment.py +++ b/src/assemblicon/highlevel/environment.py @@ -345,8 +345,8 @@ class Environment(Generic[P]): filename = f"{name}.{kind}.scale-{scale}.png" elif targetsize is not None: check_msix_targetsize(targetsize) - # TODO: This altform code are ugly (do not utilize enum.StrEnum) - # May be improved in future. + # TODO: These altform generation code are shit + # (doesn't utilize enum.StrEnum). May be improved in future. altform: Optional[str] match plated: case MsixAppPlatedKind.Plated: diff --git a/src/assemblicon/lowlevel/artproc.py b/src/assemblicon/lowlevel/artproc.py index d95ebfe..7385ddc 100644 --- a/src/assemblicon/lowlevel/artproc.py +++ b/src/assemblicon/lowlevel/artproc.py @@ -31,6 +31,8 @@ def anchor_to_offset( x = oversize_width // 2 case HorizontalAnchor.Right: x = oversize_width + case _: + raise ValueError(f"Unknown horizontal anchor: {horizontal_anchor}") y: int match vertical_anchor: @@ -40,6 +42,8 @@ def anchor_to_offset( y = oversize_height // 2 case VerticalAnchor.Bottom: y = oversize_height + case _: + raise ValueError(f"Unknown vertical anchor: {vertical_anchor}") return Point(x, y) diff --git a/src/assemblicon/lowlevel/artrdr.py b/src/assemblicon/lowlevel/artrdr.py index d77160a..9a6affb 100644 --- a/src/assemblicon/lowlevel/artrdr.py +++ b/src/assemblicon/lowlevel/artrdr.py @@ -83,6 +83,8 @@ def render_svg(src: Path, dst: Path, kind: SvgRenderKind, cfg: SvgConfig) -> Non str(src), str(dst), ] + case _: + raise ValueError(f"Unknown SVG render kind: {kind}") proc = subprocess.run(cmd, capture_output=False) if proc.returncode != 0: