forked from platformio/platformio-core
Rename search "filters" to "qualifiers"
This commit is contained in:
@ -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",
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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)
|
||||||
|
@ -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"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user