MCPcopy Index your code
hub / github.com/dbcli/mycli / output

Method output

mycli/output.py:107–170  ·  view source on GitHub ↗

Output text to stdout or a pager command.

(
        self,
        output: itertools.chain[str],
        result: SQLResult,
        is_warnings_style: bool = False,
    )

Source from the content-addressed store, hash-verified

105 return margin
106
107 def output(
108 self,
109 output: itertools.chain[str],
110 result: SQLResult,
111 is_warnings_style: bool = False,
112 ) -> None:
113 """Output text to stdout or a pager command."""
114 if output:
115 if self.prompt_session is not None:
116 size = self.prompt_session.output.get_size()
117 size_columns = size.columns
118 size_rows = size.rows
119 else:
120 size_columns = DEFAULT_WIDTH
121 size_rows = DEFAULT_HEIGHT
122
123 margin = self.get_output_margin(result.status_plain)
124
125 fits = True
126 buf = []
127 output_via_pager = self.explicit_pager and special.is_pager_enabled()
128 for i, line in enumerate(output, 1):
129 self.log_output(line)
130 special.write_tee(line)
131 special.write_once(line)
132 special.write_pipe_once(line)
133
134 if special.is_redirected():
135 pass
136 elif fits or output_via_pager:
137 buf.append(line)
138 if len(line) > size_columns or i > (size_rows - margin):
139 fits = False
140 if not self.explicit_pager and special.is_pager_enabled():
141 output_via_pager = True
142
143 if not output_via_pager:
144 for buf_line in buf:
145 click.secho(buf_line)
146 buf = []
147 else:
148 click.secho(line)
149
150 if buf:
151 if output_via_pager:
152
153 def newlinewrapper(text: list[str]) -> Generator[str, None, None]:
154 for line in text:
155 yield line + "\n"
156
157 click.echo_via_pager(newlinewrapper(buf))
158 else:
159 for line in buf:
160 click.secho(line)
161
162 if result.status:
163 self.log_output(result.status_plain)
164 add_style = 'class:warnings.status' if is_warnings_style else 'class:output.status'

Calls 3

get_output_marginMethod · 0.95
log_outputMethod · 0.95
get_sizeMethod · 0.45