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.