spuštění jedním příkazem: uv run web.py

Trojice venv/pip/python byla zbytečná ceremonie pro appku, která se pouští
jednou za herní večer.

- web.py i dice.py si nesou závislosti v hlavičce podle PEP 723, takže
  je uv obstará sám a není co instalovat ani aktivovat
- pytest.ini staví kořen repa na pythonpath, takže testy jdou spustit
  i mimo připravené prostředí
- README nabízí uv jako hlavní cestu, venv a systémové balíčky jako
  záložní

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
gitea-actionsandClaude Opus 5 committed 2026-08-20 21:00:29 +02:00
1 parent 5052a48611
commit 374e4209c5
4 files changed
+37 -5

No files matched your search

+25 -5
View File
@@ -9,11 +9,12 @@ ten samý Adam jako z minulého měsíce. Žádné účty, žádná hesla.
## Spuštění
```bash
python -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python web.py
uv run web.py
```
To je celé. Závislosti si skript nese v hlavičce (PEP 723) a `uv` je obstará
sám — není co instalovat ani aktivovat.
Server vypíše všechny adresy, na kterých je dostupný:
```
@@ -72,11 +73,30 @@ při remíze na prvním místě se hraje dál.
Terminálová verze zůstává funkční jako záloha:
```bash
.venv/bin/python dice.py
uv run dice.py
```
## Bez uv
Když `uv` po ruce není, jde to postaru:
```bash
python -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python web.py
```
Na Fedoře stačí i systémové balíčky, pak se nemusí řešit vůbec nic:
```bash
sudo dnf install python3-flask python3-qrcode python3-tabulate
python3 web.py
```
## Testy
```bash
.venv/bin/python -m pytest tests/ -v
uv run --with-requirements requirements.txt --no-project pytest
```
Nebo z připraveného prostředí prostě `pytest`.
+4
View File
@@ -1,3 +1,7 @@
# /// script
# requires-python = ">=3.11"
# dependencies = ["tabulate"]
# ///
"""Počitadlo skóre v terminálu.
Pravidla žijí v `core.Game`, tenhle modul je jen vstup a výstup. Hraje se
+4
View File
@@ -0,0 +1,4 @@
[pytest]
# Testy sahají na moduly v kořeni repa, ne na nainstalovaný balíček.
pythonpath = .
testpaths = tests
+4
View File
@@ -1,3 +1,7 @@
# /// script
# requires-python = ">=3.11"
# dependencies = ["flask", "qrcode"]
# ///
"""Webové počitadlo pro domácí síť.
Telefon zapisuje skóre (`/game/<id>`), notebook ukazuje zápisník (`/board`).