I can envision a world where we migrate to space-separated everywhere, but I think that would involve a decade of consumers supporting both until everyone updates to a version of setuptools that emits spaces and I'm not sure it's worth it.

Was anyone on the list involved with the decision to use spaces in the spec? Is there some compelling reason we're missing to make the switch?

On November 18, 2019 1:07:50 PM UTC, Thomas Kluyver <thomas@kluyver.me.uk> wrote:
Hi all,

The metadata specification shows the keyword field as a space separated list:
https://packaging.python.org/specifications/core-metadata/#keywords

PEP 566 backs that up, saying that the transformation to JSON should split that field on whitespace:
https://www.python.org/dev/peps/pep-0566/#json-compatible-metadata

However, distutils reads and writes that field as a comma separated list:
https://github.com/python/cpython/blob/5383956583bb758f3828513bcdd011871f24a0e8/Lib/distutils/dist.py#L1096-L1097
https://github.com/python/cpython/blob/5383956583bb758f3828513bcdd011871f24a0e8/Lib/distutils/dist.py#L1141-L1143

And setuptools has inherited that:
https://github.com/pypa/setuptools/blob/68dbb703705cdd64e25261a6fcc1c0cc96bcf431/setuptools/dist.py#L108-L109
https://github.com/pypa/setuptools/blob/68dbb703705cdd64e25261a6fcc1c0cc96bcf431/setuptools/dist.py#L170-L172

Given the dominance of distutils and setuptools, and the difficulty of changing distutils, I suspect it's easier to change the spec to adopt their de-facto standard as the official standard. But I'd like confirmation of this, as it will require some changes in Flit.

The comma-separated format allows keywords containing a space - like 'orbital mechanics' in the example I was investigating (poliastro).

Thanks,
Thomas
--
Distutils-SIG mailing list -- distutils-sig@python.org
To unsubscribe send an email to distutils-sig-leave@python.org
https://mail.python.org/mailman3/lists/distutils-sig.python.org/
Message archived at https://mail.python.org/archives/list/distutils-sig@python.org/message/LFTLGMIIB5PRG7NUUIGGGX4COGX53DMR/