isort v5.0.0 Release Notes
Release Date: 2020-07-04 // almost 4 years ago-
💥 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.NOTE: This was undone in version 5.1.0 due to feedback it caused issues with some project conventions.import x.y as a
becomesfrom x import y as a
.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.