Mercurial > genshi > genshi-test
changeset 308:24879aa3aea7
Hide some internal expression evaluation frames from traceback display for apps that support the `__traceback_hide__` protocol (see [http://pythonpaste.org/class-paste.exceptions.collector.ExceptionCollector.html paste.exceptions.collector]).
author | cmlenz |
---|---|
date | Tue, 17 Oct 2006 11:38:26 +0000 |
parents | 0bb8cbebf31e |
children | f7a3bb316d2f |
files | genshi/eval.py |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/genshi/eval.py +++ b/genshi/eval.py @@ -142,9 +142,11 @@ self._name = name def __call__(self, *args, **kwargs): + __traceback_hide__ = True self.throw() def __getattr__(self, name): + __traceback_hide__ = True self.throw() def __iter__(self): @@ -157,6 +159,7 @@ return 'undefined' def throw(self): + __traceback_hide__ = True raise NameError('Variable "%s" is not defined' % self._name) @@ -187,6 +190,7 @@ BUILTINS['Undefined'] = Undefined def _lookup_name(data, name, locals_=None): + __traceback_hide__ = True val = Undefined if locals_: val = locals_.get(name, val) @@ -203,6 +207,7 @@ return val(name) def _lookup_attr(data, obj, key): + __traceback_hide__ = True if type(obj) is Undefined: obj.throw() if hasattr(obj, key): @@ -213,6 +218,7 @@ return Undefined(key) def _lookup_item(data, obj, key): + __traceback_hide__ = True if type(obj) is Undefined: obj.throw() if len(key) == 1: