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.
This PR proposes to eliminate the
Package
class, which superclassesPackageScanner
andProjectScanner
.Reasons to do this:
There is no context in which a
PackageScanner
and aProjectScanner
can be used interchangeably without a great deal of difficulty. These classes have only one common method,scan_local()
, that expect different kinds (as opposed to types) of arguments: a path to a local package directory or archive forPackageScanner
versus a path to arequirements.txt
file forProjectScanner
It seems the only purpose of
Package
is to givescanner.get_scanner()
a definite, non-union return type. However, we end up paying elsewhere for this simplicity, namely via the explicit cast incli._scan()
needed only to satisfy the type checker, so it's not clear we gain anything from it. This PR splitsget_scanner()
into two functions to eliminate the cast