# Правила проекта 2025-etpgrf при обработке ИИ ## Общие сведения - **Проект:** Python-библиотека для экранной типографики для веб (висячая пунктуация, неразрывные пробелы, перенос слов и т.д.). - **Язык:** Python 3.10+. - **Стиль кода:** PEP8. - **Типизация:** Обязательные Type Hints для аргументов и возвращаемых значений. - **Язык комментариев:** Русский. ## Архитектура - **Точка входа:** Класс `Typographer` в `etpgrf/typograph.py`. - **Обработка HTML:** - Использовать `BeautifulSoup4` (предпочтительно парсер `lxml`). - НИКОГДА не парсить HTML регулярными выражениями. - **Санитизация:** Всегда выполняется *до* рекурсивного обхода дерева. - **Рекурсия:** Использовать `_walk_tree` для обработки текстовых узлов, сохраняя структуру HTML. - **Конфигурация:** Все константы (regex, коды символов, классы) должны быть в `etpgrf/config.py`. ## Тестирование - **Фреймворк:** `pytest`. - **Структура:** - Юнит-тесты: `tests/test_.py`. - Интеграционные тесты: `tests/test_typograph.py`. - **Философия:** Тестировать как режим простого текста ("plain text"), так и режим HTML.