X Tutup
############################ Copyrights and license ############################ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # # Copyright 2013 AKFish # # Copyright 2013 Cameron White # # Copyright 2013 Vincent Jacques # # Copyright 2014 Vincent Jacques # # Copyright 2016 Peter Buckley # # Copyright 2016 humbug # # Copyright 2018 sfdye # # # # This file is part of PyGithub. # # http://pygithub.readthedocs.io/ # # # # PyGithub is free software: you can redistribute it and/or modify it under # # the terms of the GNU Lesser General Public License as published by the Free # # Software Foundation, either version 3 of the License, or (at your option) # # any later version. # # # # PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # # details. # # # # You should have received a copy of the GNU Lesser General Public License # # along with PyGithub. If not, see . # # # ################################################################################ import json class GithubException(Exception): """ Error handling in PyGithub is done with exceptions. This class is the base of all exceptions raised by PyGithub (but :class:`github.GithubException.BadAttributeException`). Some other types of exceptions might be raised by underlying libraries, for example for network-related issues. """ def __init__(self, status, data, headers): super().__init__() self.__status = status self.__data = data self.__headers = headers self.args = [status, data, headers] @property def status(self): """ The status returned by the Github API """ return self.__status @property def data(self): """ The (decoded) data returned by the Github API """ return self.__data @property def headers(self): """ The headers returned by the Github API """ return self.__headers def __str__(self): return f"{self.status} {json.dumps(self.data)}" class BadCredentialsException(GithubException): """ Exception raised in case of bad credentials (when Github API replies with a 401 or 403 HTML status) """ class UnknownObjectException(GithubException): """ Exception raised when a non-existing object is requested (when Github API replies with a 404 HTML status) """ class BadUserAgentException(GithubException): """ Exception raised when request is sent with a bad user agent header (when Github API replies with a 403 bad user agent HTML status) """ class RateLimitExceededException(GithubException): """ Exception raised when the rate limit is exceeded (when Github API replies with a 403 rate limit exceeded HTML status) """ class BadAttributeException(Exception): """ Exception raised when Github returns an attribute with the wrong type. """ def __init__(self, actualValue, expectedType, transformationException): self.__actualValue = actualValue self.__expectedType = expectedType self.__transformationException = transformationException @property def actual_value(self): """ The value returned by Github """ return self.__actualValue @property def expected_type(self): """ The type PyGithub expected """ return self.__expectedType @property def transformation_exception(self): """ The exception raised when PyGithub tried to parse the value """ return self.__transformationException class TwoFactorException(GithubException): """ Exception raised when Github requires a onetime password for two-factor authentication """ class IncompletableObject(GithubException): """ Exception raised when we can not request an object from Github because the data returned did not include a URL """
X Tutup