Об этом проекте

Tach — инструмент для Python-проектов, помогающий поддерживать модульную монолитную архитектуру путём enforcing правил зависимостей и интерфейсов. Написан на Rust, работает без влияния на время выполнения и может быть инкрементально внедрён в существующие системы. Ключевые возможности: - Enforcement зависимостей: гарантирует, что импорты поступают только из объявленных зависимостей и предотвращает циклы в графе зависимостей. - Управление интерфейсами: требует, чтобы вызовы между модулями использовали определённые публичные интерфейсы. - Визуализация: генерирует графы зависимостей через веб-интерфейс или формат GraphViz DOT. - Инструменты анализа: предоставляет отчёты о зависимостях и использованиях конкретных путей, может генерировать JSON-карты зависимостей. - Интеграция: поддерживает CI/CD-пайплайны, pre-commit хуки и интеграцию с VS Code. - Расширенная конфигурация: поддерживает слоистую архитектуру, доменное владение, namespace-пакеты для monorepos и возможность депрекейта отдельных зависимостей.