Skip to content

Update dependency isort to v5

Tine Wittler requested to merge renovate/isort-5.x into master

This MR contains the following updates:

Package Type Update Change
isort (source, changelog) dev-dependencies major ^4.3.21 -> ^5.0.0

Release Notes

pycqa/isort

v5.13.2

Compare Source

v5.13.1

Compare Source

v5.13.0

Compare Source

v5.12.0

Compare Source

  • Removed support for Python 3.7
    • Fixed incompatiblity with latest poetry version
    • Added support for directory limitations within built in git hook

v5.11.5

Compare Source

  • Fixed incompatiblity with latest poetry version

v5.11.4

Compare Source

v5.11.3

Compare Source

v5.11.2

Compare Source

v5.11.1

Compare Source

v5.11.0

Compare Source

v5.10.1

Compare Source

  • Fixed #​1819: Occasional inconsistency with multiple src paths.
    • Fixed #​1840: skip_file ignored when on the first docstring line

v5.10.0

Compare Source

  • Implemented #​1796: Switch to tomli for pyproject.toml configuration loader.
    • Fixed #​1801: CLI bug (--exend-skip-glob, overrides instead of extending).
    • Fixed #​1802: respect PATH customization in nested calls to git.
    • Fixed #​1838: Append only with certain code snippets incorrectly adds imports.
    • Added official support for Python 3.10
Potentially breaking changes:
  • Fixed #​1785: _ast module incorrectly excluded from stdlib definition.

v5.9.3

Compare Source

  • Improved text of skipped file message to mention gitignore feature.
    • Made all exceptions pickleable.
    • Fixed #​1779: Pylama integration ignores pylama specific isort config overrides.
    • Fixed #​1781: --from-first CLI flag shouldn't take any arguments.
    • Fixed #​1792: Sorting literals sometimes ignored when placed on first few lines of file.
    • Fixed #​1777: extend_skip is not honored wit a git submodule when skip_gitignore=true.

v5.9.2

Compare Source

  • Improved behavior of isort --check --atomic against Cython files.
    • Fixed #​1769: Future imports added below assignments when no other imports present.
    • Fixed #​1772: skip-gitignore will check files not in the git repository.
    • Fixed #​1762: in some cases when skip-gitignore is set, isort fails to skip any files.
    • Fixed #​1767: Encoding issues surfacing when invalid characters set in __init__.py files during placement.
    • Fixed #​1771: Improved handling of skips against named streamed in content.

v5.9.1

Compare Source

  • Fixed #​1758: projects with many files and skip_ignore set can lead to a command-line overload.

v5.9.0

