Allow packaging specifiers in packages when auditing on PyPI #128
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.
Packaging specifiers are implemented as described in https://packaging.python.org/en/latest/specifications/version-specifiers/, although I did not find a specific PEP for them. Everything is done using
packaging
's own APIs, so there are no egregious hacks brought into the spec parsing logic.This allows to audit version-specific packages, which makes it easier to pin down regressions in ABI3 compatibility.
Usage:
abi3audit cryptography==42.0.7 -v
.Currently lacks support for version ranges, but that is only a regex tweak away thanks to the terrific
SpecifierSet
API.Hello again, I'm on a roll! I was surprised to see that version-specific auditing of a PyPI package was not supported, so I quickly added it. On this branch (please try it out as well), I get:
The error message in the second one could be improved, since
packaging
throws a good error on a wrong specifier. But that would probably require meddling with the spec parsing routine as a whole, which I skipped for now.