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í.
### 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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Souhrn
Převádí projekt z volného skriptu na standardní instalovatelný Python balíček řízený
pyproject.toml. Po instalaci jde hra spustit příkazemkostky(nebopython -m kostky). Kód se stěhuje do balíčkukostky/,hodnoty.csvse načítá bezpečně přesimportlib.resourcesa přibývá konfigurace nástrojů (mypy, ruff) na jednom místě.Změny
kostky/:main.py→kostky/kostky.py,hodnoty.csv→kostky/hodnoty.csv, přidány__init__.pya__main__.py(umožnípython -m kostky).pyproject.toml– backend hatchling; metadata, závislosttabulate, dev extra (mypy,ruff,types-tabulate); entry pointkostky(kostky.kostky:main); konfigurace[tool.mypy](strict) a[tool.ruff].dynamic = ["version"]+ hatch-vcs ([tool.hatch.version] source = "vcs"), verze se tak bere z tagu, ne ručně.hodnoty.csv–open("hodnoty.csv")(závislé na aktuálním adresáři) nahrazenoimportlib.resources.files(__package__), takže hra funguje bez ohledu na to, odkud se spustí..gitignore– přidány build artefakty (dist/,build/,*.egg-info/)._dice,_i), ternárníclear(), zalomené dlouhé řádky; opravená anotaceto_sorted_tuple(L: list[tuple[int, str, int]]).