Usage
Interfaces
A module can adopt a public interface by matching interface rules in tach.toml
.
How does it work?
When Tach is checking imports from a module with a public interface, it will verify that the import matches one of the expose
patterns.
This prevents other modules from becoming coupled to implementation details, and makes future changes easier.
Example
Given modules called ‘core’ and ‘domain’, we may have tach.toml
contents like this:
Then, in domain.py
, we may have:
This import would fail tach check
with the following error:
In this case, there is a public interface defined in tach.toml
which includes a service method to use instead.
tach check
will now pass!