fix parsing of two digit years

This commit is contained in:
Manuel Barkhau 2020-10-08 20:02:27 +00:00
parent 7ef468e0e8
commit 86a321b287
2 changed files with 17 additions and 1 deletions

View file

@ -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')

View file

@ -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