File tree Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -1283,7 +1283,22 @@ def render_pep440_post(pieces):
1283
1283
if pieces ["closest-tag" ]:
1284
1284
rendered = pieces ["closest-tag" ]
1285
1285
if pieces ["distance" ] or pieces ["dirty" ]:
1286
- rendered += ".post%d" % pieces ["distance" ]
1286
+ if ".post" in rendered :
1287
+ # update the existing post tag
1288
+ start = rendered .index (".post" ) + 5
1289
+ if len (rendered ) == start :
1290
+ rendered += "%d" % pieces ["distance" ]
1291
+ else :
1292
+ end = start + 1
1293
+ while end <= len (rendered ) and rendered [start :end ].isdigit ():
1294
+ end += 1
1295
+ end -= 1
1296
+ distance = pieces ["distance" ]
1297
+ if start != end :
1298
+ distance += int (rendered [start :end ])
1299
+ rendered = rendered [:start ] + "%d" % distance + rendered [end :]
1300
+ else :
1301
+ rendered += ".post%d" % pieces ["distance" ]
1287
1302
if pieces ["dirty" ]:
1288
1303
rendered += ".dev0"
1289
1304
rendered += plus_or_dot (pieces )
You can’t perform that action at this time.
0 commit comments