[Distutils] Local version identifiers from PEP 440 in practice

Maurits van Rees m.van.rees at zestsoftware.nl
Wed Dec 17 10:45:46 CET 2014


Donald Stufft schreef op 17-12-14 04:59:
>
>> On Dec 16, 2014, at 10:25 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
>> To continue with Maurits' use-case, in order to get /exactly/ 1.3, '===' is the operator to use?  Or are we still
>> discussing that?  Personally, I think
>>
>>   pip install yourthing is 1.3
>>
>
> Currently the === operator will give you that, but it’s not really designed for that. It’s designed as an escape hatch for versions we can’t parse. An example of where this matters is that ==1.3 will match version 1.3.0, but ===1.3 will not. So if we want something better than that for “give me exactly 1.3 without any patches” then that’s under discussion.

Current pip 1.5.6 does not recognize the === operator and gives a 
ValueError.  That is expected.

pip dev does recognize it, but I do not see the behaviour you say.  Let 
me try from scratch:

$ virtualenv-2.7 venv-newest
$ cd venv-newest
$ . bin/activate
$ pip install -U setuptools  # gets 8.0.4
$ pip install https://github.com/pypa/pip/tarball/develop#egg=pip-dev
$ pip install -U --trusted-host pypi.zestsoftware.nl -f 
http://pypi.zestsoftware.nl/public/packagingtest/ myproject===1.1
Collecting myproject===1.1
   Downloading myproject-1.1+maurits.3.zip
   Requested myproject===1.1, but installing version 1.1+maurits.3
Installing collected packages: myproject
   Running setup.py install for myproject
Successfully installed myproject
$ ls -1 lib/python2.7/site-packages
_markerlib
easy_install.py
easy_install.pyc
myproject
myproject-1.1+maurits.3-py2.7.egg-info
pip
pip-1.5.6.dist-info
pip-6.0.dev1-py2.7.egg-info
pkg_resources.py
pkg_resources.pyc
setuptools
setuptools-8.0.4.dist-info
$ pip list
myproject (1.1+maurits.3)
pip (6.0.dev1)
setuptools (8.0.4)


-- 
Maurits van Rees: http://maurits.vanrees.org/
Zest Software: http://zestsoftware.nl



More information about the Distutils-SIG mailing list