xenua
3 years ago
1 changed files with 47 additions and 0 deletions
@ -0,0 +1,47 @@ |
|||||||
|
{% macro typeof(thing) %} |
||||||
|
{% if thing is iterable %} |
||||||
|
{% if thing is object %} |
||||||
|
dict |
||||||
|
{% else %} |
||||||
|
list |
||||||
|
{% endif %} |
||||||
|
{% else %} |
||||||
|
{% if thing is string %} |
||||||
|
str |
||||||
|
{% elif thing is number %} |
||||||
|
num |
||||||
|
{% else %} |
||||||
|
other |
||||||
|
{% endif %} |
||||||
|
{% endif %} |
||||||
|
{% endmacro typeof %} |
||||||
|
|
||||||
|
{% macro debug(thing, label="", recurse=0) %} |
||||||
|
|
||||||
|
{% set type = self::typeof(thing=thing) | trim %} |
||||||
|
|
||||||
|
<span>{% if label %}{{ label }}: {% endif %}<em>{{ type }}</em></span> |
||||||
|
|
||||||
|
{% set rdepth = recurse - 1 %} |
||||||
|
<div class="debug"> |
||||||
|
{% if type == "dict" %} |
||||||
|
{% for k, v in thing %} |
||||||
|
{% if v is iterable and recurse %} |
||||||
|
<span>{{ k }}: {{ self::debug(thing=v, recurse=rdepth) }}</span> |
||||||
|
{% else %} |
||||||
|
<span>{{ k }}: {{ v }}</span><br> |
||||||
|
{% endif %} |
||||||
|
{% endfor %} |
||||||
|
{% elif type == "list" %} |
||||||
|
{% for v in thing %} |
||||||
|
{% if v is iterable and recurse %} |
||||||
|
<span>{{ self::debug(thing=v, recurse=rdepth) }}</span> |
||||||
|
{% else %} |
||||||
|
<span>{{ v }}</span><br> |
||||||
|
{% endif %} |
||||||
|
{% endfor %} |
||||||
|
{% else %} |
||||||
|
{{ thing }} |
||||||
|
{% endif %} |
||||||
|
</div> |
||||||
|
{% endmacro %} |
Loading…
Reference in new issue