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
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)] |
| … | … | @@ -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"\.?( |
|
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 |
