{"record":{"id":"40869455255ca41a","repo":"astral-sh/ruff","slug":"required-import-specified-in-lint-isort-required","errorCode":null,"errorMessage":"Required import specified in `lint.isort.required-imports` (I002) conflicts with the required import alias specified in either `lint.flake8-import-conventions.aliases` or `lint.flake8-import-conventions.extend-aliases` (ICN001):\n{err_body}\nHelp: Remove the required import or alias from your configuration.","messagePattern":"Required import specified in `lint\\.isort\\.required-imports` \\(I002\\) conflicts with the required import alias specified in either `lint\\.flake8-import-conventions\\.aliases` or `lint\\.flake8-import-conventions\\.extend-aliases` \\(ICN001\\):\n(.+?)\nHelp: Remove the required import or alias from your configuration\\.","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/ruff_workspace/src/configuration.rs","lineNumber":1769,"sourceCode":"        // Ex: `from foo import bar as baz` OR `import foo.bar as baz`\n        // - qualified name: `foo.bar`\n        // - bound name: `baz`\n        // - conflicts with: `{\"foo.bar\":\"buzz\"}`\n        // - does not conflict with either of\n        //   - `{\"bar\":\"buzz\"}`\n        //   - `{\"foo.bar\":\"baz\"}`\n        let qualified_name = required_import.qualified_name().to_string();\n        let bound_name = required_import.bound_name();\n        let Some(alias) = flake8_import_conventions.aliases.get(&qualified_name) else {\n            continue;\n        };\n        if alias != bound_name {\n            writeln!(err_body, \"    - `{qualified_name}` -> `{alias}`\").unwrap();\n        }\n    }\n\n    if !err_body.is_empty() {\n        return Err(anyhow!(\n            \"Required import specified in `lint.isort.required-imports` (I002) \\\n            conflicts with the required import alias specified in either \\\n            `lint.flake8-import-conventions.aliases` or \\\n            `lint.flake8-import-conventions.extend-aliases` (ICN001):\\\n                \\n{err_body}\\n\\\n            Help: Remove the required import or alias from your configuration.\"\n        ));\n    }\n\n    Ok(())\n}\n\n/// Detect conflicts between I002 (missing-required-import) and PYI025\n/// (unaliased-collections-abc-set-import).\n///\n/// If `required-imports` includes `from collections.abc import Set` (without\n/// aliasing it as `AbstractSet`) and PYI025 is enabled, the configuration is\n/// contradictory: I002 requires the unaliased import, while PYI025 forbids it.","sourceCodeStart":1751,"sourceCodeEnd":1787,"githubUrl":"https://github.com/astral-sh/ruff/blob/672bb4edf04c84f8b0753346359daee4057158f2/crates/ruff_workspace/src/configuration.rs#L1751-L1787","documentation":"Error \"Required import specified in `lint.isort.required-imports` (I002) conflicts with the required import alias specified in either `lint.flake8-import-conventions.aliases` or `lint.flake8-import-conventions.extend-aliases` (ICN001):\n{err_body}\nHelp: Remove the required import or alias from your configuration.\" thrown in astral-sh/ruff.","triggerScenarios":"Thrown at crates/ruff_workspace/src/configuration.rs:1769 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"672bb4edf04c84f8b0753346359daee4057158f2","analyzedAt":"2026-08-16T08:54:05.464Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}