unstale

pypi / isort

isort

What changed in isort 9, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

5 breaking2 new APIs and options1 performance3 behavior and defaults1 tooling31 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

isort 943 changes

Breaking changes 5

  • Configuration discovery stops at Git worktree boundaries.

    9.0.2release notes

  • The setting now sorts unwrapped lines.

    9.0.2release notes

  • EOF on stdin now acts as quit in the interactive prompt.

    9.0.2release notes

  • Logic for deprecated options was removed.

    9.0.0release notes

  • Private standard-library modules are now considered stdlib modules.

    9.0.0release notes

New APIs and options 2

Performance 1

  • isort is compiled with mypyc, with compiled wheels for major platforms and supported Python versions; the notes report speedups of more than 2x and 3x in tests.

    9.0.0release notes

Behavior and default changes 3

  • An aliased import is kept when the plain name carries a comment.

    9.0.0release notes

  • Sorted __all__ and literals are now compatible with Black.

    9.0.0release notes

  • Initial support for Python 3.15, including its lazy imports, was added.

    9.0.0release notes

Tooling 1

Fixes and other changes 31

  • Blank lines before comment-only sections are preserved.

    9.0.2release notes

  • The setting no longer hoists indented semicolon imports.

    9.0.2release notes

  • Preprocessing preserves CRLF blank lines.

    9.0.2release notes

  • Sorting literals preserves trailing comments.

    9.0.2release notes

  • The setting no longer emits unparsable code around trailing comments when set to 10.

    9.0.2release notes

  • Sorting reexports preserves trailing-comma layout.

    9.0.2release notes

  • Sorting reexports preserves file line endings.

    9.0.2release notes

  • Star imports are handled better when using parentheses.

    9.0.2release notes

  • stdin output preserves LF line endings on Windows.

    9.0.2release notes

  • Restores running isort with python -m isort by excluding __main__ from mypyc compilation.

    9.0.1release notes

  • Added imports are now kept below a prefixed module docstring.

    9.0.0release notes

  • Bare # inline comments on imports are now preserved.

    9.0.0release notes

  • Fixed a false positive with float_to_top and add_imports.

    9.0.0release notes

  • check_code now detects changes that only affect lines_before_imports.

    9.0.0release notes

  • Using --config-root without --resolve-all-configs no longer crashes.

    9.0.0release notes

  • The isort off/on/split comments are now honored during float_to_top preprocessing with CRLF input.

    9.0.0release notes

  • Preservation of form-feed blank lines was fixed.

    9.0.0release notes

  • Fixed the lazy=True option for git_hook.

    9.0.0release notes

  • Inline comments are no longer duplicated across merged from-import lines.

    9.0.0release notes

  • The skip comment is now honored when a __future__ import is present.

    9.0.0release notes

  • Values 3 and 5 are no longer ignored when wrapping single imports with inline comments.

    9.0.0release notes

  • Fixed grouping when non-aliased and aliased imports come from the same module.

    9.0.0release notes

  • NOQA is now added to long imports in the affected output paths.

    9.0.0release notes

  • Fixed non-idempotent output for commented imports and prevented spaces from accumulating before comments.

    9.0.0release notes

  • Opening-line comments no longer move to the alias attribute line on wrapped imports.

    9.0.0release notes

  • Fixed handling of pylint disable-next comments at the start of imports.

    9.0.0release notes

  • Skip comments are now honored when sorting reexports.

    9.0.0release notes

  • Fixed a crash on non-seekable streams such as stdin.

    9.0.0release notes

  • Fixed non-idempotent output when split_on_trailing_comma is used with a non-default wrap mode.

    9.0.0release notes

  • Fixed handling of src glob patterns passed through the CLI.

    9.0.0release notes

  • Fixed handling and word-wrapping of star imports, including wrapping that could produce invalid Python.

    9.0.0release notes