Remove sharing of base_headers config between sessions.
authorSuraj Barkale <suraj@barkale.com>
Tue, 15 May 2012 14:17:02 +0000 (19:47 +0530)
committerSuraj Barkale <suraj@barkale.com>
Tue, 15 May 2012 14:17:02 +0000 (19:47 +0530)
Since base_headers is a dictionary, it's reference was shared with all instances of
Session objects. Using deepcopy here should not incur large performance penalty.

requests/sessions.py

index dd670dd33e58151680f3f83300eab30460b11d08..aa90ecc7cdf53bc90deb03e940a6a3336c0004c2 100644 (file)
@@ -9,6 +9,7 @@ requests (cookies, auth, proxies).
 
 """
 
+from copy import deepcopy
 from .compat import cookielib
 from .cookies import cookiejar_from_dict, remove_cookie_by_name
 from .defaults import defaults
@@ -81,7 +82,7 @@ class Session(object):
         self.cert = cert
 
         for (k, v) in list(defaults.items()):
-            self.config.setdefault(k, v)
+            self.config.setdefault(k, deepcopy(v))
 
         self.init_poolmanager()