Skip to content

Commit 93b63d8

Browse files
committed
Parse score Date
Signed-off-by: 404-geek <pranayd61@gmail.com>
1 parent 027caac commit 93b63d8

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/scorecode/contrib/django/models.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,30 @@ class ScoringTool(models.TextChoices):
5959
help_text=_("Date when the scoring was calculated on the package"),
6060
)
6161

62+
@classmethod
63+
def parse_score_date(cls, date_str, formats=None):
64+
"""
65+
Parse a date string into a timezone-aware datetime object,
66+
or return None if parsing fails.
67+
"""
68+
from datetime import datetime
69+
from django.utils import timezone
70+
71+
if not formats:
72+
formats = ["%Y-%m-%d", "%Y-%m-%dT%H:%M:%SZ"]
73+
74+
if date_str:
75+
for fmt in formats:
76+
try:
77+
naive_datetime = datetime.strptime(date_str, fmt)
78+
return timezone.make_aware(
79+
naive_datetime, timezone.get_current_timezone()
80+
)
81+
except ValueError:
82+
continue
83+
84+
return None
85+
6286
class Meta:
6387
abstract = True
6488

0 commit comments

Comments
 (0)