- lexicon.py: exact forms from docs/LEXICON.md (Polish diacritics preserved) - generator.py: Clause/Command dataclasses, render(), random_command(level 1-3) - llm.py: OpenAI-compatible client via urllib, JSON-only contract, fallback to random - tts.py: Piper via subprocess, defensive (prints [TTS off: reason] on any failure) - cli.py: argparse interface per SPEC §9 - tests/test_generator.py: 23 tests covering all genders, locations, level-3 joining, capitalisation; all pass DoD verified: pytest 23/23, python -m ipin_vr --level 3 --count 6 --no-audio OK. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
OBJECTS = {
|
|
"jablko": {"nom": "jabłko", "acc": "jabłko", "gender": "n"},
|
|
"kubek": {"nom": "kubek", "acc": "kubek", "gender": "m"},
|
|
"lyzka": {"nom": "łyżka", "acc": "łyżkę", "gender": "f"},
|
|
"ksiazka": {"nom": "książka", "acc": "książkę", "gender": "f"},
|
|
"dlugopis": {"nom": "długopis", "acc": "długopis", "gender": "m"},
|
|
"klucz": {"nom": "klucz", "acc": "klucz", "gender": "m"},
|
|
"pilka": {"nom": "piłka", "acc": "piłkę", "gender": "f"},
|
|
"butelka": {"nom": "butelka", "acc": "butelkę", "gender": "f"},
|
|
"talerz": {"nom": "talerz", "acc": "talerz", "gender": "m"},
|
|
"banan": {"nom": "banan", "acc": "banan", "gender": "m"},
|
|
}
|
|
|
|
COLORS = {
|
|
"czerwony": {"m": "czerwony", "f": "czerwoną", "n": "czerwone"},
|
|
"zielony": {"m": "zielony", "f": "zieloną", "n": "zielone"},
|
|
"niebieski": {"m": "niebieski", "f": "niebieską", "n": "niebieskie"},
|
|
"zolty": {"m": "żółty", "f": "żółtą", "n": "żółte"},
|
|
"bialy": {"m": "biały", "f": "białą", "n": "białe"},
|
|
"czarny": {"m": "czarny", "f": "czarną", "n": "czarne"},
|
|
}
|
|
|
|
LOCATIONS = {
|
|
"stol": "na stole",
|
|
"krzeslo": "na krześle",
|
|
"polka": "na półce",
|
|
"podloga": "na podłodze",
|
|
"biurko": "na biurku",
|
|
"parapet": "na parapecie",
|
|
}
|
|
|
|
VERBS = {
|
|
"poloz": "Połóż",
|
|
"umiesc": "Umieść",
|
|
}
|