Changeset View
Changeset View
Standalone View
Standalone View
swh/provenance/model.py
Show All 13 Lines | |||||
class OriginEntry: | class OriginEntry: | ||||
def __init__(self, url: str, snapshot: Sha1Git) -> None: | def __init__(self, url: str, snapshot: Sha1Git) -> None: | ||||
self.url = url | self.url = url | ||||
self.id = Origin(url=self.url).id | self.id = Origin(url=self.url).id | ||||
self.snapshot = snapshot | self.snapshot = snapshot | ||||
self._revisions: Optional[List[RevisionEntry]] = None | self._revisions: Optional[List[RevisionEntry]] = None | ||||
self._revisions_count = -1 | |||||
def retrieve_revisions(self, archive: ArchiveInterface) -> None: | def retrieve_revisions(self, archive: ArchiveInterface) -> None: | ||||
if self._revisions is None: | if self._revisions is None: | ||||
self._revisions = [ | self._revisions = [ | ||||
RevisionEntry(rev) for rev in archive.snapshot_get_heads(self.snapshot) | RevisionEntry(rev) for rev in archive.snapshot_get_heads(self.snapshot) | ||||
] | ] | ||||
self._revisions_count = len(self._revisions) | |||||
@property | |||||
def revision_count(self) -> int: | |||||
return self._revisions_count | |||||
vlorentz: make sure we don't accidentally return an incorrect value | |||||
@property | @property | ||||
def revisions(self) -> Iterator[RevisionEntry]: | def revisions(self) -> Iterator[RevisionEntry]: | ||||
if self._revisions is None: | if self._revisions is None: | ||||
raise RuntimeError( | raise RuntimeError( | ||||
"Revisions of this node has not yet been retrieved. " | "Revisions of this node has not yet been retrieved. " | ||||
"Please call retrieve_revisions() before using this property." | "Please call retrieve_revisions() before using this property." | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 112 Lines • Show Last 20 Lines |
make sure we don't accidentally return an incorrect value