|
11 | 11 | # A marker used in the second and third parts of the `parts` tuple, for |
12 | 12 | # versions that don't have those segments, to sort properly. An example |
13 | 13 | # of versions in sort order ('highest' last): |
14 | | -# 1.0b1 ((1,0), ('b',1), ('f',)) |
15 | | -# 1.0.dev345 ((1,0), ('f',), ('dev', 345)) |
16 | | -# 1.0 ((1,0), ('f',), ('f',)) |
17 | | -# 1.0.post256.dev345 ((1,0), ('f',), ('f', 'post', 256, 'dev', 345)) |
18 | | -# 1.0.post345 ((1,0), ('f',), ('f', 'post', 345, 'f')) |
| 14 | +# 1.0b1 ((1,0), ('b',1), ('z',)) |
| 15 | +# 1.0.dev345 ((1,0), ('z',), ('dev', 345)) |
| 16 | +# 1.0 ((1,0), ('z',), ('z',)) |
| 17 | +# 1.0.post256.dev345 ((1,0), ('z',), ('z', 'post', 256, 'dev', 345)) |
| 18 | +# 1.0.post345 ((1,0), ('z',), ('z', 'post', 345, 'z')) |
19 | 19 | # ^ ^ ^ |
20 | | -# 'b' < 'f' ---------------------/ | | |
| 20 | +# 'b' < 'z' ---------------------/ | | |
21 | 21 | # | | |
22 | | -# 'dev' < 'f' < 'post' -------------------/ | |
| 22 | +# 'dev' < 'z' ----------------------------/ | |
23 | 23 | # | |
24 | | -# 'dev' < 'f' ----------------------------------------------/ |
25 | | -# Other letters would do, but 'f' for 'final' is kind of nice. |
26 | | -_FINAL_MARKER = ('f',) |
| 24 | +# 'dev' < 'z' ----------------------------------------------/ |
| 25 | +# 'f' for 'final' would be kind of nice, but due to bugs in the support of |
| 26 | +# 'rc' we must use 'z' |
| 27 | +_FINAL_MARKER = ('z',) |
27 | 28 |
|
28 | 29 | _VERSION_RE = re.compile(r''' |
29 | 30 | ^ |
@@ -167,8 +168,9 @@ def parts_to_str(cls, parts): |
167 | 168 | if prerel is not _FINAL_MARKER: |
168 | 169 | s += prerel[0] |
169 | 170 | s += '.'.join(str(v) for v in prerel[1:]) |
| 171 | + # XXX clean up: postdev is always true; code is obscure |
170 | 172 | if postdev and postdev is not _FINAL_MARKER: |
171 | | - if postdev[0] == 'f': |
| 173 | + if postdev[0] == _FINAL_MARKER[0]: |
172 | 174 | postdev = postdev[1:] |
173 | 175 | i = 0 |
174 | 176 | while i < len(postdev): |
|
0 commit comments