repology_client.types#

Type definitions for Repology API.

class repology_client.types.ResolvePackageType(*values)#

Bases: StrEnum

Package type enum for the “Project by package name” tool.

See also

repology_client.tools.resolve_package() function

Implements /tools/project-by endpoint.

SOURCE = 'srcname'#
BINARY = 'binname'#
class repology_client.types.ProjectsRange(**data: Any)#

Bases: BaseModel

Object for constructing a string representation of range.

>>> str(ProjectsRange())
''
>>> str(ProjectsRange(start="firefox"))
'firefox'
>>> str(ProjectsRange(end="firefox"))
'..firefox'
>>> str(ProjectsRange(start="firefox", end="firefoxpwa"))
'firefox..firefoxpwa'
model_config = {'defer_build': True, 'extra': 'forbid', 'validate_assignment': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

start: str#

First project to be included in range.

end: str#

Last project to be included in range.

class repology_client.types.Package(**data: Any)#

Bases: BaseModel

Package description type.

See also

repology_client.get_packages() function

Implements /api/v1/project/<project> endpoint.

repology_client.get_projects() function

Implements /api/v1/projects/ endpoint.

model_config = {'defer_build': True, 'frozen': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

repo: str#

Name of repository for this package.

visiblename: str#

Package name as shown to the user by Repology.

version: str#

Package version (sanitized, as shown by Repology).

status: str#

Package status (‘newest’, ‘unique’, ‘outdated’, etc.).

subrepo: str | None#

Name of subrepository (if applicable).

srcname: str | None#

Package name as used in repository - source package name.

binname: str | None#

Package name as used in repository - binary package name.

origversion: str | None#

Package version as in repository.

summary: str | None#

One-line description of the package.

categories: frozenset[str] | None#

List of package categories.

licenses: frozenset[str] | None#

List of package licenses.

maintainers: frozenset[str] | None#

List of package maintainers.

class repology_client.types.Problem(**data: Any)#

Bases: BaseModel

Type for repository problem entries.

See also

repology_client.get_problems() function

Implements /api/v1/repository/<repo>/problems and /api/v1/maintainer/<maint>/problems-for-repo/<repo> endpoints.

repology_client.utils.format_link_status() function

model_config = {'defer_build': True, 'frozen': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str#

Problem type.

data: dict[str, JsonValue]#

Additional details on the problem.

project_name: str#

Repology project name.

version: str#

Normalized version as used by Repology.

rawversion: str#

Repository package version.

srcname: str | None#

Repository (source) package name.

binname: str | None#

Repository (binary) package name.

class repology_client.types.LinkStatus(code: int, message: str | None = None)#

Bases: int

Status code object for repository problems API.

>>> a = LinkStatus(-1, "custom error")
>>> b = LinkStatus(404)
>>> str(a), a
('custom error', LinkStatus(code=-1, message='custom error'))
>>> str(b), b
('HTTP 404', LinkStatus(code=404, message=None))