Use packaging.metadata to parse and validate upload metadata (Second try) #15631
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 reverts #15630, bringing back #14718.
Fixes #15628, #14718 (comment) and WAREHOUSE-PRODUCTION-1R3.
The fixes are:
meta.version
returns apackaging.version.Version
, but our async task requires all args to be strings to serialize as JSON, so cast it to a string.twine
sends empty strings, but empty strings are never valid metadata field values, and fail metadata validation when we pass this topackaging.metadata.Metadata
. Therefore, when pre-parsing metadata from POST bodies, we drop all fields with empty string values.