[Python-Dev] Proposing PEP 345 : Metadata for Python Software Packages 1.2 (original) (raw)

"Martin v. Löwis" martin at v.loewis.de
Mon Dec 28 10:15:40 CET 2009


david.lyon at preisshare.net wrote:

No application developer will quickly figure out what a tilde means. Maybe it means 'roughly', but it requires too much thought and is ambiguous. 2.5 is not roughly 2.5.2. It is the same exactly.

Before we had : Requires-Python: 2.5, 2.6 That made much more sense. It was simple and unambiguous, and is relevant to typical packaging scenarios. Unfortunately, it is fairly ambiguous, and makes no sense. It means "requires Python 2.5 AND requires Python 2.6", which is a requirement that no single version can meet. No, it means a library requires either python 2.5 OR python 2.6 to be installed properly.

Well, the PEP says that the comma means "and", see

http://www.python.org/dev/peps/pep-0345/#version-specifiers

If the comma would mean "or", then what would ">1.0, !=1.3.4, <2.0" mean?

above 1.0 OR unequal to 1.3.4 OR below 2.0

That would mean that any version would match that spec, and then the spec would be meaningless. If that's not clear, ask whether 4.0 would match: yes, it would, because it's >1.0. What about 0.9: yes, it's <2.0.

Regards, Martin



More information about the Python-Dev mailing list