Update dependency isort to v5
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
- Apply the bracket fix from issue #471 only for use_parentheses=True (#2184) @bp72
- Confine pre-commit to stages (#2213) @davidculley
- Fixed colors extras (#2212) @staticdev
v5.13.1
- Fixed integration tests (#2208) @bp72
- Fixed normalizing imports from more than one level of parent modules (issue/2152) (#2191) @bp72
- Remove optional dependencies without extras (#2207) @staticdev
v5.13.0
- Cleanup deprecated extras (#2089) @staticdev
- Fixed #1989: settings lookup when working in stream based mode
- Fixed 80 line length for wemake linter (#2183) @skatromb
- Add support for Python 3.12 (#2175) @hugovk
- Fixed: add newest version to pre-commit docs (#2190) @AzulGarza
- Fixed assertions in test_git_hook (#2196) @mgorny
- Removed check for include_trailing_comma for the Hanging Indent wrap mode (#2192) @bp72
- Use the standard library tomllib on sufficiently new python (#2202) @eli-schwartz
- Update pre-commit.md version number (#2197) @nicobako
- doc: Update black_compatibility.md (#2177) @JSS95
- Fixed safety sept 2023 (#2178) @staticdev
- docs: fix black profile documentation (#2163) @nijel
- Fixed typo: indended -> indented (#2161) @vadimkerr
- Docs(configuration/options.md): fix missing trailing spaces for hard linebreak (#2157) @JoeyTeng
- Update pre-commit.md (#2148) @godiard
- chore: move configurations to pyproject.toml (#2115) @SauravMaheshkar
- Fixed typo in README (#2112) @stefmolin
- Update version in pre-commit setup to avoid installation issue with poetry (#2103) @stefmolin
- Skip .pytype directory by default. (#2098) @manueljacob
- Fixed a tip block styling in the Config Files section (#2097) @Klavionik
- Do not cache configuration files (#1995) @kaste
- Derive settings_path from --filename (#1992) @kaste
- Fixed year of version 5.12.0 in CHANGELOG.md (#2082) @DjLegolas
v5.12.0
- 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
- Fixed incompatiblity with latest poetry version
v5.11.4
- Fixed #2038 (again): stop installing documentation files to top-level site-packages (#2057) @mgorny
v5.11.3
- Fixed #2007: settings for py3.11 (#2040) @staticdev
- Fixed #2038: packaging pypoetry (#2042) @staticdev
- Docs: renable portray (#2043) @timothycrosley
- Ci: add minimum GitHub token permissions for workflows (#1969) @varunsh-coder
- Ci: general CI improvements (#2041) @staticdev
- Ci: add release workflow (#2026) @staticdev
v5.11.2
- Hotfix #2034: isort --version is not accurate on 5.11.x releases (#2034) @gschaffner
v5.11.1
- Hotfix #2031: only call
colorama.init
ifcolorama
is available (#2032) @tomaarsen
v5.11.0
- Added official support for Python 3.11 (#1996, #2008, #2011) @staticdev
- Dropped support for Python 3.6 (#2019) @barrelful
- Fixed problematic tests (#2021, #2022) @staticdev
- Fixed #1960: Rich compatibility (#1961) @ofek
- Fixed #1945, #1986: Python 4.0 upper bound dependency resolving issues @staticdev
- Fixed Pyodide CDN URL (#1991) @andersk
- Docs: clarify description of use_parentheses (#1941) @mgedmin
- Fixed #1976:
black
compatibility for.pyi
files @XuehaiPan - Implemented #1683: magic trailing comma option (#1876) @legau
- Add missing space in unrecoverable exception message (#1933) @andersk
- Fixed #1895: skip-gitignore: use allow list, not deny list @bmalehorn
- Fixed #1917: infinite loop for unmatched parenthesis (#1919) @anirudnits
- Docs: shared profiles (#1896) @matthewhughes934
- Fixed build-backend values in the example plugins (#1892) @mgorny
- Remove reference to jamescurtin/isort-action (#1885) @AndrewLane
- Split long cython import lines (#1931) @davidcollins001
- Update plone profile: copy of
black
, plus three settings. (#1926) @mauritsvanrees - Fixed #1815, #1862: Add a command-line flag to sort all re-exports (#1863) @parafoxia
- Fixed #1854:
lines_before_imports
appending lines after comments (#1861) @legau - Remove redundant
multi_line_output = 3
from "Compatibility with black" (#1858) @jdufresne - Add tox config example (#1856) @umonaca
- Docs: add examples for frozenset and tuple settings (#1822) @sgaist
- Docs: add multiple config documentation (#1850) @anirudnits
v5.10.1
- Fixed #1819: Occasional inconsistency with multiple src paths.
- Fixed #1840: skip_file ignored when on the first docstring line
v5.10.0
- Implemented #1796: Switch to
tomli
for pyproject.toml configuration loader.
Potentially breaking changes:
- Fixed #1785:
_ast
module incorrectly excluded from stdlib definition.
v5.9.3
- 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
- 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
- Fixed #1758: projects with many files and skip_ignore set can lead to a command-line overload.
v5.9.0
- 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.
- Implemented #1697: Provisional support for PEP 582: skip
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
- 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
- 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
- Fixed #1556: Empty line added between imports that should be skipped.
v5.6.3
- Improved packaging of test files alongside source distribution (see: https://github.com/PyCQA/isort/pull/1555).
v5.6.2
- Fixed #1548: On rare occasions an unecessary empty line can be added when an import is marked as skipped.
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
- Fixed #1546: Unstable (non-idempotent) behavior with certain src trees.
v5.6.0
- 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.
- Implemented #1494: Default to sorting imports within
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
- Fixed #1539: in extremely rare cases isort 5.5.4 introduces syntax error by removing closing paren.
v5.5.4
- 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
- Fixed #1488: in rare cases isort can mangle
yield from
orraise from
statements.
v5.5.2
- Fixed #1469: --diff option is ignored when input is from stdin.
v5.5.1
- Fixed #1454: Ensure indented import sections with import heading and a preceding comment don't cause import sorting loops.
v5.5.0
- 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
- Fixed #1383: Known other does not work anymore with .editorconfig.
- Fixed: Regression in first known party path expansion.
v5.4.1
- Fixed #1381: --combine-as loses # noqa in different circumstances.
v5.4.0
- Implemented #1373: support for length sort only of direct (AKA straight) imports.
v5.3.2
- Fixed incorrect warning code (W503->W0503).
v5.3.1
- Improve upgrade warnings to be less noisy and point to error codes for easy interoperability with Visual Studio Code (see: #1363).
v5.3.0
- 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
- Fixed #1356: return status when arguments are passed in without files or a content stream.
v5.2.1
- 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.
- Improved relative path detection for
v5.2.0
- 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
- 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.
- Fixed issue #1330: Ensure stdout can be stubbed dynamically for
v5.1.3
- Fixed issue #1329: Fix comments duplicated when --fass option is set.
v5.1.2
- 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
- Fixed issue #1322: Occasionally two extra newlines before comment with
-n
&--fss
.- Fixed issue #1189:
--diff
broken when reading from standard input.
- Fixed issue #1189:
v5.1.0
- 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
- Fixed #1301: Import headings in nested sections leads to check errors
v5.0.8
v5.0.7
v5.0.6
- 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
- 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 withforce_sort_within_sections
. - Setting not_skip will no longer immediately fail but instead give user a warning and direct to upgrade docs.
- Fixed #1284: Regression when sorting
v5.0.4
- 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
- Fixed setup.py command incorrectly passing check=True as a configuration parameter (see: https://github.com/pycqa/isort/issues/1258)
- Fixed missing patch version
- Fixed issue #1253: Atomic fails when passed in not readable output stream
v5.0.2
- Ensured black profile was complete, adding missing line_length definition.
v5.0.1
- Fixed a runtime error in a vendored dependency (toml).
v5.0.0
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.
- Since there is no longer composition negative form settings (such as --dont-skip or it's config file variant
- Two-letter shortened setting names (like
ac
foratomic
) 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. Insteadlength_sort_sections
list can be used to specify a list of sections that need to be length sorted. -
safety_excludes
andunsafe
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.
- a new
- 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
becomesfrom 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 toTrue
. -
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
-
If you want to rebase/retry this MR, click this checkbox.
This MR has been generated by Renovate Bot.