import requests #from dependencies.request_api import RequestsApi #call = RequestsApi("https://google.com") #r = call.get("/") class RequestsApi: def __init__(self, base_url, **kwargs): self.base_url = base_url self.session = requests.Session() for arg in kwargs: if isinstance(kwargs[arg], dict): kwargs[arg] = self.deep_merge(getattr(self.session, arg), kwargs[arg]) setattr(self.session, arg, kwargs[arg]) def request(self, method, url, **kwargs): return self.session.request(method, self.base_url+url, allow_redirects = False, **kwargs) def head(self, url, **kwargs): return self.session.head(self.base_url+url, allow_redirects = False, **kwargs) def get(self, url, **kwargs): return self.session.get(self.base_url+url, allow_redirects = False, **kwargs) def post(self, url, **kwargs): return self.session.post(self.base_url+url, allow_redirects = False, **kwargs) @staticmethod def deep_merge(source, destination):< for key, value in source.items(): if isinstance(value, dict): node = destination.setdefault(key, {}) RequestsApi.deep_merge(value, node) else: destination[key] = value return destination