2025, Oct 05 17:16

Почему в PyCharm цветные трассировки: роль Rich и Typer и как настроить вывод

Почему в PyCharm появляются цветные трассировки: их формируют Typer и Rich. Узнайте, как отключить и настроить вывод исключений и скрыть лишние данные.

Оформленные трассировки, появляющиеся в привычной консоли, могут сбивать с толку, особенно если раньше их не было. Если вы запускаете Python‑проект в PyCharm с окружением, управляемым uv, и вдруг видите цветные, структурированные сообщения об ошибках, источник такого форматирования — рендерер исключений, а не ваша IDE.

Контекст: окружение, в котором проявляется проблема

Следующей конфигурации достаточно, чтобы во время разработки столкнуться со стилизованными ошибками:

requires-python = ">=3.12"
dependencies = [
    "pytorch-lightning==2.5.2",
    "torch==2.6.0",
    "torchaudio==2.6.0",
    "torchmetrics==1.8.1",
    "torchvision==0.21.0",
]
[dependency-groups]
dev = [
    "tensorboard>=2.20.0",
    "typer>=0.16.0",
]

Что на самом деле формирует стилизованную трассировку

Форматированный вывод создаёт Rich. Typer использует Rich под капотом для отображения улучшённых сообщений об исключениях, поэтому при ошибке вы получаете цветной, структурированный вывод вместо обычной Python‑трассировки. Это поведение не зависит от переключателей консоли в самом PyCharm, поэтому отключение связанных опций IDE не влияет на оформление, которое вы видите.

Как это настроить

Если вы хотите изменить или отключить это поведение, воспользуйтесь настройками, описанными в документации Typer по исключениям. Там указано, как отключить отдельные части расширенного вывода, включая параметры, управляющие показом локальных переменных из соображений безопасности. Настроив их, вы сможете вернуться к более простому виду трассировки или выбрать, что именно выводить.

Почему это важно

Понимание того, что оформление приходит из Rich через Typer, объясняет, почему одних настроек IDE недостаточно, чтобы изменить вывод, и помогает управлять видимостью исключений на уровне приложения. Это полезно и для удобства разработчиков, и для сокращения чувствительных сведений в отчётах об ошибках. Возможность переключаться между «богатыми» и обычными трассировками или ограничивать отображаемые данные повышает безопасность и делает отладку предсказуемее в разных средах.

Выводы

Если в проекте на Typer вы внезапно видите пёстрые трассировки, значит, работает Rich. Загляните в руководство Typer по исключениям, чтобы настроить или отключить расширенное форматирование. Понимая источник оформления, вы сможете единообразно управлять выводом ошибок вне зависимости от IDE или терминала.

Статья основана на вопросе на StackOverflow от user53423103981023 и ответе от InSync.