astral-sh/ruff · error · anyhow::Error
Required import `from collections.abc import Set` specified
Error message
Required import `from collections.abc import Set` specified in `lint.isort.required-imports` (I002) conflicts with `unaliased-collections-abc-set-import` (PYI025), which requires this import to be aliased as `AbstractSet`. Help: Either alias the required import (`from collections.abc import Set as AbstractSet`), or disable PYI025.
What it means
Error "Required import `from collections.abc import Set` specified in `lint.isort.required-imports` (I002) conflicts with `unaliased-collections-abc-set-import` (PYI025), which requires this import to be aliased as `AbstractSet`. Help: Either alias the required import (`from collections.abc import Set as AbstractSet`), or disable PYI025." thrown in astral-sh/ruff.
Source
Thrown at crates/ruff_workspace/src/configuration.rs:1801
/// (unaliased-collections-abc-set-import).
///
/// If `required-imports` includes `from collections.abc import Set` (without
/// aliasing it as `AbstractSet`) and PYI025 is enabled, the configuration is
/// contradictory: I002 requires the unaliased import, while PYI025 forbids it.
fn conflicting_required_import_pyi025(
isort: &isort::settings::Settings,
rules: &RuleTable,
) -> Result<()> {
if !rules.enabled(Rule::UnaliasedCollectionsAbcSetImport) {
return Ok(());
}
for required_import in &isort.required_imports {
let qualified_name = required_import.qualified_name();
if qualified_name.segments() == ["collections", "abc", "Set"]
&& required_import.bound_name() != "AbstractSet"
{
return Err(anyhow!(
"Required import `from collections.abc import Set` specified in \
`lint.isort.required-imports` (I002) conflicts with \
`unaliased-collections-abc-set-import` (PYI025), which requires \
this import to be aliased as `AbstractSet`.\n\n\
Help: Either alias the required import \
(`from collections.abc import Set as AbstractSet`), \
or disable PYI025."
));
}
}
Ok(())
}
#[cfg(test)]
mod tests {
use anyhow::Result;
View on GitHub (pinned to 672bb4edf0)
When it happens
Trigger: Thrown at crates/ruff_workspace/src/configuration.rs:1801 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of astral-sh/ruff@672bb4edf0 (2026-08-16).
Data as JSON: /api/errors/8be718d427ce90e2.
Report an issue: GitHub.