diff options
| author | Joshua Gourneau <josh@gourneau.com> | 2012-03-15 00:57:29 -0700 |
|---|---|---|
| committer | Joshua Gourneau <josh@gourneau.com> | 2012-03-15 00:57:29 -0700 |
| commit | 1a5a8ae4950da0139a5081d41d9fb00ab73d91fd (patch) | |
| tree | 34cdbfe82b5ffeefa7645f48bda86df5dc66d37f /requests/config.py | |
| parent | 3b17438a4227f105ba0b719904509def94481ff8 (diff) | |
old version of requests
Diffstat (limited to 'requests/config.py')
| -rw-r--r-- | requests/config.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/requests/config.py b/requests/config.py new file mode 100644 index 0000000..39be2ed --- /dev/null +++ b/requests/config.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- + +""" +requests.config +~~~~~~~~~~~~~~~ + +This module provides the Requests settings feature set. + +""" + +class Settings(object): + _singleton = {} + + # attributes with defaults + __attrs__ = [] + + def __init__(self, **kwargs): + super(Settings, self).__init__() + + self.__dict__ = self._singleton + + + def __call__(self, *args, **kwargs): + # new instance of class to call + r = self.__class__() + + # cache previous settings for __exit__ + r.__cache = self.__dict__.copy() + map(self.__cache.setdefault, self.__attrs__) + + # set new settings + self.__dict__.update(*args, **kwargs) + + return r + + + def __enter__(self): + pass + + + def __exit__(self, *args): + + # restore cached copy + self.__dict__.update(self.__cache.copy()) + del self.__cache + + + def __getattribute__(self, key): + if key in object.__getattribute__(self, '__attrs__'): + try: + return object.__getattribute__(self, key) + except AttributeError: + return None + return object.__getattribute__(self, key) + + +settings = Settings() + +settings.base_headers = {'User-Agent': 'python-requests.org'} +settings.accept_gzip = True +settings.proxies = None +settings.verbose = None +settings.timeout = None +settings.max_redirects = 30 + +#: Use socket.setdefaulttimeout() as fallback? +settings.timeout_fallback = True |
