swh.alter.utils module#

swh.alter.utils.iter_swhids_grouped_by_type(swhids: Iterable[ExtendedSWHID], *, handlers: Mapping[ExtendedObjectType, Callable[[C], Iterable[T]]], chunker: Callable[[Collection[ExtendedSWHID]], Iterable[C]] | None = None) Iterable[T][source]#

Work on a iterable of SWHIDs grouped by their type, running a different handler for each type.

The object types will be in the same order as in handlers.

Parameters:
  • swhids – an iterable over some SWHIDs

  • handlers – a dictionary mapping each object type to an handler, taking a collection of swhids and returning an iterable

  • chunker – an optional function to split the SWHIDs of same object type into multiple “chunks”. It can also transform the iterable into a more convenient collection.

Returns: an iterable over the handlers’ results

swh.alter.utils.filter_objects_missing_from_storage(storage: StorageInterface, swhids: Iterable[ExtendedSWHID]) List[ExtendedSWHID][source]#
swh.alter.utils.get_filtered_objects(storage: StorageInterface, get_objects: Callable[[int], Collection[ExtendedSWHID]], max_results: int) Collection[ExtendedSWHID][source]#

Call get_objects(limit) filtering out results with filter_objects_missing_from_storage.

If some objects were filtered, call the function again with an increasing limit until max_results objects are returned.