This is better than just checkin if both the releases and versions list are empty.
This commit is contained in:
@@ -85,6 +85,7 @@ class ProductData:
|
|||||||
self.versions_path: Path = VERSIONS_PATH / f"{name}.json"
|
self.versions_path: Path = VERSIONS_PATH / f"{name}.json"
|
||||||
self.releases = {}
|
self.releases = {}
|
||||||
self.versions: dict[str, ProductVersion] = {}
|
self.versions: dict[str, ProductVersion] = {}
|
||||||
|
self.updated = False
|
||||||
|
|
||||||
def __enter__(self) -> "ProductData":
|
def __enter__(self) -> "ProductData":
|
||||||
if self.versions_path.is_file():
|
if self.versions_path.is_file():
|
||||||
@@ -109,8 +110,8 @@ class ProductData:
|
|||||||
logging.error(message, exc_info=exc_value)
|
logging.error(message, exc_info=exc_value)
|
||||||
raise ProductUpdateError(message) from exc_value
|
raise ProductUpdateError(message) from exc_value
|
||||||
|
|
||||||
if not self.versions and not self.releases:
|
if not self.updated:
|
||||||
message = f"product data are empty after updating {self}"
|
message = f"no update detected for {self}"
|
||||||
logging.error(message)
|
logging.error(message)
|
||||||
raise ProductUpdateError(message)
|
raise ProductUpdateError(message)
|
||||||
|
|
||||||
@@ -128,12 +129,14 @@ class ProductData:
|
|||||||
logging.info(f"adding release {release} to {self}")
|
logging.info(f"adding release {release} to {self}")
|
||||||
self.releases[release] = ProductRelease.of(self.name, release)
|
self.releases[release] = ProductRelease.of(self.name, release)
|
||||||
|
|
||||||
|
self.updated = True
|
||||||
return self.releases[release]
|
return self.releases[release]
|
||||||
|
|
||||||
def get_version(self, version: str) -> ProductVersion:
|
def get_version(self, version: str) -> ProductVersion:
|
||||||
return self.versions[version] if version in self.versions else None
|
return self.versions[version] if version in self.versions else None
|
||||||
|
|
||||||
def declare_version(self, version: str, date: datetime) -> None:
|
def declare_version(self, version: str, date: datetime) -> None:
|
||||||
|
self.updated = True
|
||||||
if version in self.versions and self.versions[version].date() != date:
|
if version in self.versions and self.versions[version].date() != date:
|
||||||
logging.info(f"overwriting {version} ({self.get_version(version).date()} -> {date}) for {self}")
|
logging.info(f"overwriting {version} ({self.get_version(version).date()} -> {date}) for {self}")
|
||||||
self.versions[version].replace_date(date)
|
self.versions[version].replace_date(date)
|
||||||
|
|||||||
Reference in New Issue
Block a user