Rename search "filters" to "qualifiers"

This commit is contained in:
Ivan Kravets
2022-03-30 14:43:02 +03:00
parent f7b5a7bed8
commit bd202f55ce
5 changed files with 28 additions and 27 deletions

View File

@ -105,11 +105,10 @@ class RegistryClient(HTTPClient):
x_with_authorization=True, x_with_authorization=True,
) )
def list_packages(self, query=None, filters=None, page=None): def list_packages(self, query=None, qualifiers=None, page=None, sort=None):
assert query or filters
search_query = [] search_query = []
if filters: if qualifiers:
valid_filters = ( valid_qualifiers = (
"authors", "authors",
"keywords", "keywords",
"frameworks", "frameworks",
@ -120,8 +119,8 @@ class RegistryClient(HTTPClient):
"owners", "owners",
"types", "types",
) )
assert set(filters.keys()) <= set(valid_filters) assert set(qualifiers.keys()) <= set(valid_qualifiers)
for name, values in filters.items(): for name, values in qualifiers.items():
for value in set( for value in set(
values if isinstance(values, (list, tuple)) else [values] values if isinstance(values, (list, tuple)) else [values]
): ):
@ -131,6 +130,8 @@ class RegistryClient(HTTPClient):
params = dict(query=" ".join(search_query)) params = dict(query=" ".join(search_query))
if page: if page:
params["page"] = int(page) params["page"] = int(page)
if sort:
params["sort"] = sort
return self.fetch_json_data( return self.fetch_json_data(
"get", "get",
"/v3/search", "/v3/search",

View File

@ -139,7 +139,7 @@ def check_package_duplicates(
found = False found = False
items = ( items = (
RegistryClient() RegistryClient()
.list_packages(filters=dict(types=[type], names=[name])) .list_packages(qualifiers=dict(types=[type], names=[name]))
.get("items") .get("items")
) )
if not items: if not items:

View File

@ -41,7 +41,6 @@ def package_show_cmd(spec, pkg_type):
"Could not find '%s' package in the PlatormIO Registry" % spec.humanize() "Could not find '%s' package in the PlatormIO Registry" % spec.humanize()
) )
type_plural = "libraries" if data["type"] == "library" else (data["type"] + "s")
click.echo() click.echo()
click.echo( click.echo(
"%s/%s" "%s/%s"
@ -51,7 +50,7 @@ def package_show_cmd(spec, pkg_type):
) )
) )
click.echo( click.echo(
"%s%s%s • Published %s" "%s%s%s • Published on %s"
% ( % (
data["type"].capitalize(), data["type"].capitalize(),
data["version"]["name"], data["version"]["name"],
@ -61,6 +60,7 @@ def package_show_cmd(spec, pkg_type):
) )
click.echo() click.echo()
type_plural = "libraries" if data["type"] == "library" else (data["type"] + "s")
click.secho( click.secho(
"https://registry.platformio.org/%s/%s/%s" "https://registry.platformio.org/%s/%s/%s"
% (type_plural, data["owner"]["username"], quote(data["name"])), % (type_plural, data["owner"]["username"], quote(data["name"])),
@ -127,12 +127,12 @@ def fetch_package_data(spec, pkg_type=None):
return client.get_package( return client.get_package(
pkg_type, spec.owner, spec.name, version=spec.requirements pkg_type, spec.owner, spec.name, version=spec.requirements
) )
filters = dict(names=spec.name.lower()) qualifiers = dict(names=spec.name.lower())
if pkg_type: if pkg_type:
filters["types"] = pkg_type qualifiers["types"] = pkg_type
if spec.owner: if spec.owner:
filters["owners"] = spec.owner.lower() qualifiers["owners"] = spec.owner.lower()
packages = client.list_packages(filters=filters)["items"] packages = client.list_packages(qualifiers=qualifiers)["items"]
if not packages: if not packages:
return None return None
if len(packages) > 1: if len(packages) > 1:

View File

@ -55,7 +55,7 @@ class PackageManagerInstallMixin(object):
def _install( def _install(
self, self,
spec, spec,
search_filters=None, search_qualifiers=None,
skip_dependencies=False, skip_dependencies=False,
force=False, force=False,
): ):
@ -94,7 +94,7 @@ class PackageManagerInstallMixin(object):
if spec.external: if spec.external:
pkg = self.install_from_url(spec.url, spec) pkg = self.install_from_url(spec.url, spec)
else: else:
pkg = self.install_from_registry(spec, search_filters) pkg = self.install_from_registry(spec, search_qualifiers)
if not pkg or not pkg.metadata: if not pkg or not pkg.metadata:
raise PackageException( raise PackageException(
@ -137,12 +137,12 @@ class PackageManagerInstallMixin(object):
def install_dependency(self, dependency): def install_dependency(self, dependency):
spec = self.dependency_to_spec(dependency) spec = self.dependency_to_spec(dependency)
search_filters = { search_qualifiers = {
key: value key: value
for key, value in dependency.items() for key, value in dependency.items()
if key in ("authors", "platforms", "frameworks") if key in ("authors", "platforms", "frameworks")
} }
return self._install(spec, search_filters=search_filters or None) return self._install(spec, search_qualifiers=search_qualifiers or None)
def install_from_url(self, url, spec, checksum=None): def install_from_url(self, url, spec, checksum=None):
spec = self.ensure_spec(spec) spec = self.ensure_spec(spec)

View File

@ -79,14 +79,14 @@ class RegistryFileMirrorIterator(object):
class PackageManageRegistryMixin(object): class PackageManageRegistryMixin(object):
def install_from_registry(self, spec, search_filters=None): def install_from_registry(self, spec, search_qualifiers=None):
if spec.owner and spec.name and not search_filters: if spec.owner and spec.name and not search_qualifiers:
package = self.fetch_registry_package(spec) package = self.fetch_registry_package(spec)
if not package: if not package:
raise UnknownPackageError(spec.humanize()) raise UnknownPackageError(spec.humanize())
version = self.pick_best_registry_version(package["versions"], spec) version = self.pick_best_registry_version(package["versions"], spec)
else: else:
packages = self.search_registry_packages(spec, search_filters) packages = self.search_registry_packages(spec, search_qualifiers)
if not packages: if not packages:
raise UnknownPackageError(spec.humanize()) raise UnknownPackageError(spec.humanize())
if len(packages) > 1: if len(packages) > 1:
@ -126,17 +126,17 @@ class PackageManageRegistryMixin(object):
self._registry_client = RegistryClient() self._registry_client = RegistryClient()
return self._registry_client return self._registry_client
def search_registry_packages(self, spec, filters=None): def search_registry_packages(self, spec, qualifiers=None):
assert isinstance(spec, PackageSpec) assert isinstance(spec, PackageSpec)
filters = filters or {} qualifiers = qualifiers or {}
if spec.id: if spec.id:
filters["ids"] = str(spec.id) qualifiers["ids"] = str(spec.id)
else: else:
filters["types"] = self.pkg_type qualifiers["types"] = self.pkg_type
filters["names"] = spec.name.lower() qualifiers["names"] = spec.name.lower()
if spec.owner: if spec.owner:
filters["owners"] = spec.owner.lower() qualifiers["owners"] = spec.owner.lower()
return self.get_registry_client_instance().list_packages(filters=filters)[ return self.get_registry_client_instance().list_packages(qualifiers=qualifiers)[
"items" "items"
] ]