build: zabalení hry do instalovatelného Python balíčku #26

Merged
david-spacil merged 9 commits from package into version/v0.2.0 2026-06-27 19:18:49 +02:00
Owner

Souhrn

Převádí projekt z volného skriptu na standardní instalovatelný Python balíček řízený pyproject.toml. Po instalaci jde hra spustit příkazem kostky (nebo python -m kostky). Kód se stěhuje do balíčku kostky/, hodnoty.csv se načítá bezpečně přes importlib.resources a přibývá konfigurace nástrojů (mypy, ruff) na jednom místě.

Změny

  • Struktura balíčku – kód přesunut do kostky/: main.pykostky/kostky.py, hodnoty.csvkostky/hodnoty.csv, přidány __init__.py a __main__.py (umožní python -m kostky).
  • pyproject.toml – backend hatchling; metadata, závislost tabulate, dev extra (mypy, ruff, types-tabulate); entry point kostky (kostky.kostky:main); konfigurace [tool.mypy] (strict) a [tool.ruff].
  • Verze z gitového tagudynamic = ["version"] + hatch-vcs ([tool.hatch.version] source = "vcs"), verze se tak bere z tagu, ne ručně.
  • Bezpečné načítání hodnoty.csvopen("hodnoty.csv") (závislé na aktuálním adresáři) nahrazeno importlib.resources.files(__package__), takže hra funguje bez ohledu na to, odkud se spustí.
  • .gitignore – přidány build artefakty (dist/, build/, *.egg-info/).
  • Úklid dle ruff – seřazené importy, nepoužité smyčkové proměnné (_dice, _i), ternární clear(), zalomené dlouhé řádky; opravená anotace to_sorted_tuple (L: list[tuple[int, str, int]]).
### Souhrn Převádí projekt z volného skriptu na standardní instalovatelný Python balíček řízený `pyproject.toml`. Po instalaci jde hra spustit příkazem `kostky` (nebo `python -m kostky`). Kód se stěhuje do balíčku `kostky/`, `hodnoty.csv` se načítá bezpečně přes `importlib.resources` a přibývá konfigurace nástrojů (mypy, ruff) na jednom místě. ### Změny - **Struktura balíčku** – kód přesunut do `kostky/`: `main.py` → `kostky/kostky.py`, `hodnoty.csv` → `kostky/hodnoty.csv`, přidány `__init__.py` a `__main__.py` (umožní `python -m kostky`). - **`pyproject.toml`** – backend hatchling; metadata, závislost `tabulate`, dev extra (`mypy`, `ruff`, `types-tabulate`); entry point `kostky` (`kostky.kostky:main`); konfigurace `[tool.mypy]` (strict) a `[tool.ruff]`. - **Verze z gitového tagu** – `dynamic = ["version"]` + hatch-vcs (`[tool.hatch.version] source = "vcs"`), verze se tak bere z tagu, ne ručně. - **Bezpečné načítání `hodnoty.csv`** – `open("hodnoty.csv")` (závislé na aktuálním adresáři) nahrazeno `importlib.resources.files(__package__)`, takže hra funguje bez ohledu na to, odkud se spustí. - **`.gitignore`** – přidány build artefakty (`dist/`, `build/`, `*.egg-info/`). - **Úklid dle ruff** – seřazené importy, nepoužité smyčkové proměnné (`_dice`, `_i`), ternární `clear()`, zalomené dlouhé řádky; opravená anotace `to_sorted_tuple` (`L: list[tuple[int, str, int]]`).
david-spacil added this to the v0.2.0 milestone 2026-06-27 19:18:42 +02:00
david-spacil self-assigned this 2026-06-27 19:18:42 +02:00
david-spacil added 9 commits 2026-06-27 19:18:43 +02:00
david-spacil merged commit d7648a196c into version/v0.2.0 2026-06-27 19:18:49 +02:00
david-spacil deleted branch package 2026-06-27 19:25:46 +02:00
Sign in to join this conversation.