| @@ 1366-1395 (lines=30) @@ | ||
| 1363 | return rendered |
|
| 1364 | ||
| 1365 | ||
| 1366 | def render(pieces, style): |
|
| 1367 | """Render the given version pieces into the requested style.""" |
|
| 1368 | if pieces["error"]: |
|
| 1369 | return {"version": "unknown", |
|
| 1370 | "full-revisionid": pieces.get("long"), |
|
| 1371 | "dirty": None, |
|
| 1372 | "error": pieces["error"], |
|
| 1373 | "date": None} |
|
| 1374 | ||
| 1375 | if not style or style == "default": |
|
| 1376 | style = "pep440" # the default |
|
| 1377 | ||
| 1378 | if style == "pep440": |
|
| 1379 | rendered = render_pep440(pieces) |
|
| 1380 | elif style == "pep440-pre": |
|
| 1381 | rendered = render_pep440_pre(pieces) |
|
| 1382 | elif style == "pep440-post": |
|
| 1383 | rendered = render_pep440_post(pieces) |
|
| 1384 | elif style == "pep440-old": |
|
| 1385 | rendered = render_pep440_old(pieces) |
|
| 1386 | elif style == "git-describe": |
|
| 1387 | rendered = render_git_describe(pieces) |
|
| 1388 | elif style == "git-describe-long": |
|
| 1389 | rendered = render_git_describe_long(pieces) |
|
| 1390 | else: |
|
| 1391 | raise ValueError("unknown style '%s'" % style) |
|
| 1392 | ||
| 1393 | return {"version": rendered, "full-revisionid": pieces["long"], |
|
| 1394 | "dirty": pieces["dirty"], "error": None, |
|
| 1395 | "date": pieces.get("date")} |
|
| 1396 | ||
| 1397 | ||
| 1398 | class VersioneerBadRootError(Exception): |
|
| @@ 445-474 (lines=30) @@ | ||
| 442 | ||
| 443 | ||
| 444 | def render_git_describe_long(pieces): |
|
| 445 | """TAG-DISTANCE-gHEX[-dirty]. |
|
| 446 | ||
| 447 | Like 'git describe --tags --dirty --always -long'. |
|
| 448 | The distance/hash is unconditional. |
|
| 449 | ||
| 450 | Exceptions: |
|
| 451 | 1: no tags. HEX[-dirty] (note: no 'g' prefix) |
|
| 452 | """ |
|
| 453 | if pieces["closest-tag"]: |
|
| 454 | rendered = pieces["closest-tag"] |
|
| 455 | rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) |
|
| 456 | else: |
|
| 457 | # exception #1 |
|
| 458 | rendered = pieces["short"] |
|
| 459 | if pieces["dirty"]: |
|
| 460 | rendered += "-dirty" |
|
| 461 | return rendered |
|
| 462 | ||
| 463 | ||
| 464 | def render(pieces, style): |
|
| 465 | """Render the given version pieces into the requested style.""" |
|
| 466 | if pieces["error"]: |
|
| 467 | return { |
|
| 468 | "version": "unknown", |
|
| 469 | "full-revisionid": pieces.get("long"), |
|
| 470 | "dirty": None, |
|
| 471 | "error": pieces["error"], |
|
| 472 | "date": None |
|
| 473 | } |
|
| 474 | ||
| 475 | if not style or style == "default": |
|
| 476 | style = "pep440" # the default |
|
| 477 | ||