astral-sh/ruff · error · anyhow::Error
`require-lazy` and `ban-lazy` must not overlap after applyin
Error message
`require-lazy` and `ban-lazy` must not overlap after applying exclusions
What it means
Error "`require-lazy` and `ban-lazy` must not overlap after applying exclusions" thrown in astral-sh/ruff.
Source
Thrown at crates/ruff_workspace/src/options.rs:2210
value_type = r#""all" | list[str] | { include = "all" | list[str], exclude = list[str] }"#,
example = r#"
# Forbid lazy imports for specific modules.
ban-lazy = ["sitecustomize"]
# Forbid lazy imports by default, while allowing specific exceptions.
ban-lazy = { include = "all", exclude = ["typing"] }
"#
)]
ban_lazy: Option<ImportSelector>,
}
impl Flake8TidyImportsOptions {
pub(crate) fn try_into_settings(self) -> Result<flake8_tidy_imports::settings::Settings> {
let require_lazy = self.require_lazy.unwrap_or_default();
let ban_lazy = self.ban_lazy.unwrap_or_default();
if conflicting_lazy_import_settings(&require_lazy, &ban_lazy) {
return Err(anyhow!(
"`require-lazy` and `ban-lazy` must not overlap after applying exclusions"
));
}
Ok(flake8_tidy_imports::settings::Settings {
ban_relative_imports: self.ban_relative_imports.unwrap_or(Strictness::Parents),
banned_api: self.banned_api.unwrap_or_default(),
banned_module_level_imports: self.banned_module_level_imports.unwrap_or_default(),
require_lazy,
ban_lazy,
})
}
}
fn conflicting_lazy_import_settings(
require_lazy: &ImportSelector,
ban_lazy: &ImportSelector,
) -> bool {View on GitHub (pinned to 672bb4edf0)
When it happens
Trigger: Thrown at crates/ruff_workspace/src/options.rs:2210 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/2bf213abdd7fc476.
Report an issue: GitHub.