Compare Source

  • Improved CLI startup time.
    • Implemented #​1697: Provisional support for PEP 582: skip __pypackages__ directories by default.
    • Implemented #​1705: More intuitive handling of isort:skip_file comments on streams.
    • Implemented #​1737: Support for using action comments to avoid adding imports to individual files.
    • Implemented #​1750: Ability to customize output format lines.
    • Implemented #​1732: Support for custom sort functions.
    • Implemented #​1722: Improved behavior for running isort in atomic mode over Cython source files.
    • Fixed (https://github.com/PyCQA/isort/pull/1695): added imports being added to doc string in some cases.
    • Fixed (https://github.com/PyCQA/isort/pull/1714): in rare cases line continuation combined with tabs can output invalid code.
    • Fixed (https://github.com/PyCQA/isort/pull/1726): isort ignores reverse_sort when force_sort_within_sections is true.
    • Fixed #​1741: comments in hanging indent modes can lead to invalid code.
    • Fixed #​1744: repeat noqa comments dropped when * import and non * imports exist from the same package.
    • Fixed #​1721: repeat noqa comments on separate from lines with force-single-line set, sometimes get dropped.
Goal Zero (Tickets related to aspirational goal of achieving 0 regressions for remaining 5.0.0 lifespan):
  • Implemented #​1394: 100% branch coverage (in addition to line coverage) enforced.
  • Implemented #​1751: Strict typing enforcement (turned on mypy strict mode).

v5.8.0

Compare Source

  • Fixed #​1631: as import comments can in some cases be duplicated.
    • Fixed #​1667: extra newline added with float-to-top, after skip, in some cases.
    • Fixed #​1594: incorrect placement of noqa comments with multiple from imports.
    • Fixed #​1566: in some cases different length limits for dos based line endings.
    • Implemented #​1648: Export MyPY type hints.
    • Implemented #​1641: Identified import statements now return runnable code.
    • Implemented #​1661: Added "wemake" profile.
    • Implemented #​1669: Parallel (-j) now defaults to number of CPU cores if no value is provided.
    • Implemented #​1668: Added a safeguard against accidental usage against /.
    • Implemented #​1638 / #​1644: Provide a flag --overwrite-in-place to ensure same file handle is used after sorting.
    • Implemented #​1684: Added support for extending skips with --extend-skip and --extend-skip-glob.
    • Implemented #​1688: Auto identification and skipping of some invalid import statements.
    • Implemented #​1645: Ability to reverse the import sorting order.
    • Implemented #​1504: Added ability to push star imports to the top to avoid overriding explicitly defined imports.
    • Documented #​1685: Skip doesn't support plain directory names, but skip_glob does.

v5.7.0

Compare Source

  • Fixed #​1612: In rare circumstances an extra comma is added after import and before comment.
    • Fixed #​1593: isort encounters bug in Python 3.6.0.
    • Implemented #​1596: Provide ways for extension formatting and file paths to be specified when using streaming input from CLI.
    • Implemented #​1583: Ability to output and diff within a single API call to isort.file.
    • Implemented #​1562, #​1592 & #​1593: Better more useful fatal error messages.
    • Implemented #​1575: Support for automatically fixing mixed indentation of import sections.
    • Implemented #​1582: Added a CLI option for skipping symlinks.
    • Implemented #​1603: Support for disabling float_to_top from the command line.
    • Implemented #​1604: Allow toggling section comments on and off for indented import sections.

v5.6.4

Compare Source

  • Fixed #​1556: Empty line added between imports that should be skipped.

v5.6.3

Compare Source

v5.6.2

Compare Source

  • Fixed #​1548: On rare occasions an unecessary empty line can be added when an import is marked as skipped.
    • Fixed #​1542: Bug in VERTICAL_MREFIX_FROM_MODULE_IMPORT wrap mode.
    • Fixed #​1552: Pylama test dependent on source layout.
Goal Zero: (Tickets related to aspirational goal of achieving 0 regressions for remaining 5.0.0 lifespan):
  • Zope added to integration test suite
  • Additional testing of CLI (simulate unseekable streams)

v5.6.1

Compare Source

  • Fixed #​1546: Unstable (non-idempotent) behavior with certain src trees.

v5.6.0

Compare Source

  • Implemented #​1433: Provide helpful feedback in case a custom config file is specified without a configuration.
    • Implemented #​1494: Default to sorting imports within .pxd files.
    • Implemented #​1502: Improved float-to-top behavior when there is an existing import section present at top-of-file.
    • Implemented #​1511: Support for easily seeing all files isort will be ran against using isort . --show-files.
    • Implemented #​1487: Improved handling of encoding errors.
    • Improved handling of unsupported configuration option errors (see #​1475).
    • Fixed #​1463: Better interactive documentation for future option.
    • Fixed #​1461: Quiet config option not respected by file API in some circumstances.
    • Fixed #​1482: pylama integration is not working correctly out-of-the-box.
    • Fixed #​1492: --check does not work with stdin source.
    • Fixed #​1499: isort gets confused by single line, multi-line style comments when using float-to-top.
    • Fixed #​1525: Some warnings can't be disabled with --quiet.
    • Fixed #​1523: in rare cases isort can ignore direct from import if as import is also on same line.
Potentially breaking changes:
  • Implemented #​1540: Officially support Python 3.9 stdlib imports by default.
  • Fixed #​1443: Incorrect third vs first party categorization - namespace packages.
  • Fixed #​1486: "Google" profile is not quite Google style.
  • Fixed "PyCharm" profile to always add 2 lines to be consistent with what PyCharm "Optimize Imports" does.
Goal Zero: (Tickets related to aspirational goal of achieving 0 regressions for remaining 5.0.0 lifespan):
  • Implemented #​1472: Full testing of stdin CLI Options
  • Added additional branch coverage.
  • More projects added to integration test suite.

v5.5.5

Compare Source

  • Fixed #​1539: in extremely rare cases isort 5.5.4 introduces syntax error by removing closing paren.

v5.5.4

Compare Source

  • Fixed #​1507: in rare cases isort changes the content of multiline strings after a yield statement.
    • Fixed #​1505: Support case where known_SECTION points to a section not listed in sections.

v5.5.3

Compare Source

  • Fixed #​1488: in rare cases isort can mangle yield from or raise from statements.

v5.5.2

Compare Source

  • Fixed #​1469: --diff option is ignored when input is from stdin.

v5.5.1

Compare Source

  • Fixed #​1454: Ensure indented import sections with import heading and a preceding comment don't cause import sorting loops.
    • Fixed #​1453: isort error when float to top on almost empty file.
    • Fixed #​1456 and #​1415: noqa comment moved to where flake8 cant see it.
    • Fixed #​1460: .svn missing from default ignore list.

v5.5.0

Compare Source

  • Fixed #​1398: isort: off comment doesn't work, if it's the top comment in the file.
    • Fixed #​1395: reverse_relative setting doesn't have any effect when combined with force_sort_within_sections.
    • Fixed #​1399: --skip can error in the case of projects that contain recursive symlinks.
    • Fixed #​1389: ensure_newline_before_comments doesn't work if comment is at top of section and sections don't have lines between them.
    • Fixed #​1396: comments in imports with ";" can keep isort from recognizing import line.
    • Fixed #​1380: As imports removed when combine_star is set.
    • Fixed #​1382: --float-to-top has no effect if no import is already at the top.
    • Fixed #​1420: isort never settles on module docstring + add import.
    • Fixed #​1421: Error raised when repo contains circular symlinks.
    • Fixed #​1427: noqa comment is moved from star import to constant import.
    • Fixed #​1444 & 1445: Incorrect placement of import additions.
    • Fixed #​1447: isort5 throws error when stdin used on Windows with deprecated args.
    • Implemented #​1397: Added support for specifying config file when using git hook (thanks @​diseraluca!).
    • Implemented #​1405: Added support for coloring diff output.
    • Implemented #​1434: New multi-line grid mode without parentheses.
Goal Zero (Tickets related to aspirational goal of achieving 0 regressions for remaining 5.0.0 lifespan):
  • Implemented #​1392: Extensive profile testing.
  • Implemented #​1393: Proprety based testing applied to code snippets.
  • Implemented #​1391: Create automated integration test that includes full code base of largest OpenSource isort users.
Potentially breaking changes:
  • Fixed #​1429: --check doesn't print to stderr as the documentation says. This means if you were looking for ERROR: messages for files that contain incorrect imports within stdout you will now need to look in stderr.

v5.4.2

Compare Source

  • Fixed #​1383: Known other does not work anymore with .editorconfig.
    • Fixed: Regression in first known party path expansion.

v5.4.1

Compare Source

  • Fixed #​1381: --combine-as loses # noqa in different circumstances.

v5.4.0

Compare Source

  • Implemented #​1373: support for length sort only of direct (AKA straight) imports.
    • Fixed #​1321: --combine-as loses # noqa.
    • Fixed #​1375: --dont-order-by-type CLI broken.

v5.3.2

Compare Source

  • Fixed incorrect warning code (W503->W0503).

v5.3.1

Compare Source

  • Improve upgrade warnings to be less noisy and point to error codes for easy interoperability with Visual Studio Code (see: #​1363).

v5.3.0

Compare Source

  • Implemented ability to treat all or select comments as code (issue #​1357)
    • Implemented ability to use different configs for different file extensions (issue #​1162)
    • Implemented ability to specify the types of imports (issue #​1181)
    • Implemented ability to dedup import headings (issue #​953)
    • Added experimental support for sorting literals (issue #​1358)
    • Added experimental support for sorting and deduping groupings of assignments.
    • Improved handling of deprecated single line variables for usage with Visual Studio Code (issue #​1363)
    • Improved handling of mixed newline forms within same source file.
    • Improved error handling for known sections.
    • Improved API consistency, returning a boolean value for all modification API calls to indicate if changes were made.
    • Fixed #​1366: spurious errors when combining skip with --gitignore.
    • Fixed #​1359: --skip-gitignore does not honor ignored symlink
Internal Development:
  • Initial hypothesmith powered test to help catch unexpected syntax parsing and output errors (thanks @​Zac-HD!)

v5.2.2

Compare Source

  • Fixed #​1356: return status when arguments are passed in without files or a content stream.

v5.2.1

Compare Source

  • Update precommit to default to filtering files that are defined in skip.
    • Improved relative path detection for skip config usage.
    • Added recursive symbolic link protection.
    • Implemented #​1177: Support for color output using --color.
    • Implemented recursive symlink detection support.

v5.2.0

Compare Source

  • Implemented #​1335: Official API for diff capturing.
    • Implemented #​1331: Warn when sections don't match up.
    • Implemented #​1261: By popular demand, filter_files can now be set in the config option.
    • Implemented #​960: Support for respecting git ignore via "--gitignore" or "skip_gitignore=True".
    • Implemented #​727: Ability to only add imports if existing imports exist.
    • Implemented #​970: Support for custom sharable isort profiles.
    • Implemented #​1214: Added support for git_hook lazy option (Thanks @​sztamas!)
    • Implemented #​941: Added an additional multi_line_output mode for more compact formatting (Thanks @​sztamas!)
    • Implemented #​1020: Option for LOCALFOLDER.
    • Implemented #​1353: Added support for output formatting plugins.
    • # isort: split can now be used at the end of an import line.
    • Fixed #​1339: Extra indent is not preserved when isort:skip is used in nested imports.
    • Fixed #​1348: --diff works incorrectly with files that have CRLF line endings.
    • Improved code repositories usage of pylint tags (#​1350).

v5.1.4

Compare Source

  • Fixed issue #​1333: Use of wrap_length raises an exception about it not being lower or equal to line_length.
    • Fixed issue #​1330: Ensure stdout can be stubbed dynamically for show_unified_diff function.

v5.1.3

Compare Source

  • Fixed issue #​1329: Fix comments duplicated when --fass option is set.

v5.1.2

Compare Source

  • Fixed issue #​1219 / #​1326: Comments not wrapped for long lines
    • Fixed issue #​1156: Bug related to isort:skip usage followed by a multiline comment block

v5.1.1

Compare Source

  • Fixed issue #​1322: Occasionally two extra newlines before comment with -n & --fss.
    • Fixed issue #​1189: --diff broken when reading from standard input.

v5.1.0

Compare Source

  • isort now throws an exception if an invalid settings path is given (issue #​1174).
    • Implemented support for automatic redundant alias removal (issue #​1281).
    • Implemented experimental support for floating all imports to the top of a file (issue #​1228)
    • Fixed #​1178: support for semicolons in decorators.
    • Fixed #​1315: Extra newline before comment with -n + --fss.
    • Fixed #​1192: -k or --keep-direct-and-as-imports option has been deprecated as it is now always on.
Formatting changes implied:
  • Fixed #​1280: rewrite of as imports changes the behavior of the imports.

v5.0.9

Compare Source

  • Fixed #​1301: Import headings in nested sections leads to check errors

v5.0.8

Compare Source

v5.0.7

Compare Source

  • Fixed #​1306: unexpected --diff behavior.
    • Fixed #​1279: Fixed NOQA comment regression.

v5.0.6

Compare Source

  • Fixed #​1302: comments and --trailing-comma can generate invalid code.
    • Fixed #​1293: extra new line in indented imports, when immediately followed by a comment.
    • Fixed #​1304: isort 5 no longer recognises sre_parse as a stdlib module.
    • Fixed #​1300: add_imports moves comments following import section.
    • Fixed #​1276: Fix a bug that creates only one line after triple quotes.

v5.0.5

Compare Source

  • Fixed #​1285: packaging issue with bundling tests via poetry.
    • Fixed #​1284: Regression when sorting .pyi files from CLI using black profile.
    • Fixed #​1275 & #​1283: Blank line after docstring removed.
    • Fixed #​1298: CLI Help out of date with isort 5.
    • Fixed #​1290: Unecessary blank lines above nested imports when import comments turned on.
    • Fixed #​1297: Usage of --add-imports alongside --check is broken.
    • Fixed #​1289: Stream usage no longer auto picking up config file from current working directory.
    • Fixed #​1296: Force_single_line setting removes immediately following comment line.
    • Fixed #​1295: ensure_newline_before_comments doesnt work with force_sort_within_sections.
    • Setting not_skip will no longer immediately fail but instead give user a warning and direct to upgrade docs.

v5.0.4

Compare Source

  • Fixed #​1264: a regression with comment handling and force_sort_within_sections config option
    • Added warning for deprecated CLI flags and linked to upgrade guide.

v5.0.3

Compare Source

v5.0.2

Compare Source

  • Ensured black profile was complete, adding missing line_length definition.

v5.0.1

Compare Source

  • Fixed a runtime error in a vendored dependency (toml).

v5.0.0

Compare Source

Breaking changes:

  • isort now requires Python 3.6+ to run but continues to support formatting on ALL versions of python including Python 2 code.
  • isort deprecates official support for Python 3.4, removing modules only in this release from known_standard_library:
    • user
  • Config files are no longer composed on-top of each-other. Instead the first config file found is used.
    • Since there is no longer composition negative form settings (such as --dont-skip or it's config file variant not_skip) are no longer required and have been removed.
  • Two-letter shortened setting names (like ac for atomic) now require two dashes to avoid ambiguity: --ac.
  • For consistency with other tools -v now is shorthand for verbose and -V is shorthand for version. See Issue: #​1067.
  • length_sort_{section_name} config usage has been deprecated. Instead length_sort_sections list can be used to specify a list of sections that need to be length sorted.
  • safety_excludes and unsafe have been deprecated
  • Config now includes as default full set of safety directories defined by safety excludes.
  • --recursive option has been removed. Directories passed in are now automatically sorted recursive.
  • --apply option has been removed as it is the default behaviour.
  • isort now does nothing, beyond giving instructions and exiting status code 0, when ran with no arguments.
    • a new --interactive flag has been added to enable the old style behaviour.
  • isort now works on contiguous sections of imports, instead of one whole file at a time.
  • ~~isort now formats all nested "as" imports in the "from" form. import x.y as a becomes from x import y as a.~~ NOTE: This was undone in version 5.1.0 due to feedback it caused issues with some project conventions.
  • keep_direct_and_as_imports option now defaults to True.
  • appdirs is no longer supported. Unless manually specified, config should be project config only.
  • toml is now installed as a vendorized module, meaning pyproject.toml based config is always supported.
  • Completely new Python API, old version is removed and no longer accessible.
  • New module placement logic and module fully replaces old finders. Old approach is still available via --old-finders.

Internal:

  • isort now utilizes mypy and typing to filter out typing related issues before deployment.

  • isort now utilizes black internally to ensure more consistent formatting.

  • profile support for common project types (black, django, google, etc)

  • Much much more. There is some difficulty in fully capturing the extent of changes in this release - just because of how all encompassing the release is. See: Github Issues for more.


Configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, click this checkbox.

This MR has been generated by Renovate Bot.

Edited by Tine Wittler

Merge request reports