Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A Python utility / library to sort imports.

License

NotificationsYou must be signed in to change notification settings

PyCQA/isort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

isort - isort your imports, so you don't have to.


PyPI versionTestLintCode coverage StatusLicenseJoin the chat at https://gitter.im/timothycrosley/isortDownloadsCode style: blackImports: isortDeepSource


Read Latest Documentation -Browse GitHub Code Repository


isort your imports, so you don't have to.

isort is a Python utility / library to sort imports alphabetically andautomatically separate into sections and by type. It provides a command lineutility, Python library andplugins for variouseditors toquickly sort all your imports. It requires Python 3.9+ to run butsupports formatting Python 2 code too.

Example Usage

Before isort:

frommy_libimportObjectimportosfrommy_libimportObject3frommy_libimportObject2importsysfromthird_partyimportlib15,lib1,lib2,lib3,lib4,lib5,lib6,lib7,lib8,lib9,lib10,lib11,lib12,lib13,lib14importsysfrom __future__importabsolute_importfromthird_partyimportlib3print("Hey")print("yo")

After isort:

from __future__importabsolute_importimportosimportsysfromthird_partyimport (lib1,lib2,lib3,lib4,lib5,lib6,lib7,lib8,lib9,lib10,lib11,lib12,lib13,lib14,lib15)frommy_libimportObject,Object2,Object3print("Hey")print("yo")

Installing isort

Installing isort is as simple as:

pip install isort

Using isort

From the command line:

To run on specific files:

isort mypythonfile.py mypythonfile2.py

To apply recursively:

isort.

Ifglobstaris enabled,isort . is equivalent to:

isort**/*.py

To view proposed changes without applying them:

isort mypythonfile.py --diff

Finally, to atomically run isort against a project, only applyingchanges if they don't introduce syntax errors:

isort --atomic.

(Note: this is disabled by default, as it prevents isort fromrunning against code written using a different version of Python.)

From within Python:

importisortisort.file("pythonfile.py")

or:

importisortsorted_code=isort.code("import b\nimport a\n")

Installing isort's for your preferred text editor

Several plugins have been written that enable to use isort from within avariety of text-editors. You can find a full list of themon the isortwiki.Additionally, I will enthusiastically accept pull requests that includeplugins for other text editors and add documentation for them as I amnotified.

Multi line output modes

You will notice above the "multi_line_output" setting. This settingdefines how from imports wrap when they extend past the line_lengthlimit and has12 possible settings.

Indentation

To change the how constant indents appear - simply change theindent property with the following accepted formats:

  • Number of spaces you would like. For example: 4 would cause standard4 space indentation.
  • Tab
  • A verbatim string with quotes around it.

For example:

"    "

is equivalent to 4.

For the import styles that use parentheses, you can control whether ornot to include a trailing comma after the last import with theinclude_trailing_comma option (defaults toFalse).

Intelligently Balanced Multi-line Imports

As of isort 3.1.0 support for balanced multi-line imports has beenadded. With this enabled isort will dynamically change the import lengthto the one that produces the most balanced grid, while staying below themaximum import length defined.

Example:

from __future__import (absolute_import,division,print_function,unicode_literals)

Will be produced instead of:

from __future__import (absolute_import,division,print_function,unicode_literals)

To enable this setbalanced_wrapping toTrue in your config or passthe-e option into the command line utility.

Custom Sections and Ordering

isort provides configuration options to change almost every aspect of howimports are organized, ordered, or grouped together in sections.

Click here for an overview of all these options.

Skip processing of imports (outside of configuration)

To make isort ignore a single import simply add a comment at the end ofthe import line containing the textisort:skip:

importmodule# isort:skip

or:

fromxyzimport (abc,# isort:skipyo,hey)

To make isort skip an entire file simply addisort:skip_file to themodule's doc string:

""" my_module.py    Best module ever   isort:skip_file"""importbimporta

Adding or removing an import from multiple files

isort can be ran or configured to add / remove imports automatically.

See a complete guide here.

Using isort to verify code

The--check-only option

isort can also be used to verify that code is correctly formattedby running it with-c. Any files that contain incorrectly sortedand/or formatted imports will be outputted tostderr.

isort**/*.py -c -vSUCCESS: /home/timothy/Projects/Open_Source/isort/isort_kate_plugin.py Everything Looks Good!ERROR: /home/timothy/Projects/Open_Source/isort/isort/isort.py Imports are incorrectly sorted.

One great place this can be used is with a pre-commit git hook, such asthis one by @acdha:

https://gist.github.com/acdha/8717683

This can help to ensure a certain level of code quality throughout aproject.

Git hook

isort provides a hook function that can be integrated into your Gitpre-commit script to check Python code before committing.

More info here.

Setuptools integration

Upon installation, isort enables asetuptools command that checksPython files declared by your project.

More info here.

Spread the word

Imports: isort

Place this badge at the top of your repository to let others know your project uses isort.

For README.md:

[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)

Or README.rst:

..image::https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336:target:https://pycqa.github.io/isort/

Security contact information

To report a security vulnerability, please use theTidelift securitycontact. Tidelift will coordinate thefix and disclosure.

Why isort?

isort simply stands for import sort. It was originally called"sortImports" however I got tired of typing the extra characters andcame to the realization camelCase is not pythonic.

I wrote isort because in an organization I used to work in the managercame in one day and decided all code must have alphabetically sortedimports. The code base was huge - and he meant for us to do it by hand.However, being a programmer - I'm too lazy to spend 8 hours mindlesslyperforming a function, but not too lazy to spend 16 hours automating it.I was given permission to open source sortImports and here we are :)


Get professionally supported isort with the TideliftSubscription

Professional support for isort is available as part of theTideliftSubscription.Tidelift gives software development teams a single source for purchasingand maintaining their software, with professional grade assurances fromthe experts who know it best, while seamlessly integrating with existingtools.


Thanks and I hope you find isort useful!

~Timothy Crosley


[8]ページ先頭

©2009-2025 Movatter.jp