emre / kaptan

configuration manager in your pocket.
https://kaptan.readthedocs.io
BSD 3-Clause "New" or "Revised" License
306 stars 24 forks source link

Update isort to 5.8.0 #230

Closed pyup-bot closed 3 years ago

pyup-bot commented 3 years ago

This PR updates isort from 4.3.21 to 5.8.0.

Changelog ### 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 - PyPI: https://pypi.org/project/isort - Changelog: https://pyup.io/changelogs/isort/ - Repo: https://pycqa.github.io/isort/
pyup-bot commented 3 years ago

Closing this in favor of #235