Skip to content

fix(metadata): reject colliding extra names when writing - #1455

Open
vera-rubin wants to merge 1 commit into
pypa:mainfrom
vera-rubin:fix/colliding-extra-names
Open

vera-rubin wants to merge 1 commit into
pypa:mainfrom
vera-rubin:fix/colliding-extra-names

Conversation

@vera-rubin

Copy link
Copy Markdown

With provides_extra=["dev_test", "dev-test"], Metadata.as_rfc822() writes two identical Provides-Extra: dev-test headers. The core metadata specification requires writers to raise an error when extra names clash after normalization.

from packaging.metadata import Metadata

metadata = Metadata.from_raw({
    "metadata_version": "2.1", "name": "example", "version": "1.0",
    "provides_extra": ["dev_test", "dev-test"],
})
metadata.as_rfc822()

We now raise InvalidMetadata for duplicate normalized extra names in the writer. The regression test fails before the fix and passes after it, and the existing test suite passes.

Tested base: ef837aad3127167671eb37b9f6bd8a94ec7ce26e (packaging 26.4.dev0).

— ChipLab

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant