Skip to content

Commit 7539de9

Browse files
committed
Fix regex and import warnings
Signed-off-by: Zalan Blenessy <zalan.blenessy@volvocars.com>
1 parent c14c92f commit 7539de9

File tree

2 files changed

+7
-16
lines changed

2 files changed

+7
-16
lines changed

src/spdx_tools/spdx/datetime_conversions.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#
33
# SPDX-License-Identifier: Apache-2.0
44
import re
5+
import warnings
56
from datetime import datetime, timezone
67

78

@@ -14,13 +15,12 @@ def datetime_from_str(date_str: str) -> datetime:
1415

1516
# Based on the https://www.w3.org/TR/xmlschema11-2/#dateTimeStamp
1617
# The secondFrag allows fractional second notation as well.
17-
# normalize to micro seconds so that we can use %f with strptime
18-
date_str = re.sub(r"\.(\d{1,6})\d*Z$", r".\1Z", date_str)
18+
# truncate the microsecond part
19+
date_str = re.sub(r"\.\d*Z$", "Z", date_str)
1920
warnings.warn(
20-
"Invalid date format. Expected YYYY-MM-DDThh:mm:ssZ "
21-
"Sub-second fractions have been discarded",
21+
"Invalid date format. Expected YYYY-MM-DDThh:mm:ssZ. Sub-second fractions have been discarded.",
2222
category=UserWarning,
23-
stacklevel=2
23+
stacklevel=2,
2424
)
2525
return datetime.strptime(date_str, "%Y-%m-%dT%H:%M:%SZ") # raises ValueError if format does not match
2626

tests/spdx/test_datetime_conversions.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,8 @@ def test_datetime_from_str():
4848
date_str = "2010-03-04T05:45:11.0Z"
4949
assert datetime_from_str(date_str) == datetime(2010, 3, 4, 5, 45, 11)
5050

51-
# implicit notation
52-
date_str = "2010-03-04T05:45:11.1Z"
53-
assert datetime_from_str(date_str) == datetime(2010, 3, 4, 5, 45, 11, 100000)
54-
55-
# explicity notation
56-
date_str = "2010-03-04T05:45:11.123456Z"
57-
assert datetime_from_str(date_str) == datetime(2010, 3, 4, 5, 45, 11, 123456)
58-
59-
# truncation of nano seconds
60-
date_str = "2010-03-04T05:45:11.1234567Z"
61-
assert datetime_from_str(date_str) == datetime(2010, 3, 4, 5, 45, 11, 123456)
51+
date_str = "2010-03-04T05:45:11.123456789Z"
52+
assert datetime_from_str(date_str) == datetime(2010, 3, 4, 5, 45, 11)
6253

6354

6455
@pytest.mark.parametrize(

0 commit comments

Comments
 (0)