From: Johannes Gorset Date: Thu, 19 May 2011 08:13:37 +0000 (+0200) Subject: Refactor settings X-Git-Tag: v0.4.1^2~28 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ec5f227381ae3911e0cd979b24564064c5a11efd;p=services%2Fpython-requests.git Refactor settings --- diff --git a/requests/__init__.py b/requests/__init__.py index cf171f5..d1e7527 100644 --- a/requests/__init__.py +++ b/requests/__init__.py @@ -10,22 +10,26 @@ from core import __version__ timeout = None class settings: - """Context manager for settings.""" - cache = {} - - def __init__(self, timeout): - self.module = inspect.getmodule(self) - - # Cache settings - self.cache['timeout'] = self.module.timeout - - self.module.timeout = timeout + def __init__(self, **settings): + self._cache_settings(**settings) + self._alter_settings(**settings) def __enter__(self): pass def __exit__(self, type, value, traceback): - # Restore settings - for key in self.cache: - setattr(self.module, key, self.cache[key]) + 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 \ No newline at end of file