cleanup — comments
authorKenneth Reitz <me@kennethreitz.com>
Sun, 22 May 2011 17:31:09 +0000 (13:31 -0400)
committerKenneth Reitz <me@kennethreitz.com>
Sun, 22 May 2011 17:31:09 +0000 (13:31 -0400)
requests/config.py

index 99ffc33..6d6d190 100644 (file)
@@ -8,14 +8,10 @@ This module provides the Requests settings feature set.
 
 """
 
-# Time (in seconds) to allow the request to connect to
-# the remote host before timing it out.
-
-# timeout = None
-
-
 class Settings(object):
     _singleton = {}
+
+    # attributes with defaults
     __attrs__ = ('timeout',)
 
     def __init__(self, **kwargs):
@@ -23,30 +19,37 @@ class Settings(object):
 
         self.__dict__ = self._singleton
 
-    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)
+
+    def __call__(self, *args, **kwargs):
+        # new instance of class to call
+        r = self.__class__()
+
+        # cache previous settings for __exit__
+        r.__cache = self.__dict__.copy()
+
+        # 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 __call__(self, *args, **kwargs):
-        r = self.__class__()
-        r.__cache = self.__dict__.copy()
-        self.__dict__.update(*args, **kwargs)
-
-        return r
-
+    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()
\ No newline at end of file