mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-31 02:27:13 +02:00
Do not raise exception when package is not found (404), return None
This commit is contained in:
@ -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
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user