refactor: decouple — blueprint'ы + CSS/HTML разделение (по шаблону app-autotest)

This commit is contained in:
2026-07-31 22:16:22 +04:00
parent 6a0d5d00a2
commit 944238d224
16 changed files with 803 additions and 464 deletions
+25
View File
@@ -0,0 +1,25 @@
"""
pluralize.py — плюрализация английских слов.
Единственная функция: pluralize(word) — простейшая эвристика для образования
множественного числа. Используется в:
- from_stands.py: при генерации state_out_template (user→users, database→databases)
- state_machine.py: при apply_effect для subresource-операций
"""
def pluralize(word):
"""Простейшая плюрализация английского слова.
Правила:
- уже заканчивается на 's' → не меняем (status → status)
- согласная + 'y''ies' (city → cities)
- всё остальное → + 's' (user → users, database → databases)
НЕ полная морфология — только для predictable subresource-имён из STANDS YAML.
"""
if word.endswith("s"):
return word # уже во множественном (например "status")
if word.endswith("y") and len(word) > 2 and word[-2] not in "aeiou":
return word[:-1] + "ies" # "category" → "categories"
return word + "s" # "user" → "users", "database" → "databases"