Fix typechecking for top-level samtools commands like pysam.view(…)
#1315
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.
As reported in PR #1306, mypy rejects
pysam.view(…)
et al because it doesn't know that they exist. This is due to the definition of__all__
in pysam/samtools.py: eitherHAVE_FINAL
is True for mypy so it skips the__all__
definition, or the definition is complex enough that mypy does not evaluate it, or both (as #1306 did not fix the problem).The first commit fixes this by lifting the
__all__
definition to the top-level and making it a simple assignment of a literal list. The second commit simplifies the rest of the code in pysam/samtools.py and pysam/bcftools.py.