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

  • sessionaiohttp client session

Raises:
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 and end are given, only start 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

  • sessionaiohttp client session

Raises:
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

  • sessionaiohttp client session

Raises:
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

  • sessionaiohttp client session

Raises:
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

  • sessionaiohttp client session

Raises:
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

  • sessionaiohttp client session

Raises:
Returns:

decoded JSON response