Source code for noseapp.datastructures
# coding: utf-8
class ModifyDict(dict):
"""
Verb in class name as instruction to usage
Example:
from noseapp.datastructures import ModifyDict as Context
"""
def __getattr__(self, item):
try:
return self[item]
except KeyError:
raise AttributeError(
'"{}" does not have "{}" attribute.'.format(self.__class__.__name__, item),
)
def __setattr__(self, key, value):
self[key] = value
def __delattr__(self, item):
try:
del self[item]
except KeyError:
raise AttributeError(
'"{}" does not have "{}" attribute.'.format(self.__class__.__name__, item),
)
[docs]class Context(ModifyDict):
"""
Class for creating context object.
Usage:
>>> ctx = Context(a=1, b=2)
>>> ctx.a
>>> 1
>>> ctx.ab = 3
>>> ctx.ab
>>> 3
>>> ctx['a']
>>> 1
>>> ctx.get('c')
>>> None
"""
pass