[Distutils] distlib and wheel metadata

Daniel Holth dholth at gmail.com
Wed Feb 15 10:40:47 EST 2017

IIUC PEP 345, the predecessor of PEP 426, replaced Requires with
Requires-Dist because the former was never very well specified, easier to
re-name the field rather than redefine it. bdist_wheel's egg-info
conversion assumes the only useful requirements are in the setuptools
requires.txt. It would make sense to go ahead and delete the obsolete
fields, I'm sure they were overlooked because they are not common in the

>From PEP 345:

   - Deprecated fields:
      - Requires (in favor of Requires-Dist)
      - Provides (in favor of Provides-Dist)
      - Obsoletes (in favor of Obsoletes-Dist)

On Wed, Feb 15, 2017 at 10:31 AM Vinay Sajip <vinay_sajip at yahoo.co.uk>

> > the full METADATA format is documented in the pre-JSON revision of PEP
> 426.
> Can you confirm which exact revision in the PEPs repo you mean? I could
> guess at
> 0451397. That version does not refer to a field "Requires" (rather, the
> more recent
> "Requires-Dist"). Your conversion function reads the existing PKG-INFO,
> updates the
> Metadata-Version, and adds "Provides-Dist" and "Requires-Dist". It does
> not check
> whether the result conforms to that version of the PEP. For example, in
> the presence
> of "Requires" in PKG-INFO, you add "Requires-Dist", possibly leading to an
> ambiguity,
> because they sort of mean the same thing but could contain conflicting
> information
> (for example, different version constraints). The python-dateutils wheel
> which Jim
> referred to contained both "Requires" and "Requires-Dist" fields in its
> file, and, faced with a metadata set with both fields, the old packaging
> code used
> by distlib to handle the different metadata versions raised a "Unknown
> metadata set"
> error. In the face of ambiguity, it's refusing the temptation to guess :-)
> If the conversion function adds "Requires-Dist" but doesn't remove
> "Requires", I'm not
> sure it conforms to that version of the PEP.
> Regards,
> Vinay Sajip
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20170215/6598cf1f/attachment.html>

More information about the Distutils-SIG mailing list