+++ /dev/null
-Where possible, please follow PEP8 with regard to coding style. Sometimes the
-line length restriction is too hard to follow, so don't bend over backwards
-there.
-
-Triple-quotes should always be """, single quotes are ' unless using " would
-result in less escaping within the string.
-
-All modules, functions, and methods should be well documented reStructuredText
-for Sphinx AutoDoc.
-
-All functionality should be available in pure Python. Optional C (via Cython)
-implementations may be written for performance reasons, but should never
-replace the Python implementation.
-
-Lastly, don't take yourself too seriously :)
"""
class Settings(object):
- _singleton = {}
-
- # attributes with defaults
- __attrs__ = []
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)
+++ /dev/null
-[tox]
-envlist = py25,py26,py27
-
-[testenv]
-commands=py.test --junitxml=junit-{envname}.xml
-deps =
- pytest
- omnijson
\ No newline at end of file