Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/storage.py
Show First 20 Lines • Show All 302 Lines • ▼ Show 20 Lines | ) -> PagedResult[Content]: | ||||
break | break | ||||
contents.append(content) | contents.append(content) | ||||
assert len(contents) <= limit | assert len(contents) <= limit | ||||
return PagedResult(results=contents, next_page_token=next_page_token) | return PagedResult(results=contents, next_page_token=next_page_token) | ||||
@timed | @timed | ||||
@db_transaction(statement_timeout=500) | @db_transaction(statement_timeout=500) | ||||
def content_get_metadata( | def content_get( | ||||
self, contents: List[bytes], db=None, cur=None | self, contents: List[Sha1], db=None, cur=None | ||||
) -> Dict[bytes, List[Dict]]: | ) -> List[Optional[Content]]: | ||||
result: Dict[bytes, List[Dict]] = {sha1: [] for sha1 in contents} | contents_by_sha1: Dict[Sha1, Optional[Content]] = {} | ||||
for row in db.content_get_metadata_from_sha1s(contents, cur): | for row in db.content_get_metadata_from_sha1s(contents, cur): | ||||
content_meta = dict(zip(db.content_get_metadata_keys, row)) | row_d = dict(zip(db.content_get_metadata_keys, row)) | ||||
result[content_meta["sha1"]].append(content_meta) | content = Content(**row_d) | ||||
return result | contents_by_sha1[content.sha1] = content | ||||
return [contents_by_sha1.get(sha1) for sha1 in contents] | |||||
@timed | @timed | ||||
@db_transaction_generator() | @db_transaction_generator() | ||||
def content_missing( | def content_missing( | ||||
self, contents: List[Dict[str, Any]], key_hash: str = "sha1", db=None, cur=None | self, contents: List[Dict[str, Any]], key_hash: str = "sha1", db=None, cur=None | ||||
) -> Iterable[bytes]: | ) -> Iterable[bytes]: | ||||
if key_hash not in DEFAULT_ALGORITHMS: | if key_hash not in DEFAULT_ALGORITHMS: | ||||
raise StorageArgumentException( | raise StorageArgumentException( | ||||
▲ Show 20 Lines • Show All 1,102 Lines • Show Last 20 Lines |