MNT: compatibility with newer packaging #30
Closed
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.
I dug into this a bit because newer versions of
black
andconda
requirepackaging>=22.0
.Following recommendations here: pypa/packaging#631 (comment)
The simplest way to support all versions of packaging is to use the
Version
class directly instead of theparse
function.parse
used to returnVersion
orLegacyVersion
depending on if it received a valid version string, but now it raisesInvalidVersion
instead if the version string is invalid. If we add a try/except aroundparse
then you'll be compatible withpackaging>=22
but lose compatibility withpackaging<22
. Instead, switching to theVersion
class directly has the same exception raising behavior in all versions ofpackaging
, including the latest.This seemed like an appropriate fix here because this library only uses
LegacyVersion
as an indicator that something is a branch rather than a version, so its absence doesn't seem like much of a problem.closes #27