打印模块的异常结构
BaseException
Exception
OSError
RequestException
ConnectionError
ConnectTimeout
Timeout
ReadTimeout
HTTPError
TooManyRedirects
URLRequired
Warning
HTTPWarning
DependencyWarning
RequestsWarning
FileModeWarning
import requests
import inspect
from collections import defaultdict
def _tree(): return defaultdict(_tree)
tree = _tree()
def getitem(tree,seq):
tree = tree
for i in seq:
tree = tree.__getitem__(i)
def classtree(cls):
ret = []
def inner(cls):
if cls is object:
return
ret.append(cls.__name__)
inner(cls.__base__)
inner(cls)
getitem(tree,reversed(ret))
def pretty(d, indent=0):
for key, value in d.items():
print('\t' * indent + str(key))
if isinstance(value, dict):
pretty(value, indent + 1)
else:
print('\t' * (indent + 1) + str(value))
def main(requests):
for i in dir(requests):
if inspect.isclass(getattr(requests, i)):
ret = issubclass(getattr(requests, i), BaseException)
if ret:
classtree(getattr(requests, i))
pretty(dict(tree))
if __name__ == '__main__':
main(requests)