Skip to content
Snippets Groups Projects
Commit a8adf58c authored by Jan Mach's avatar Jan Mach
Browse files

Added support for dumping raw data structures as YAML.

Some users may prefer viewing IDEA messages in YAML format, because it contains much less funny characters.
parent 7a06ae99
No related branches found
No related tags found
No related merge requests found
...@@ -22,6 +22,7 @@ flask-debugtoolbar ...@@ -22,6 +22,7 @@ flask-debugtoolbar
flask-jsglue flask-jsglue
geoip2 geoip2
rrdtool rrdtool
pyyaml
pydgets pydgets
pyzenkit pyzenkit
pynspect pynspect
......
...@@ -22,6 +22,7 @@ flask-debugtoolbar==0.10.1 ...@@ -22,6 +22,7 @@ flask-debugtoolbar==0.10.1
flask-jsglue==0.3.1 flask-jsglue==0.3.1
geoip2==2.9.0 geoip2==2.9.0
rrdtool==0.1.14 rrdtool==0.1.14
pyyaml==5.1.1
pydgets==0.9 pydgets==0.9
pyzenkit==0.54 pyzenkit==0.54
pynspect==0.16 pynspect==0.16
......
...@@ -28,6 +28,7 @@ import os ...@@ -28,6 +28,7 @@ import os
import copy import copy
import datetime import datetime
import jinja2 import jinja2
import yaml
# #
# Flask related modules. # Flask related modules.
...@@ -432,6 +433,19 @@ def _setup_app_core(app): ...@@ -432,6 +433,19 @@ def _setup_app_core(app):
app.jinja_loader.get_source(app.jinja_env, filename)[0] app.jinja_loader.get_source(app.jinja_env, filename)[0]
) )
def json_to_yaml(json_data):
"""
Include given file in raw form directly into the generated content.
This may be usefull for example for including JavaScript files
directly into the HTML page.
"""
return yaml.dump(
yaml.load(
json_data
),
default_flow_style=False
)
return dict( return dict(
get_endpoints_dict = get_endpoints_dict, get_endpoints_dict = get_endpoints_dict,
get_endpoint_class = get_endpoint_class, get_endpoint_class = get_endpoint_class,
...@@ -458,7 +472,8 @@ def _setup_app_core(app): ...@@ -458,7 +472,8 @@ def _setup_app_core(app):
current_datetime_utc = datetime.datetime.utcnow(), current_datetime_utc = datetime.datetime.utcnow(),
include_raw = include_raw include_raw = include_raw,
json_to_yaml = json_to_yaml
) )
class HawatJSONEncoder(flask.json.JSONEncoder): class HawatJSONEncoder(flask.json.JSONEncoder):
......
...@@ -46,6 +46,11 @@ ...@@ -46,6 +46,11 @@
<strong>{{ gettext('Properties') }}</strong> <strong>{{ gettext('Properties') }}</strong>
</a> </a>
</li> </li>
<li role="presentation">
<a href="#tab-event-data-yaml" aria-controls="tab-event-data-yaml" role="tab" data-toggle="tab">
<strong>{{ gettext('YAML data') }}</strong>
</a>
</li>
<li role="presentation"> <li role="presentation">
<a href="#tab-event-data-json" aria-controls="tab-event-data-json" role="tab" data-toggle="tab"> <a href="#tab-event-data-json" aria-controls="tab-event-data-json" role="tab" data-toggle="tab">
<strong>{{ gettext('JSON data') }}</strong> <strong>{{ gettext('JSON data') }}</strong>
...@@ -320,6 +325,13 @@ ...@@ -320,6 +325,13 @@
{%- endif %} {%- endif %}
</div> </div>
<div role="tabpanel" class="tab-pane fade" id="tab-event-data-yaml">
<br>
<pre>
{{ json_to_yaml(item.to_json(indent = 4, sort_keys = True)) }}
</pre>
</div>
<div role="tabpanel" class="tab-pane fade" id="tab-event-data-json"> <div role="tabpanel" class="tab-pane fade" id="tab-event-data-json">
<br> <br>
<pre> <pre>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment