diff --git a/src/pycalver/v1version.py b/src/pycalver/v1version.py index dac43a0..af1af25 100644 --- a/src/pycalver/v1version.py +++ b/src/pycalver/v1version.py @@ -103,7 +103,10 @@ def _parse_field_values(field_values: FieldValues) -> version.V1VersionInfo: bid = fvals['bid'] if 'bid' in fvals else "0001" year = int(fvals['year']) if 'year' in fvals else None - doy = int(fvals['doy' ]) if 'doy' in fvals else None + if year is not None and year < 100: + year += 2000 + + doy = int(fvals['doy']) if 'doy' in fvals else None month: typ.Optional[int] dom : typ.Optional[int] @@ -211,6 +214,10 @@ def _parse_version_info(pattern_groups: PatternGroups) -> version.V1VersionInfo: >>> (vnfo.year, vnfo.month, vnfo.quarter, vnfo.bid, vnfo.tag) (2018, 11, 4, '0099', 'final') + >>> vnfo = _parse_version_info({'year': "18", 'month': "11"}) + >>> (vnfo.year, vnfo.month, vnfo.quarter) + (2018, 11, 4) + >>> vnfo = _parse_version_info({'year': "2018", 'doy': "11", 'bid': "099", 'tag': "b"}) >>> (vnfo.year, vnfo.month, vnfo.dom, vnfo.bid, vnfo.tag) (2018, 1, 11, '099', 'beta') diff --git a/src/pycalver/v2version.py b/src/pycalver/v2version.py index 4ee941d..f3a85cd 100644 --- a/src/pycalver/v2version.py +++ b/src/pycalver/v2version.py @@ -109,6 +109,10 @@ def _parse_version_info(field_values: FieldValues) -> version.V2VersionInfo: >>> (vinfo.year_y, vinfo.month, vinfo.quarter, vinfo.bid, vinfo.tag) (2018, 11, 4, '0099', 'final') + >>> vinfo = _parse_version_info({'year_y': "18", 'month': "11"}) + >>> (vinfo.year_y, vinfo.month, vinfo.quarter) + (2018, 11, 4) + >>> vinfo = _parse_version_info({'year_y': "2018", 'doy': "11", 'bid': "099", 'tag': "beta"}) >>> (vinfo.year_y, vinfo.month, vinfo.dom, vinfo.doy, vinfo.bid, vinfo.tag) (2018, 1, 11, 11, '099', 'beta') @@ -162,6 +166,11 @@ def _parse_version_info(field_values: FieldValues) -> version.V2VersionInfo: year_y: MaybeInt = int(fvals['year_y']) if 'year_y' in fvals else None year_g: MaybeInt = int(fvals['year_g']) if 'year_g' in fvals else None + if year_y is not None and year_y < 1000: + year_y += 2000 + if year_g is not None and year_g < 1000: + year_g += 2000 + month: MaybeInt = int(fvals['month']) if 'month' in fvals else None doy : MaybeInt = int(fvals['doy' ]) if 'doy' in fvals else None dom : MaybeInt = int(fvals['dom' ]) if 'dom' in fvals else None