26 lines
1.3 KiB
Python
26 lines
1.3 KiB
Python
"""
|
|
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"
|