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"]
except (KeyError, ValueError):
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.clients.account import AccountClient
from platformio.clients.http import HTTPClient
from platformio.clients.http import HTTPClient, HTTPClientError
from platformio.package.meta import PackageType
try:
@ -120,7 +120,7 @@ class RegistryClient(HTTPClient):
for value in set(
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:
search_query.append(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)
def get_package(self, type_, owner, name, version=None):
return self.request_json_data(
"get",
"/v3/packages/{owner}/{type}/{name}".format(
type=type_, owner=owner, name=quote(name)
),
params=dict(version=version) if version else None,
)
try:
return self.request_json_data(
"get",
"/v3/packages/{owner}/{type}/{name}".format(
type=type_, owner=owner.lower(), name=quote(name.lower())
),
params=dict(version=version) if version else None,
)
except HTTPClientError as e:
if e.response.status_code == 404:
return None
raise e