From ec3aadf33c95400a222995711ac817312fbc9cdb Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Tue, 14 Mar 2023 22:15:41 -0400 Subject: [PATCH] Avoid tracking as-imports separately with force-single-line --- crates/ruff/src/rules/isort/mod.rs | 2 +- crates/ruff/src/rules/isort/normalize.rs | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/ruff/src/rules/isort/mod.rs b/crates/ruff/src/rules/isort/mod.rs index 5df3c20a1a648d..411f91058e37b5 100644 --- a/crates/ruff/src/rules/isort/mod.rs +++ b/crates/ruff/src/rules/isort/mod.rs @@ -143,7 +143,7 @@ pub fn format_imports( let block = annotate_imports(&block.imports, comments, locator, split_on_trailing_comma); // Normalize imports (i.e., deduplicate, aggregate `from` imports). - let block = normalize_imports(block, combine_as_imports); + let block = normalize_imports(block, combine_as_imports, force_single_line); let mut output = String::new(); diff --git a/crates/ruff/src/rules/isort/normalize.rs b/crates/ruff/src/rules/isort/normalize.rs index f3aa484c82c706..98f52111bebca5 100644 --- a/crates/ruff/src/rules/isort/normalize.rs +++ b/crates/ruff/src/rules/isort/normalize.rs @@ -3,7 +3,11 @@ use crate::rules::isort::types::TrailingComma; use super::types::{AliasData, ImportBlock, ImportFromData}; use super::AnnotatedImport; -pub fn normalize_imports(imports: Vec, combine_as_imports: bool) -> ImportBlock { +pub fn normalize_imports( + imports: Vec, + combine_as_imports: bool, + force_single_line: bool, +) -> ImportBlock { let mut block = ImportBlock::default(); for import in imports { match import { @@ -55,7 +59,7 @@ pub fn normalize_imports(imports: Vec, combine_as_imports: bool .import_from_star .entry(ImportFromData { module, level }) .or_default() - } else if alias.asname.is_none() || combine_as_imports { + } else if alias.asname.is_none() || combine_as_imports || force_single_line { block .import_from .entry(ImportFromData { module, level }) @@ -89,7 +93,7 @@ pub fn normalize_imports(imports: Vec, combine_as_imports: bool .import_from_star .entry(ImportFromData { module, level }) .or_default() - } else if alias.asname.is_none() || combine_as_imports { + } else if alias.asname.is_none() || combine_as_imports || force_single_line { block .import_from .entry(ImportFromData { module, level })