INNER CODE UNIT · Python
filter_by_available_docker_images
erikbern/ann-benchmarks · ann_benchmarks/main.py:174
def filter_by_available_docker_images(definitions: List[Definition]) -> List[Definition]:
"""
Filters out the algorithm definitions that do not have an associated, available Docker images.
This function uses the Docker API to list all Docker images available in the system. It
then checks the Docker tags associated with each algorithm definition against the list
of available Docker images, filtering out those that are unavailable.
Args:
definitions (List[Definition]): A list of algorithm definitions to be filtered.
Returns:
List[Definition]: A list of algorithm definitions that are associated with available Docker images.
"""
docker_client = docker.from_env()
docker_tags = {tag.split(":")[0] for image in docker_client.images.list() for tag in image.tags}
missing_docker_images = set(d.docker_tag for d in definitions).difference(docker_tags)