repology_client#
repology_client#
Asynchronous wrapper for Repology API.
High-level Functions
- async repology_client.get_packages(project: str, *, session: ClientSession | None = None) Set[Package] #
Access the
/api/v1/project/<project>
endpoint to list packages for a single project.- Parameters:
project – project name on Repology
session –
aiohttp
client session
- Raises:
repology_client.exceptions.EmptyResponse – on empty response
repology_client.exceptions.InvalidInput – if
project
is an empty stringaiohttp.ClientResponseError – on HTTP errors
- Returns:
set of packages
- async repology_client.get_projects(start: str = '', end: str = '', count: int = 200, *, session: ClientSession | None = None, **filters: Any) Mapping[str, Set[Package]] #
Access the
/api/v1/projects/
endpoint to list projects.If both
start
andend
are given, onlystart
is used.- Parameters:
start – name of the first project to start with
end – name of the last project to end with
count – maximum number of projects to fetch
session –
aiohttp
client session
- Raises:
repology_client.exceptions.EmptyResponse – on empty response
aiohttp.ClientResponseError – on HTTP errors
- Returns:
project to packages mapping
- async repology_client.resolve_package(repo: str, name: str, name_type: ResolvePackageType = ResolvePackageType.SOURCE, *, autoresolve: bool = True, session: ClientSession | None = None) Set[Package] #
If you don’t know how a project is named on Repology and therefore cannot use the
get_packages()
function, use this instead.This function uses the
/tools/project-by
utility to resolve a package name into/api/v1/project/<project>
project information.If you disable autoresolve, ambigous package names will raise the
repology_client.exceptions.resolve.MultipleProjectsFound
exception. It will however contain all matching project names, so you can continue.- Parameters:
repo – repository name on Repology
name – package name in the repository
name_type – which name is used, “source” or “binary”
autoresolve – enable automatic ambiguity resolution
session –
aiohttp
client session
- Raises:
repology_client.exceptions.resolve.MultipleProjectsFound – on ambigous package names when automatic resolution is disabled
repology_client.exceptions.resolve.ProjectNotFound – on failed resolve resulting in the “404 Not Found” HTTP error
aiohttp.ClientResponseError – on HTTP errors (except 404)
ValueError – on JSON decode failure
- Returns:
set of packages
Low-level Functions
- async repology_client.api(endpoint: str, params: dict | None = None, *, session: ClientSession | None = None) Any #
Do a single API v1 request.
- Parameters:
endpoint – API endpoint (example:
/projects
)params – URL query string parameters
session –
aiohttp
client session
- Raises:
repology_client.exceptions.EmptyResponse – on empty response
repology_client.exceptions.InvalidInput – on invalid endpoint parameter
aiohttp.ClientResponseError – on HTTP errors
ValueError – on JSON decode failure
- Returns:
decoded JSON response
repology_client.exp#
- repology_client.exp = namespace(api=<function api>, distromap=<function distromap>)#
Asynchronous wrapper for experimental endpoints of Repology API.
High-level Functions
- async repology_client.exp.distromap(fromrepo: str, torepo: str, *, session: ClientSession | None = None) tuple[tuple[tuple[str, ...], tuple[str, ...]], ...] #
Access the
/api/experimental/distromap
endpoint to create intermapping of packages between repositories.- Parameters:
fromrepo – first repository
torepo – second repository
session –
aiohttp
client session
- Raises:
repology_client.exceptions.EmptyResponse – on empty response
repology_client.exceptions.InvalidInput – if repositories are no different or one of them is an empty string
aiohttp.ClientResponseError – on HTTP errors
- Returns:
decoded API response
Low-level Functions
- async repology_client.exp.api(endpoint: str, params: dict | None = None, *, session: ClientSession | None = None) Any #
Do a single Experimental API request.
- Parameters:
endpoint – API endpoint (example:
/distromap
)params – URL query string parameters
session –
aiohttp
client session
- Raises:
repology_client.exceptions.EmptyResponse – on empty response
repology_client.exceptions.InvalidInput – on invalid endpoint parameter
aiohttp.ClientResponseError – on HTTP errors
json.JSONDecodeError – on JSON decode failure
- Returns:
decoded JSON response