[Python-Dev] Proposing PEP 345 : Metadata for Python Software Packages 1.2

"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