Source code for simudo.pyaml.helper
from ..util import AttrPrefixProxy, DictAttrProxy
_NULL = []
[docs]class PyamlEnv(object):
[docs]    def PYAML_get_direct_env(self, env, name, globals):
        method = getattr(self, 'ENV_{}_{}'.format(env, name), _NULL)
        if method is not _NULL:
            return method()
        else:
            v = globals.get(name, _NULL)
            if v is not _NULL: return v
            builtins = globals['__builtins__']
            v = builtins.get(name, _NULL)
            if v is not _NULL: return v
            raise NameError("name {!r} is not defined".format(name)) 
[docs]    def PYAML_get_env(self, env, name, globals):
        '''
        get `name` from environment `env`, or else look it up in
        `globals`
        '''
        method = getattr(self, 'PYAML_get_env_'+env, None)
        if method:
            return method(env, name, globals)
        else:
            return self.PYAML_get_direct_env(env, name, globals)  
[docs]class PyamlGetAttr(object):
[docs]    def PYAML_EVAL(self, name):
        return getattr(self, 'EVAL_'+name)()  
[docs]class PyamlBase(PyamlEnv, PyamlGetAttr):
    pass