From fe019fa546f48c24e0ff039390588f2eb3f917fb Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Sat, 22 Dec 2018 00:15:01 +0100 Subject: [PATCH] add build_no and release_tag placeholders --- src/pycalver/parse.py | 2 ++ src/pycalver/version.py | 48 ++++++++++++++++++++++++----------------- test/test_version.py | 28 +++++++++++++----------- 3 files changed, 46 insertions(+), 32 deletions(-) diff --git a/src/pycalver/parse.py b/src/pycalver/parse.py index 91152b8..973d78a 100644 --- a/src/pycalver/parse.py +++ b/src/pycalver/parse.py @@ -41,7 +41,9 @@ RE_PATTERN_PARTS = { 'version' : r"v\d{6}\.\d{4,}(\-(alpha|beta|dev|rc|post))?", 'calver' : r"v\d{6}", 'build' : r"\.\d{4,}", + 'build_no' : r"\d{4,}", 'release' : r"(\-(alpha|beta|dev|rc|post))?", + 'release_tag' : r"(alpha|beta|dev|rc|post)?", } diff --git a/src/pycalver/version.py b/src/pycalver/version.py index 08e0b78..ad68bab 100644 --- a/src/pycalver/version.py +++ b/src/pycalver/version.py @@ -7,22 +7,26 @@ >>> version_info = PYCALVER_RE.match("v201712.0123-alpha").groupdict() >>> assert version_info == { -... "version" : "v201712.0123-alpha", -... "calver" : "v201712", -... "year" : "2017", -... "month" : "12", -... "build" : ".0123", -... "release" : "-alpha", +... "version" : "v201712.0123-alpha", +... "calver" : "v201712", +... "year" : "2017", +... "month" : "12", +... "build" : ".0123", +... "build_no" : "0123", +... "release" : "-alpha", +... "release_tag" : "alpha", ... } >>> >>> version_info = PYCALVER_RE.match("v201712.0033").groupdict() >>> assert version_info == { -... "version" : "v201712.0033", -... "calver" : "v201712", -... "year" : "2017", -... "month" : "12", -... "build" : ".0033", -... "release" : None, +... "version" : "v201712.0033", +... "calver" : "v201712", +... "year" : "2017", +... "month" : "12", +... "build" : ".0033", +... "build_no" : "0033", +... "release" : None, +... "release_tag": None, ... } """ @@ -48,11 +52,11 @@ PYCALVER_PATTERN = r""" ) (?P \. # "." build nr prefix - \d{4,} + (?P\d{4,}) ) (?P \- # "-" release prefix - (?:alpha|beta|dev|rc|post) + (?Palpha|beta|dev|rc|post) )? )(?:\s|$) """ @@ -69,7 +73,9 @@ class VersionInfo(typ.NamedTuple): year : str month : str build : str + build_no : str release : typ.Optional[str] + release_tag : typ.Optional[str] def parse_version_info(version_str: str) -> VersionInfo: @@ -77,13 +83,15 @@ def parse_version_info(version_str: str) -> VersionInfo: >>> vnfo = parse_version_info("v201712.0033-beta") >>> assert vnfo == VersionInfo( - ... version="v201712.0033-beta", + ... version ="v201712.0033-beta", ... pep440_version="201712.33b0", - ... calver="v201712", - ... year="2017", - ... month="12", - ... build=".0033", - ... release="-beta", + ... calver ="v201712", + ... year ="2017", + ... month ="12", + ... build =".0033", + ... build_no ="0033", + ... release ="-beta", + ... release_tag ="beta", ... ) """ match = PYCALVER_RE.match(version_str) diff --git a/test/test_version.py b/test/test_version.py index 7c30c9f..a994715 100644 --- a/test/test_version.py +++ b/test/test_version.py @@ -83,12 +83,14 @@ def test_readme_pycalver1(): version_info = version.PYCALVER_RE.match(version_str).groupdict() assert version_info == { - 'version': "v201712.0001-alpha", - 'calver' : "v201712", - 'year' : "2017", - 'month' : "12", - 'build' : ".0001", - 'release': "-alpha", + 'version' : "v201712.0001-alpha", + 'calver' : "v201712", + 'year' : "2017", + 'month' : "12", + 'build' : ".0001", + 'build_no' : "0001", + 'release' : "-alpha", + 'release_tag': "alpha", } @@ -97,12 +99,14 @@ def test_readme_pycalver2(): version_info = version.PYCALVER_RE.match(version_str).groupdict() assert version_info == { - 'version': "v201712.0033", - 'calver' : "v201712", - 'year' : "2017", - 'month' : "12", - 'build' : ".0033", - 'release': None, + 'version' : "v201712.0033", + 'calver' : "v201712", + 'year' : "2017", + 'month' : "12", + 'build' : ".0033", + 'build_no' : "0033", + 'release' : None, + 'release_tag': None, }