mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-07 13:15:06 +00:00
suppress summary messages for structured formats
This commit is contained in:
parent
a4093e4b54
commit
9b1519e0a4
3 changed files with 23 additions and 8 deletions
|
@ -1238,6 +1238,16 @@ pub enum DiagnosticFormat {
|
||||||
Azure,
|
Azure,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl DiagnosticFormat {
|
||||||
|
/// Return whether or not the format is targeted at human readers.
|
||||||
|
///
|
||||||
|
/// This excludes structured formats like JSON and indicates that summary messages like "All
|
||||||
|
/// checks passed!" should be suppressed.
|
||||||
|
pub fn is_human_readable(self) -> bool {
|
||||||
|
!matches!(self, Self::Azure)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// A representation of the kinds of messages inside a diagnostic.
|
/// A representation of the kinds of messages inside a diagnostic.
|
||||||
pub enum ConciseMessage<'a> {
|
pub enum ConciseMessage<'a> {
|
||||||
/// A diagnostic contains a non-empty main message and an empty
|
/// A diagnostic contains a non-empty main message and an empty
|
||||||
|
|
|
@ -291,6 +291,8 @@ impl MainLoop {
|
||||||
.format(terminal_settings.output_format)
|
.format(terminal_settings.output_format)
|
||||||
.color(colored::control::SHOULD_COLORIZE.should_colorize());
|
.color(colored::control::SHOULD_COLORIZE.should_colorize());
|
||||||
|
|
||||||
|
let should_print_summary = terminal_settings.output_format.is_human_readable();
|
||||||
|
|
||||||
if check_revision == revision {
|
if check_revision == revision {
|
||||||
if db.project().files(db).is_empty() {
|
if db.project().files(db).is_empty() {
|
||||||
tracing::warn!("No python files found under the given path(s)");
|
tracing::warn!("No python files found under the given path(s)");
|
||||||
|
@ -299,7 +301,9 @@ impl MainLoop {
|
||||||
let mut stdout = stdout().lock();
|
let mut stdout = stdout().lock();
|
||||||
|
|
||||||
if result.is_empty() {
|
if result.is_empty() {
|
||||||
writeln!(stdout, "{}", "All checks passed!".green().bold())?;
|
if should_print_summary {
|
||||||
|
writeln!(stdout, "{}", "All checks passed!".green().bold())?;
|
||||||
|
}
|
||||||
|
|
||||||
if self.watcher.is_none() {
|
if self.watcher.is_none() {
|
||||||
return Ok(ExitStatus::Success);
|
return Ok(ExitStatus::Success);
|
||||||
|
@ -314,12 +318,14 @@ impl MainLoop {
|
||||||
max_severity = max_severity.max(diagnostic.severity());
|
max_severity = max_severity.max(diagnostic.severity());
|
||||||
}
|
}
|
||||||
|
|
||||||
writeln!(
|
if should_print_summary {
|
||||||
stdout,
|
writeln!(
|
||||||
"Found {} diagnostic{}",
|
stdout,
|
||||||
diagnostics_count,
|
"Found {} diagnostic{}",
|
||||||
if diagnostics_count > 1 { "s" } else { "" }
|
diagnostics_count,
|
||||||
)?;
|
if diagnostics_count > 1 { "s" } else { "" }
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
|
||||||
if max_severity.is_fatal() {
|
if max_severity.is_fatal() {
|
||||||
tracing::warn!(
|
tracing::warn!(
|
||||||
|
|
|
@ -542,7 +542,6 @@ fn azure_diagnostics() -> anyhow::Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
##vso[task.logissue type=warning;sourcepath=test.py;linenumber=2;columnnumber=7;]Name `x` used when not defined
|
##vso[task.logissue type=warning;sourcepath=test.py;linenumber=2;columnnumber=7;]Name `x` used when not defined
|
||||||
##vso[task.logissue type=error;sourcepath=test.py;linenumber=3;columnnumber=7;]Cannot subscript object of type `Literal[4]` with no `__getitem__` method
|
##vso[task.logissue type=error;sourcepath=test.py;linenumber=3;columnnumber=7;]Cannot subscript object of type `Literal[4]` with no `__getitem__` method
|
||||||
Found 2 diagnostics
|
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
WARN ty is pre-release software and not ready for production use. Expect to encounter bugs, missing features, and fatal errors.
|
WARN ty is pre-release software and not ready for production use. Expect to encounter bugs, missing features, and fatal errors.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue