Source code for sdss_brain.api.io

# !/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Filename: io.py
# Project: api
# Author: Brian Cherinka
# Created: Friday, 30th October 2020 1:22:42 pm
# License: BSD 3-clause "New" or "Revised" License
# Copyright (c) 2020 Brian Cherinka
# Last Modified: Friday, 30th October 2020 1:22:43 pm
# Modified By: Brian Cherinka


from __future__ import print_function, division, absolute_import

import httpx
from sdss_brain.exceptions import BrainError


[docs]def send_post_request(url: str, data: dict = None) -> dict: """ A simple httpx post request A simple standalone httpx post request to a specified url, and given an optional data payload. Parameters ---------- url : str The url to send the request to data : dict, optional Input data to send along with the request, by default None Returns ------- dict Extracted response data from response.json() Raises ------ BrainError when an error occurs sending the request """ try: resp = httpx.post(url, data=data) except httpx.RequestError as exc: raise BrainError(f'An error occurred requesting {exc.request.url!r}') from exc else: resp.raise_for_status() data = resp.json() return data