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

View File

@ -139,7 +139,7 @@ def check_package_duplicates(
found = False
items = (
RegistryClient()
.list_packages(filters=dict(types=[type], names=[name]))
.list_packages(qualifiers=dict(types=[type], names=[name]))
.get("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()
)
type_plural = "libraries" if data["type"] == "library" else (data["type"] + "s")
click.echo()
click.echo(
"%s/%s"
@ -51,7 +50,7 @@ def package_show_cmd(spec, pkg_type):
)
)
click.echo(
"%s%s%s • Published %s"
"%s%s%s • Published on %s"
% (
data["type"].capitalize(),
data["version"]["name"],
@ -61,6 +60,7 @@ def package_show_cmd(spec, pkg_type):
)
click.echo()
type_plural = "libraries" if data["type"] == "library" else (data["type"] + "s")
click.secho(
"https://registry.platformio.org/%s/%s/%s"
% (type_plural, data["owner"]["username"], quote(data["name"])),
@ -127,12 +127,12 @@ def fetch_package_data(spec, pkg_type=None):
return client.get_package(
pkg_type, spec.owner, spec.name, version=spec.requirements
)
filters = dict(names=spec.name.lower())
qualifiers = dict(names=spec.name.lower())
if pkg_type:
filters["types"] = pkg_type
qualifiers["types"] = pkg_type
if spec.owner:
filters["owners"] = spec.owner.lower()
packages = client.list_packages(filters=filters)["items"]
qualifiers["owners"] = spec.owner.lower()
packages = client.list_packages(qualifiers=qualifiers)["items"]
if not packages:
return None
if len(packages) > 1:

View File

@ -55,7 +55,7 @@ class PackageManagerInstallMixin(object):
def _install(
self,
spec,
search_filters=None,
search_qualifiers=None,
skip_dependencies=False,
force=False,
):
@ -94,7 +94,7 @@ class PackageManagerInstallMixin(object):
if spec.external:
pkg = self.install_from_url(spec.url, spec)
else:
pkg = self.install_from_registry(spec, search_filters)
pkg = self.install_from_registry(spec, search_qualifiers)
if not pkg or not pkg.metadata:
raise PackageException(
@ -137,12 +137,12 @@ class PackageManagerInstallMixin(object):
def install_dependency(self, dependency):
spec = self.dependency_to_spec(dependency)
search_filters = {
search_qualifiers = {
key: value
for key, value in dependency.items()
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):
spec = self.ensure_spec(spec)

View File

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