"refactor" #1

This commit is contained in:
Kenneth Reitz
2011-07-23 00:19:13 -04:00
parent ecad4a9e25
commit eb8415770d
16 changed files with 0 additions and 2068 deletions
-61
View File
@@ -1,61 +0,0 @@
# -*- coding: utf-8 -*-
"""
github3.config
~~~~~~~~~~~~~~
This module provides the GitHub3 settings feature set.
:copyright: (c) 2011 by Kenneth Reitz.
:license: ISC, see LICENSE for more details.
"""
class Settings(object):
_singleton = dict()
# attributes with defaults
__attrs__ = ('timeout',)
def __init__(self, **kwargs):
super(Settings, self).__init__()
self.__dict__ = self._singleton
def __call__(self, *args, **kwargs):
# new instance of class to call
r = self.__class__()
# cache previous settings for __exit__
r.__cache = self.__dict__.copy()
map(self.__cache.setdefault, self.__attrs__)
# 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 __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()
settings.domain = 'https://api.github.com'