summaryrefslogtreecommitdiff
path: root/requests/config.py
diff options
context:
space:
mode:
authorJoshua Gourneau <josh@gourneau.com>2012-03-15 00:57:29 -0700
committerJoshua Gourneau <josh@gourneau.com>2012-03-15 00:57:29 -0700
commit1a5a8ae4950da0139a5081d41d9fb00ab73d91fd (patch)
tree34cdbfe82b5ffeefa7645f48bda86df5dc66d37f /requests/config.py
parent3b17438a4227f105ba0b719904509def94481ff8 (diff)
old version of requests
Diffstat (limited to 'requests/config.py')
-rw-r--r--requests/config.py67
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