Add Python import validation to CI pipeline #158
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
from typing import str
Context
A production incident occurred when
from typing import str
(an invalid import) made it through to deployment. Standard tools likepython -m compileall
only catch syntax errors, not import errors. This PR implements a practical solution to catch these errors in CI.Implementation
.github/workflows/pr-tests.yml
: GitHub Actions workflow that runs on all PRstests/check_imports.py
: Script that attempts to import every Python file to catch runtime import errorsCaveats & Trade-offs
This is an expedient solution with known limitations:
Known Issues
.py
file in isolation, including setup.py and test filesWhy This Approach
from typing import str
)compileall
doesn't catch import errorsmypy
would require type hints throughout legacy coderuff
,flake8
) don't catch invalid typing importsFuture Improvements
Consider these enhancements in follow-up PRs:
mypy
once legacy code is cleaned upTest Plan
from typing import str
errorThis is a pragmatic, immediate fix to prevent critical import errors from reaching production. While not perfect, it solves the immediate problem and can be refined over time.