mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-10 21:07:03 +01:00
Some checks failed
dependency freshness / dependencies on newest stable (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
Pre-commit checks / pre-commit (${{ matrix.group }}) (mypy, mypy) (push) Waiting to run
Pre-commit checks / pre-commit (${{ matrix.group }}) (pylint, pylint) (push) Waiting to run
Pre-commit checks / pre-commit (${{ matrix.group }}) (rest, ) (push) Waiting to run
Pre-commit checks / pre-commit (${{ matrix.group }}) (shellcheck, shellcheck) (push) Waiting to run
repo-contract / repo contract (push) Waiting to run
Shell tests / shell-tests (push) Waiting to run
Shell tests / lib-tests (push) Waiting to run
Shell tests / arch-tests (push) Waiting to run
Python tests / test (push) Has been cancelled
New `lightbulb` glyph (filled bulb over a two-bar screw base) in a new _glyph_art_extra.py module, registered for ~/src/tutor/app. `generate --web` overwrites a Flutter app's web/favicon.png and web/icons/Icon-*.png from the same registry entry; the maskable variants reuse the full render because SAFE_BOX fits inside the 40% maskable safe circle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YADHKXzZhhePzQ2rNoXFcK
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
"""The :class:`AppIcon` record, split out of :mod:`apps` for the 250-line cap."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from pathlib import Path
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class AppIcon:
|
|
"""One app's icon configuration.
|
|
|
|
Parameters:
|
|
key (str): Short identifier used on the command line.
|
|
repo (Path): Flutter project root, i.e. the directory holding pubspec.yaml.
|
|
accent (str): Hex accent colour. Shared across every app in the family
|
|
(the `unified-design-system` accent) — not app-specific.
|
|
glyph (str): Glyph name from :data:`~python_pkg.app_icons.glyphs.GLYPHS`.
|
|
icon_name (str): Basename for Linux hicolor/desktop installation.
|
|
linux (bool): Whether the app has a Linux desktop target.
|
|
"""
|
|
|
|
key: str
|
|
repo: Path
|
|
accent: str
|
|
glyph: str
|
|
icon_name: str
|
|
linux: bool
|
|
|
|
@property
|
|
def asset_dir(self) -> Path:
|
|
"""Return the directory holding this app's icon source assets."""
|
|
return self.repo / "assets" / "icon"
|
|
|
|
@property
|
|
def web_dir(self) -> Path:
|
|
"""Return the Flutter ``web/`` directory holding favicon and PWA icons."""
|
|
return self.repo / "web"
|