MCPcopy
hub / github.com/treeverse/dvc / boxify

Function boxify

dvc/utils/__init__.py:161–203  ·  view source on GitHub ↗

Put a message inside a box. Args: message (unicode): message to decorate. border_color (unicode): name of the color to outline the box with.

(message, border_color=None)

Source from the content-addressed store, hash-verified

159
160
161def boxify(message, border_color=None):
162 """Put a message inside a box.
163
164 Args:
165 message (unicode): message to decorate.
166 border_color (unicode): name of the color to outline the box with.
167 """
168 lines = message.split("\n")
169 max_width = max(_visual_width(line) for line in lines)
170
171 padding_horizontal = 5
172 padding_vertical = 1
173
174 box_size_horizontal = max_width + (padding_horizontal * 2)
175
176 chars = {"corner": "+", "horizontal": "-", "vertical": "|", "empty": " "}
177
178 margin = "{corner}{line}{corner}\n".format(
179 corner=chars["corner"], line=chars["horizontal"] * box_size_horizontal
180 )
181
182 padding_lines = [
183 "{border}{space}{border}\n".format(
184 border=colorize(chars["vertical"], color=border_color),
185 space=chars["empty"] * box_size_horizontal,
186 )
187 * padding_vertical
188 ]
189
190 content_lines = [
191 "{border}{space}{content}{space}{border}\n".format(
192 border=colorize(chars["vertical"], color=border_color),
193 space=chars["empty"] * padding_horizontal,
194 content=_visual_center(line, max_width),
195 )
196 for line in lines
197 ]
198
199 return "{margin}{padding}{content}{padding}{margin}".format(
200 margin=colorize(margin, color=border_color),
201 padding="".join(padding_lines),
202 content="".join(content_lines),
203 )
204
205
206def _visual_width(line):

Callers 1

_welcome_messageFunction · 0.90

Calls 5

_visual_widthFunction · 0.85
_visual_centerFunction · 0.85
joinMethod · 0.80
colorizeFunction · 0.70
formatMethod · 0.45

Tested by

no test coverage detected