Skip to content
This repository has been archived by the owner on Dec 14, 2021. It is now read-only.

Update isort to 5.10.1 #655

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Contributor

@pyup-bot pyup-bot commented Nov 9, 2021

This PR updates isort from 4.3.21 to 5.10.1.

Changelog

5.10.1

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

5.10.0

- 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.

5.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.

5.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.

5.9.1

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

5.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.

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).

5.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.

5.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.

5.6.4

- Fixed 1556: Empty line added between imports that should be skipped.

5.6.3

- Improved packaging of test files alongside source distribution (see: https://github.com/PyCQA/isort/pull/1555).

5.6.2

- Fixed 1548: On rare occasions an unecessary empty line can be added when an import is marked as skipped.
- Fixed 1542: Bug in VERTICAL_PREFIX_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)

5.6.1

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

5.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.

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.

5.5.5

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

5.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.

5.5.3

- Fixed 1488: in rare cases isort can mangle `yield from` or `raise from` statements.

5.5.2

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

5.5.1

- 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.

5.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.

5.4.2

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

5.4.1

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

5.4.0

- 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.

5.3.2

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

5.3.1

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

5.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!)

5.2.2

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

5.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.

5.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).

5.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.

5.1.3

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

5.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

5.1.1

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

5.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.

5.0.9

- Fixed 1301: Import headings in nested sections leads to check errors

5.0.8

- Fixed 1277 & 1278: New line detection issues on Windows.
- Fixed 1294: Fix bundled git hook.

5.0.7

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

5.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.

5.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 with `force_sort_within_sections`.
- Setting not_skip will no longer immediately fail but instead give user a warning and direct
 to upgrade docs.

5.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.

5.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

5.0.2

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

5.0.1

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

5.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.
- 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](https://github.com/pycqa/isort/issues?q=is%3Aissue+is%3Aclosed) for more.
Links

@pyup-bot pyup-bot mentioned this pull request Nov 9, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant