Skip to content
network.py 618 B
Newer Older
"""Network requests module."""

import typing
from json.decoder import JSONDecodeError

import click
import requests
from requests.exceptions import RequestException

decentral1se's avatar
decentral1se committed
from librehosters_cli.settings import TIMEOUT
decentral1se's avatar
decentral1se committed

def _get_json(url: typing.Text, timeout: float = TIMEOUT) -> typing.Dict:
    """Retrieve JSON payload with the HTTP GET method.

decentral1se's avatar
decentral1se committed
    :raises click.UsageError
    :return A JSON response
    """
    try:
        return requests.get(url, timeout=timeout).json()
    except (RequestException, JSONDecodeError):
        message = 'Unable to retrieve {}'.format(url)
decentral1se's avatar
decentral1se committed
        raise click.UsageError(message)