(self, msg: str, level: LogLevel = LogLevel.ERROR)
| 168 | self.stderr = original_stderr |
| 169 | |
| 170 | def log_error(self, msg: str, level: LogLevel = LogLevel.ERROR) -> None: |
| 171 | if self.stdout_isatty and self.quiet >= LOG_LEVEL_DISPLAY_THRESHOLDS[level]: |
| 172 | stderr = self.stderr # Not directly /dev/null, since stderr might be mocked |
| 173 | else: |
| 174 | stderr = self._orig_stderr |
| 175 | rich_console = self._make_rich_console(file=stderr, force_terminal=stderr.isatty()) |
| 176 | rich_console.print( |
| 177 | f'\n{self.program_name}: {level.value}: {msg}\n\n', |
| 178 | style=LOG_LEVEL_COLORS[level], |
| 179 | markup=False, |
| 180 | highlight=False, |
| 181 | soft_wrap=True |
| 182 | ) |
| 183 | |
| 184 | def apply_warnings_filter(self) -> None: |
| 185 | if self.quiet >= LOG_LEVEL_DISPLAY_THRESHOLDS[LogLevel.WARNING]: |
no test coverage detected