Source code for esgprep.fetchini.misc

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
    :platform: Unix
    :synopsis: Useful functions to use with this module.

"""

import requests

from custom_exceptions import *


[docs]def gh_request_content(url, auth=None): """ Gets the GitHub content of a file or a directory. :param str url: The GitHub url to request :param *requests.auth.HTTPBasicAuth* auth: The authenticator object :returns: The GitHub request content :rtype: *requests.models.Response* :raises Error: If user not authorized to read GitHub repository :raises Error: If user exceed the GitHub API rate limit :raises Error: If the queried content does not exist :raises Error: If the GitHub request fails for other reasons """ GitHubException.URI = url r = requests.get(url, auth=auth) if r.status_code == 200: return r elif r.status_code == 401: raise GitHubUnauthorized() elif r.status_code == 403: raise GitHubAPIRateLimit() elif r.status_code == 404: raise GitHubFileNotFound() else: raise GitHubConnectionError()