diff --git a/requests/config.py b/requests/config.py new file mode 100644 index 00000000..99ffc335 --- /dev/null +++ b/requests/config.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- + +""" +requests.config +~~~~~~~~~~~~~~~ + +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 = {} + __attrs__ = ('timeout',) + + def __init__(self, **kwargs): + super(Settings, self).__init__() + + 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 __enter__(self): + pass + + def __exit__(self, *args): + + 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 + + +settings = Settings() \ No newline at end of file diff --git a/requests/settings.py b/requests/settings.py deleted file mode 100644 index 1dc90079..00000000 --- a/requests/settings.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.settings -~~~~~~~~~~~~~~~~~ - -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): - - def __init__(self, **settings): - self._cache_settings(**settings) - self._alter_settings(**settings) - - def __enter__(self): - pass - - def __exit__(self, type, value, traceback): - self._restore_settings() - - def _cache_settings(self, **settings): - self.cache = {} - for setting in settings: - self.cache[setting] = globals()[setting] - - def _alter_settings(self, **settings): - for setting, value in settings.items(): - globals()[setting] = value - - def _restore_settings(self): - for setting, value in self.cache.items(): - globals()[setting] = value