Do not raise exception when package is not found (404), return None

This commit is contained in:
Ivan Kravets
2020-08-01 19:58:59 +03:00
parent 6ac538fba4
commit a01b3a2473
2 changed files with 17 additions and 10 deletions

View File

@@ -69,4 +69,6 @@ class HTTPClient(object):
message = response.json()["message"] message = response.json()["message"]
except (KeyError, ValueError): except (KeyError, ValueError):
message = response.text message = response.text
raise HTTPClientError(message) exc = HTTPClientError(message)
exc.response = response
raise exc

View File

@@ -14,7 +14,7 @@
from platformio import __registry_api__, fs from platformio import __registry_api__, fs
from platformio.clients.account import AccountClient from platformio.clients.account import AccountClient
from platformio.clients.http import HTTPClient from platformio.clients.http import HTTPClient, HTTPClientError
from platformio.package.meta import PackageType from platformio.package.meta import PackageType
try: try:
@@ -120,7 +120,7 @@ class RegistryClient(HTTPClient):
for value in set( for value in set(
values if isinstance(values, (list, tuple)) else [values] values if isinstance(values, (list, tuple)) else [values]
): ):
search_query.append("%s:%s" % (name[:-1], value)) search_query.append('%s:"%s"' % (name[:-1], value))
if query: if query:
search_query.append(query) search_query.append(query)
params = dict(query=quote(" ".join(search_query))) params = dict(query=quote(" ".join(search_query)))
@@ -129,10 +129,15 @@ class RegistryClient(HTTPClient):
return self.request_json_data("get", "/v3/packages", params=params) return self.request_json_data("get", "/v3/packages", params=params)
def get_package(self, type_, owner, name, version=None): def get_package(self, type_, owner, name, version=None):
return self.request_json_data( try:
"get", return self.request_json_data(
"/v3/packages/{owner}/{type}/{name}".format( "get",
type=type_, owner=owner, name=quote(name) "/v3/packages/{owner}/{type}/{name}".format(
), type=type_, owner=owner.lower(), name=quote(name.lower())
params=dict(version=version) if version else None, ),
) params=dict(version=version) if version else None,
)
except HTTPClientError as e:
if e.response.status_code == 404:
return None
raise e