Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/in_memory.py
Show First 20 Lines • Show All 675 Lines • ▼ Show 20 Lines | def origin_get_one(self, origin_url: str) -> Optional[Origin]: | ||||
return self._origins.get(origin_url) | return self._origins.get(origin_url) | ||||
def origin_get(self, origins: List[str]) -> Iterable[Optional[Origin]]: | def origin_get(self, origins: List[str]) -> Iterable[Optional[Origin]]: | ||||
return [self.origin_get_one(origin_url) for origin_url in origins] | return [self.origin_get_one(origin_url) for origin_url in origins] | ||||
def origin_get_by_sha1(self, sha1s): | def origin_get_by_sha1(self, sha1s): | ||||
return [self._convert_origin(self._origins_by_sha1.get(sha1)) for sha1 in sha1s] | return [self._convert_origin(self._origins_by_sha1.get(sha1)) for sha1 in sha1s] | ||||
def origin_get_range(self, origin_from=1, origin_count=100): | |||||
origin_from = max(origin_from, 1) | |||||
if origin_from <= len(self._origins_by_id): | |||||
max_idx = origin_from + origin_count - 1 | |||||
if max_idx > len(self._origins_by_id): | |||||
max_idx = len(self._origins_by_id) | |||||
for idx in range(origin_from - 1, max_idx): | |||||
origin = self._convert_origin(self._origins[self._origins_by_id[idx]]) | |||||
yield {"id": idx + 1, **origin} | |||||
def origin_list( | def origin_list( | ||||
self, page_token: Optional[str] = None, limit: int = 100 | self, page_token: Optional[str] = None, limit: int = 100 | ||||
) -> PagedResult[Origin]: | ) -> PagedResult[Origin]: | ||||
origin_urls = sorted(self._origins) | origin_urls = sorted(self._origins) | ||||
from_ = bisect.bisect_left(origin_urls, page_token) if page_token else 0 | from_ = bisect.bisect_left(origin_urls, page_token) if page_token else 0 | ||||
next_page_token = None | next_page_token = None | ||||
# Take one more origin so we can reuse it as the next page token if any | # Take one more origin so we can reuse it as the next page token if any | ||||
▲ Show 20 Lines • Show All 584 Lines • Show Last 20 Lines |