On Thu, 02 Aug 2012, Stefan Behnel wrote: > Bradley M. Froehle, 01.08.2012 18:35: > > Yes, this versioning has also impacted mpi4py which had to add some pretty > > ugly code in setup.py to work around it:
> > https://code.google.com/p/mpi4py/source/detail?r=841e9df > >> I am not sure what is the status on PEP 386 [1] (not yet adopted afaik) > It's in state "Accepted". ah right -- now it is in python3 (but not in python2): (git)novo:~/proj/misc/cpython[2.7]git $> git grep NormalizedVersion 2.7 $> git grep NormalizedVersion master master:Doc/library/packaging.version.rst:.. class:: NormalizedVersion(self, s, error_on_huge_major_num=True) master:Doc/library/packaging.version.rst: >>> NormalizedVersion('1.2b1') < NormalizedVersion('1.2') master:Doc/library/packaging.version.rst: :class:`NormalizedVersion` is used internally by :class:`VersionPredicate` to master:Doc/library/packaging.version.rst: :class:`NormalizedVersion`. master:Doc/library/packaging.version.rst: >>> NormalizedVersion("irrational_version_number") master:Lib/packaging/command/bdist_msi.py:from packaging.version import NormalizedVersion master:Lib/packaging/command/bdist_msi.py:class MSIVersion(NormalizedVersion): master:Lib/packaging/errors.py: See `error_on_huge_major_num` option in `NormalizedVersion` for details. master:Lib/packaging/pypi/dist.py:from packaging.version import (suggest_normalized_version, NormalizedVersion, master:Lib/packaging/pypi/dist.py: self._version = NormalizedVersion(version) master:Lib/packaging/tests/test_version.py:from packaging.version import NormalizedVersion as V master:Lib/packaging/tests/test_version.py: self.assertEqual(repr(V('1.0')), "NormalizedVersion('1.0')") master:Lib/packaging/tests/test_version.py: TypeError: cannot compare NormalizedVersion and str master:Lib/packaging/tests/test_version.py: TypeError: cannot compare NormalizedVersion and str master:Lib/packaging/version.py:__all__ = ['NormalizedVersion', 'suggest_normalized_version', master:Lib/packaging/version.py:class NormalizedVersion: master:Lib/packaging/version.py: """Create a NormalizedVersion instance from a version string. master:Lib/packaging/version.py: the introduction of `NormalizedVersion` was version numbers like master:Lib/packaging/version.py: if not isinstance(other, NormalizedVersion): master:Lib/packaging/version.py: if not isinstance(other, NormalizedVersion): master:Lib/packaging/version.py: If you have a version string that isn't rational (i.e. NormalizedVersion master:Lib/packaging/version.py: - 2312 (53.93%) match NormalizedVersion without change master:Lib/packaging/version.py: NormalizedVersion(s) master:Lib/packaging/version.py: NormalizedVersion(rs) master:Lib/packaging/version.py: return comp, NormalizedVersion(version) master:Lib/packaging/version.py: version = NormalizedVersion(version) > >> parsing the version -- bzr and xpra I believe [2]. So may be it is worth > >> making it '0.17b1' (and use corresponding tags accordingly)? > I guess so. That would fit the StrictVersion scheme. just a side-note -- I didn't know that StrictVersion doesn't play nicely with LooseVersion to any degree: $> python -c 'from distutils.version import LooseVersion as LV, StrictVersion as SV; print SV("0.17") > LV("0.18")' True at least in python3 it pukes: $> python3 -c 'from distutils.version import LooseVersion as LV, StrictVersion as SV; print(SV("0.17") > LV("0.18"))' Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.2/distutils/version.py", line 70, in __gt__ c = self._cmp(other) File "/usr/lib/python3.2/distutils/version.py", line 179, in _cmp if self.version < other.version: TypeError: unorderable types: tuple() < list() -- Yaroslav O. Halchenko Postdoctoral Fellow, Department of Psychological and Brain Sciences Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755 Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419 WWW: http://www.linkedin.com/in/yarik _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel