Getting Started
Installation
Setup
Tach will guide you through initial project setup.
Run:
After an introductory message, you will see a file tree interface allowing you to interactively configure your project.
Use the arrow keys to navigate, and mark each module boundary with ‘Enter’. You can mark all of your top-level Python packages, or just a few that you want to track.
If your Python code lives below your project root, or if you are working in a monorepo with multiple Python packages, mark your Python source roots using the ‘s’ key.
Enforcement
Tach comes with a cli command to enforce the boundaries that you just set up! From the root of your Python project, run:
You will see:
You can validate that Tach is working by:
- Removing an item from the
depends_on
key intach.toml
, or marking it as deprecated - By adding an import between modules that didn’t previously import from each other.
Give both a try and run tach check
again. This will generate an error:
Each error indicates an import which violates your dependencies. If your terminal supports hyperlinks, click on the file path to go directly to the error.
When an error is detected, tach check
will exit with a non-zero code. It can be easily integrated with CI/CD, Pre-commit hooks, and VS Code, and more!
Extras
Visualize your dependency graph.
Tach will generate a graph of your dependencies. Here’s what this looks like for Tach:
Note that this graph is generated remotely with the contents of your tach.toml
when running tach show --web
.
If you would like to use the GraphViz DOT format locally, simply running tach show
will generate tach_module_graph.dot
in your working directory.
You can view the dependencies and usages for a given path:
e.g.:
Tach also supports: