From 7fb9136bf70951a3da3acfedc3d5cff12e7dc12c Mon Sep 17 00:00:00 2001 From: Melody Horn Date: Mon, 29 Mar 2021 15:55:43 -0600 Subject: throw together a very rough draft --- repos/__init__.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 repos/__init__.py (limited to 'repos/__init__.py') diff --git a/repos/__init__.py b/repos/__init__.py new file mode 100644 index 0000000..0f71dd1 --- /dev/null +++ b/repos/__init__.py @@ -0,0 +1,28 @@ +from typing import Mapping, List, Any + +from . import alpine_linux +from .base import Repository + +__all__ = [ + 'get_versions', +] + +def repos_from(module): + for exported in module.__all__: + attr = getattr(module, exported) + if isinstance(attr, Repository): + yield attr + +all_repos: List[Repository] = [ + *repos_from(alpine_linux), +] + +def get_versions(package: str) -> Mapping[str, Mapping[str, str]]: + result = dict() + for repo in all_repos: + repo_versions = repo.get_versions() + if package in repo_versions: + if repo.family not in result: + result[repo.family] = dict() + result[repo.family][repo.repo] = repo_versions[package] + return result -- cgit v1.2.3