Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 'check-external' command #221

Merged
merged 16 commits into from
Aug 3, 2024
Merged

Add 'check-external' command #221

merged 16 commits into from
Aug 3, 2024

Conversation

emdoyle
Copy link
Member

@emdoyle emdoyle commented Aug 2, 2024

cc: @malcolmgreaves

[From the docs added in this PR]
Tach can validate that the external imports in your Python packages match your declared package dependencies in pyproject.toml.

For each pyproject.toml found from the project root, Tach will scan all imports in the associated Python source and compare them with the declared dependencies.
Tach will report an error for any external import which is not satisfied by the declared dependencies - preventing your users from errors due to missing imports.

This is typically useful if you are developing more than one Python package from a single virtual environment.
Although your local environment may contain the dependencies for all your packages, when an end-user installs each package they will only install the dependencies listed in the pyproject.toml.

This means that, although tests may pass in your shared environment, an invalid import can still cause errors at runtime for your users.

In case you would like to explicitly allow a certain external module, this can be configured in your tach.yml with the 'external.exclude' key.

NOTE: It is recommended to run Tach within a virtual environment containing all of your dependencies across all packages. This is because Tach uses the distribution metadata to map module names like 'git' to their distributions ('GitPython').

image

@emdoyle emdoyle marked this pull request as ready for review August 2, 2024 19:40
@emdoyle emdoyle merged commit 2ba5943 into main Aug 3, 2024
7 checks passed
@emdoyle emdoyle deleted the third-party-deps branch August 3, 2024 01:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant