diff --git a/swh/storage/cassandra/storage.py b/swh/storage/cassandra/storage.py --- a/swh/storage/cassandra/storage.py +++ b/swh/storage/cassandra/storage.py @@ -558,10 +558,12 @@ return {"release:add": len(to_add)} - def release_missing(self, releases): + def release_missing(self, releases: List[Sha1Git]) -> Iterable[Sha1Git]: return self._cql_runner.release_missing(releases) - def release_get(self, releases): + def release_get( + self, releases: List[Sha1Git] + ) -> Iterable[Optional[Dict[str, Any]]]: rows = self._cql_runner.release_get(releases) rels = {} for row in rows: diff --git a/swh/storage/in_memory.py b/swh/storage/in_memory.py --- a/swh/storage/in_memory.py +++ b/swh/storage/in_memory.py @@ -582,10 +582,12 @@ return {"release:add": len(to_add)} - def release_missing(self, releases): + def release_missing(self, releases: List[Sha1Git]) -> Iterable[Sha1Git]: yield from (rel for rel in releases if rel not in self._releases) - def release_get(self, releases): + def release_get( + self, releases: List[Sha1Git] + ) -> Iterable[Optional[Dict[str, Any]]]: for rel_id in releases: if rel_id in self._releases: yield self._releases[rel_id].to_dict() diff --git a/swh/storage/interface.py b/swh/storage/interface.py --- a/swh/storage/interface.py +++ b/swh/storage/interface.py @@ -606,20 +606,22 @@ ... @remote_api_endpoint("release/missing") - def release_missing(self, releases): - """List releases missing from storage + def release_missing(self, releases: List[Sha1Git]) -> Iterable[Sha1Git]: + """List missing release ids from storage Args: - releases: an iterable of release ids + releases: release ids - Returns: + Yields: a list of missing release ids """ ... @remote_api_endpoint("release") - def release_get(self, releases): + def release_get( + self, releases: List[Sha1Git] + ) -> Iterable[Optional[Dict[str, Any]]]: """Given a list of sha1, return the releases's information Args: diff --git a/swh/storage/storage.py b/swh/storage/storage.py --- a/swh/storage/storage.py +++ b/swh/storage/storage.py @@ -680,7 +680,9 @@ @timed @db_transaction_generator() - def release_missing(self, releases, db=None, cur=None): + def release_missing( + self, releases: List[Sha1Git], db=None, cur=None + ) -> Iterable[Sha1Git]: if not releases: return @@ -689,7 +691,9 @@ @timed @db_transaction_generator(statement_timeout=500) - def release_get(self, releases, db=None, cur=None): + def release_get( + self, releases: List[Sha1Git], db=None, cur=None + ) -> Iterable[Optional[Dict[str, Any]]]: for release in db.release_get_from_list(releases, cur): data = converters.db_to_release(dict(zip(db.release_get_cols, release))) yield data if data["target_type"] else None