Fix cases where poetry should fall back to pep517 metadata parsing #2957
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.
#2761 discovered cases where
poetry
should fall back to pep517 to read metadata.According to the docs of setup.cfg the version can be specified by linking to an attribute in a module by using
attr: somemodule:__version__
. At the momentpoetry
will extract this literally and will try to parse it later, when it cannot fall back to pep517. This PR changes it, by trying to parse the version at the moment of extracting from thesetup.cfg
. If it failes aParseVersionError
is thrown and poetry will fallback to pep517 parsing.The second case appears if requirements and name or version (but not both) can be extracted from either
setup.py
orsetup.cfg
. name and version are mandatory information. If poetry cannot find any requirements, it cannot differ whether there are no or it was unable to parse it. So poetry should fall back to pep517 whenever any of these values are missing.Pull Request Check List
Resolves: #2761