tarek / distutils.version (http://docs.python.org/distutils/)

This is the new version comparison tool for distutils.

Clone this repository (size: 41.3 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/tarek/distutilsversion/
commit 11: 8e889f48af0b
parent 10: 80be0931b8f5
branch: tarek-postdev
added Setuptools use cases
ta...@MacZiade
10 months ago

Changed (Δ768 bytes):

raw changeset »

test_verlib.py (9 lines added, 0 lines removed)

verlib.py (11 lines added, 3 lines removed)

Up to file-list test_verlib.py:

@@ -96,6 +96,15 @@ class VersionTestCase(unittest.TestCase)
96
96
        self.assertEquals(suggest('1.0rc2'), '1.0c2')
97
97
        self.assertEquals(suggest('walla walla washington'), None)
98
98
99
        # from setuptools
100
        self.assertEquals(suggest('0.4a1.r10'), '0.4a1.post10')
101
        self.assertEquals(suggest('0.7a1dev-r66608'), '0.7a1.dev66608')
102
        self.assertEquals(suggest('0.6a9.dev-r41475'), '0.6a9.dev41475')
103
        self.assertEquals(suggest('2.4preview1'), '2.4c1')
104
        self.assertEquals(suggest('2.4rc1'), '2.4c1')
105
        self.assertEquals(suggest('2.4pre1') , '2.4c1')
106
        self.assertEquals(suggest('2.1-rc2'), None)         # no suggestion
107
99
108
def test_suite():
100
109
    README = os.path.join(os.path.dirname(__file__), 'README.txt')
101
110
    suite = [doctest.DocFileSuite(README), unittest.makeSuite(VersionTestCase)]

Up to file-list verlib.py:

@@ -230,7 +230,7 @@ def suggest_rational_version(s):
230
230
231
231
    # part of this could use maketrans
232
232
    for orig, repl in (('-alpha', 'a'), ('-beta', 'b'), ('alpha', 'a'),
233
                       ('beta', 'b'), ('rc', 'c'), ('-', '.'),
233
                       ('beta', 'b'), ('rc', 'c'),
234
234
                       ('+', '.'), ('_', '.'), (' ', ''), ('.final', ''),
235
235
                       ('final', '')):
236
236
        rs = rs.replace(orig, repl)
@@ -252,15 +252,23 @@ def suggest_rational_version(s):
252
252
    # PyPI stats: 245 (7.56%) better
253
253
    rs = re.sub(r"(\d+[abc])$", r"\g<1>0", rs)
254
254
255
    # the 'dev-rNNN' tag is a dev tag
256
    rs = re.sub(r"\.?(dev-r|dev\.r)\.?(\d+)$", r".dev\2", rs)
257
258
    # The 'r' and the '-' tags are post release tags
259
    #   0.4a1.r10       ->  0.4a1.post10
260
    #   0.9.33-17222    ->  0.9.3.post17222
261
    #   0.9.33-r17222   ->  0.9.3.post17222
262
    rs = re.sub(r"\.?(r|-|-r)\.?(\d+)$", r".post\2", rs)
263
255
264
    # Clean 'r' instead of 'dev' usage:
256
    #   0.4a1.r10       ->  0.4a1.dev10
257
265
    #   0.9.33+r17222   ->  0.9.3.dev17222
258
266
    #   1.0dev123       ->  1.0.dev123
259
267
    #   1.0.git123      ->  1.0.dev123
260
268
    #   1.0.bzr123      ->  1.0.dev123
261
269
    #   0.1a0dev.123    ->  0.1a0.dev123
262
270
    # PyPI stats:  ~150 (~4%) better
263
    rs = re.sub(r"\.?(r|dev|git|bzr)\.?(\d+)$", r".dev\2", rs)
271
    rs = re.sub(r"\.?(dev|git|bzr)\.?(\d+)$", r".dev\2", rs)
264
272
265
273
    # Clean '.pre' (normalized from '-pre' above) instead of 'c' usage:
266
274
    #   0.2.pre1        ->  0.2c1