[release_table] Improve script for Debian (#315)
- add an 'ignore_empty_releases' to exclude empty releases (which are future releases for Debian), - improve logging, - add the 'YYYY-mm' month_year date format.
This commit is contained in:
@@ -20,6 +20,7 @@ def parse_date(text: str, formats: list[str] = frozenset([
|
||||
def parse_month_year_date(text: str, formats: list[str] = frozenset([
|
||||
"%B %Y", # January 2020
|
||||
"%b %Y", # Jan 2020
|
||||
"%Y-%m", # 2020-01
|
||||
])) -> datetime:
|
||||
"""Parse a given text representing a partial date using a list of formats,
|
||||
adjusting it to the last day of the month.
|
||||
|
||||
@@ -50,6 +50,9 @@ class ProductRelease:
|
||||
else:
|
||||
logging.info(f"set '{field}' in {self} to {new_value}")
|
||||
|
||||
def is_empty(self) -> bool:
|
||||
return len(self.data) == 1 # only the name is set
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"{self.product}#{self.name()}"
|
||||
|
||||
@@ -132,6 +135,13 @@ class ProductData:
|
||||
self.updated = True
|
||||
return self.releases[release]
|
||||
|
||||
def remove_release(self, release: str) -> None:
|
||||
if release not in self.releases:
|
||||
logging.warning(f"release {release} cannot be removed as it does not exist for {self}")
|
||||
return
|
||||
|
||||
logging.info(f"removing release {release} ({self.releases.pop(release)}) from {self}")
|
||||
|
||||
def get_version(self, version: str) -> ProductVersion:
|
||||
return self.versions[version] if version in self.versions else None
|
||||
|
||||
@@ -149,7 +159,7 @@ class ProductData:
|
||||
self.declare_version(version, date)
|
||||
|
||||
def remove_version(self, version: str) -> None:
|
||||
if not self.get_version(version):
|
||||
if version not in self.versions:
|
||||
logging.warning(f"version {version} cannot be removed as it does not exist for {self}")
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user