(
self,
console: "Console",
renderables: Iterable["ConsoleRenderable"],
log_time: Optional[datetime] = None,
time_format: Optional[Union[str, FormatTimeCallable]] = None,
level: TextType = "",
path: Optional[str] = None,
line_no: Optional[int] = None,
link_path: Optional[str] = None,
)
| 30 | self._last_time: Optional[Text] = None |
| 31 | |
| 32 | def __call__( |
| 33 | self, |
| 34 | console: "Console", |
| 35 | renderables: Iterable["ConsoleRenderable"], |
| 36 | log_time: Optional[datetime] = None, |
| 37 | time_format: Optional[Union[str, FormatTimeCallable]] = None, |
| 38 | level: TextType = "", |
| 39 | path: Optional[str] = None, |
| 40 | line_no: Optional[int] = None, |
| 41 | link_path: Optional[str] = None, |
| 42 | ) -> "Table": |
| 43 | from .containers import Renderables |
| 44 | from .table import Table |
| 45 | |
| 46 | output = Table.grid(padding=(0, 1)) |
| 47 | output.expand = True |
| 48 | if self.show_time: |
| 49 | output.add_column(style="log.time") |
| 50 | if self.show_level: |
| 51 | output.add_column(style="log.level", width=self.level_width) |
| 52 | output.add_column(ratio=1, style="log.message", overflow="fold") |
| 53 | if self.show_path and path: |
| 54 | output.add_column(style="log.path") |
| 55 | row: List["RenderableType"] = [] |
| 56 | if self.show_time: |
| 57 | log_time = log_time or console.get_datetime() |
| 58 | time_format = time_format or self.time_format |
| 59 | if callable(time_format): |
| 60 | log_time_display = time_format(log_time) |
| 61 | else: |
| 62 | log_time_display = Text(log_time.strftime(time_format)) |
| 63 | if log_time_display == self._last_time and self.omit_repeated_times: |
| 64 | row.append(Text(" " * len(log_time_display))) |
| 65 | else: |
| 66 | row.append(log_time_display) |
| 67 | self._last_time = log_time_display |
| 68 | if self.show_level: |
| 69 | row.append(level) |
| 70 | |
| 71 | row.append(Renderables(renderables)) |
| 72 | if self.show_path and path: |
| 73 | path_text = Text() |
| 74 | path_text.append( |
| 75 | path, style=f"link file://{link_path}" if link_path else "" |
| 76 | ) |
| 77 | if line_no: |
| 78 | path_text.append(":") |
| 79 | path_text.append( |
| 80 | f"{line_no}", |
| 81 | style=f"link file://{link_path}#{line_no}" if link_path else "", |
| 82 | ) |
| 83 | row.append(path_text) |
| 84 | |
| 85 | output.add_row(*row) |
| 86 | return output |
| 87 | |
| 88 | |
| 89 | if __name__ == "__main__": # pragma: no cover |
nothing calls this directly
no test coverage detected