Adopt "more sound" type annotations #487
Open
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.
Motivated by #486.
This PR just provides more realistic type annotations1 to improve the type checking soundness of the package.
It does not solve #486: all the limitations are still present, but at least type checkers would help to notify users when they are trying to use new APIs that are not safe (not necessary all the time, but better than now).
It is a bit of a pain, but these annotations should be a bit more sound than they currently are.
This should also prevent future versions of this library from introducing incompatible behaviour (thanks to
pytest-mypy
).Footnotes
Technically speaking, "a bit more correct". Because
importlib_metadata
collects 3rd-party implementations viafind_distributions
everything can happen. ↩