From ba79a2eb97f87e883af6871c2b59b7b00501d0a5 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Fri, 20 May 2011 12:53:20 -0400 Subject: [PATCH] new settings module --- requests/core.py | 2 +- requests/settings.py | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 requests/settings.py diff --git a/requests/core.py b/requests/core.py index 84e6ac4..fb239f2 100644 --- a/requests/core.py +++ b/requests/core.py @@ -19,7 +19,7 @@ __license__ = 'ISC' __copyright__ = 'Copyright 2011 Kenneth Reitz' - from models import HTTPError, auth_manager from api import * from exceptions import * +from settings import * \ No newline at end of file diff --git a/requests/settings.py b/requests/settings.py new file mode 100644 index 0000000..00e27d6 --- /dev/null +++ b/requests/settings.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- + +""" +requests.settings +~~~~~~~~~~~~~~~~~ + +This module provides the Requests settings feature set. + +""" + + +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 + + +settings = Settings +timeout = None \ No newline at end of file -- 2.7.4