Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/in_memory.py
Show First 20 Lines • Show All 806 Lines • ▼ Show 20 Lines | def origin_get(self, origin): | ||||
if 'id' in origin: | if 'id' in origin: | ||||
origin_id = origin['id'] | origin_id = origin['id'] | ||||
elif 'type' in origin and 'url' in origin: | elif 'type' in origin and 'url' in origin: | ||||
origin_id = self._origin_id(origin) | origin_id = self._origin_id(origin) | ||||
else: | else: | ||||
raise ValueError('Origin must have either id or (type and url).') | raise ValueError('Origin must have either id or (type and url).') | ||||
origin = None | origin = None | ||||
# self._origin_id can return None | # self._origin_id can return None | ||||
if origin_id is not None: | if origin_id is not None and origin_id <= len(self._origins): | ||||
origin = copy.deepcopy(self._origins[origin_id-1]) | origin = copy.deepcopy(self._origins[origin_id-1]) | ||||
origin['id'] = origin_id | origin['id'] = origin_id | ||||
return origin | return origin | ||||
def origin_get_range(self, origin_from=1, origin_count=100): | def origin_get_range(self, origin_from=1, origin_count=100): | ||||
"""Retrieve ``origin_count`` origins whose ids are greater | """Retrieve ``origin_count`` origins whose ids are greater | ||||
or equal than ``origin_from``. | or equal than ``origin_from``. | ||||
▲ Show 20 Lines • Show All 188 Lines • ▼ Show 20 Lines | def origin_visit_get(self, origin, last_visit=None, limit=None): | ||||
default to None | default to None | ||||
limit (int): maximum number of results to return, | limit (int): maximum number of results to return, | ||||
default to None | default to None | ||||
Yields: | Yields: | ||||
List of visits. | List of visits. | ||||
""" | """ | ||||
if origin <= len(self._origin_visits): | |||||
visits = self._origin_visits[origin-1] | visits = self._origin_visits[origin-1] | ||||
if last_visit is not None: | if last_visit is not None: | ||||
visits = visits[last_visit:] | visits = visits[last_visit:] | ||||
if limit is not None: | if limit is not None: | ||||
visits = visits[:limit] | visits = visits[:limit] | ||||
for visit in visits: | for visit in visits: | ||||
visit_id = visit['visit'] | visit_id = visit['visit'] | ||||
yield copy.deepcopy(self._origin_visits[origin-1][visit_id-1]) | yield copy.deepcopy(self._origin_visits[origin-1][visit_id-1]) | ||||
def origin_visit_get_by(self, origin, visit): | def origin_visit_get_by(self, origin, visit): | ||||
"""Retrieve origin visit's information. | """Retrieve origin visit's information. | ||||
Args: | Args: | ||||
origin (int): the origin's identifier | origin (int): the origin's identifier | ||||
Returns: | Returns: | ||||
▲ Show 20 Lines • Show All 249 Lines • Show Last 20 Lines |