summaryrefslogtreecommitdiffstats
path: root/pgcli/explain_output_formatter.py
blob: ce45b4f8d0e8ebe4393e6278b1bf28e899c68187 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from pgcli.pyev import Visualizer
import json


"""Explain response output adapter"""


class ExplainOutputFormatter:
    def __init__(self, max_width):
        self.max_width = max_width

    def format_output(self, cur, headers, **output_kwargs):
        # explain query results should always contain 1 row each
        [(data,)] = list(cur)
        explain_list = json.loads(data)
        visualizer = Visualizer(self.max_width)
        for explain in explain_list:
            visualizer.load(explain)
            yield visualizer.get_list()