Fix declare_version (#531)

Some scripts, such as declare.py, may provide dates and not datetimes.
This update make the declare_version work for both.
This commit is contained in:
Marc Wrobel
2025-11-15 09:20:47 +01:00
parent f37d6a255d
commit a5d56e1705
2 changed files with 7 additions and 1 deletions

View File

@@ -119,3 +119,7 @@ def today_at_end_of_day() -> datetime.datetime:
def today() -> datetime.date:
"""Create a date object with today's date."""
return datetime.datetime.now(tz=datetime.timezone.utc).date()
def to_datetime(dt: datetime.date) -> datetime.datetime:
"""Convert a date object to a datetime object at midnight."""
return datetime.datetime(dt.year, dt.month, dt.day, tzinfo=datetime.timezone.utc)

View File

@@ -180,8 +180,10 @@ class ProductData:
def get_version(self, version_name: str) -> ProductVersion:
return self.versions[version_name] if version_name in self.versions else None
def declare_version(self, version_name: str, versions_date: datetime) -> None:
def declare_version(self, version_name: str, versions_date: datetime|date) -> None:
self.updated = True
versions_date = dates.to_datetime(versions_date) if isinstance(versions_date, date) else versions_date
if versions_date > dates.today_at_end_of_day():
logging.warning(f"skipping declaration of version {version_name} with future date {versions_date} for {self}")
return