# HG changeset patch # User Ludovic Chabant # Date 1432604204 25200 # Node ID bd56d9acd6ef6756956cdf1f75e729a3e8502442 # Parent 9caaf78a17dbe7febde0bceb34ca37ecde23ac0a debug: Add support for more attributes for the debug info. * `debug_render_not_empty`: don't render an "empty" label if not attributes or items have been rendered for an object. * `debug_render_doc_dynamic`: render dynamic doc-string. diff -r 9caaf78a17db -r bd56d9acd6ef piecrust/data/debug.py --- a/piecrust/data/debug.py Mon May 25 18:35:27 2015 -0700 +++ b/piecrust/data/debug.py Mon May 25 18:36:44 2015 -0700 @@ -208,7 +208,8 @@ self._renderDoc(data, path) self._renderAttributes(data, path) rendered_count = self._renderIterable(data, path, lambda d: enumerate(d)) - if rendered_count == 0: + if (rendered_count == 0 and + not hasattr(data.__class__, 'debug_render_not_empty')): self._writeLine('

(empty array)

' % (CSS_P, CSS_DOC)) self._writeLine('') @@ -218,7 +219,8 @@ self._renderAttributes(data, path) rendered_count = self._renderIterable(data, path, lambda d: sorted(iter(d.items()), key=lambda i: i[0])) - if rendered_count == 0: + if (rendered_count == 0 and + not hasattr(data.__class__, 'debug_render_not_empty')): self._writeLine('

(empty dictionary)

' % (CSS_P, CSS_DOC)) self._writeLine('') @@ -240,10 +242,12 @@ data.__class__.debug_render_items): rendered_count = self._renderIterable(data, path, lambda d: enumerate(d)) - if rendered_count == 0: + if (rendered_count == 0 and + not hasattr(data.__class__, 'debug_render_not_empty')): self._writeLine('

(empty)

' % (CSS_P, CSS_DOC)) - elif rendered_attrs == 0: + elif (rendered_attrs == 0 and + not hasattr(data.__class__, 'debug_render_not_empty')): self._writeLine('

(empty)

' % (CSS_P, CSS_DOC)) self._writeLine('') @@ -265,6 +269,13 @@ self._writeLine('– %s' % (CSS_DOC, data.__class__.debug_render_doc)) + if hasattr(data.__class__, 'debug_render_doc_dynamic'): + drdd = data.__class__.debug_render_doc_dynamic + for ng in drdd: + doc = getattr(data, ng) + self._writeLine('– %s' % + (CSS_DOC, doc())) + doc = self.external_docs.get(path) if doc is not None: self._writeLine('– %s' %