Skip to content

Commit

Permalink
Add initial CLI usage documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
timothycrosley committed Jul 1, 2020
1 parent 664aca3 commit 1e41f7a
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
43 changes: 43 additions & 0 deletions docs/quick_start/2.-cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Command Line Usage

Once installed, `isort` exposes a command line utility for sorting, organizing, and formatting imports within Python and Cython source files.

To verify the tool is installed correctly, run `isort --version` from the command line and you should be given the available commands and the version of isort installed.
For a list of all CLI options type `isort --help` or view [the online configuration reference](http://127.0.0.1:8000/docs/configuration/options/).:

<script id="asciicast-RgDc2o0URNsh2jXAOPsGxN7Kq" src="https://asciinema.org/a/RgDc2o0URNsh2jXAOPsGxN7Kq.js" async></script>

## Formatting a Project

In general, isort is most commonly utilized across an entire projects source at once. The simplest way to do this is `isort .` or if using a `src` directory `isort src`. isort will automatically find all Python source files recursively and pick-up a configuration file placed at the root of your project if present. This can be combined with any command line configuration customizations such as specifying a profile to use (`isort . --profile black`).

<script id="asciicast-3bLYNjlnk14eLrRFgCL5gCpFt" src="https://asciinema.org/a/3bLYNjlnk14eLrRFgCL5gCpFt.js" async></script>

## Verifying a Project

The second most common usage of isort is verifying that imports within a project are formatted correctly (often within the context of a CI/CD system). The simplest way to accomplish this is using the check command line option: `isort --check .`. To improve the usefulness of errors when they do occur, this can be combined with the diff option: `isort --check --diff .`.

<script id="asciicast-g4tyWhblyJqgq1BTyrC9MxpbD" src="https://asciinema.org/a/g4tyWhblyJqgq1BTyrC9MxpbD.js" async></script>

## Single Source Files

Finally, isort can just as easily be ran against individual source files. Simply pass in a single or multiple source files to sort or validate (Example: `isort setup.py`).

<script id="asciicast-WEVnVpy0F9dTH8TSHofwPVcK3" src="https://asciinema.org/a/WEVnVpy0F9dTH8TSHofwPVcK3.js" async></script>

## Multiple Projects

Running a single isort command across multiple projects, or source files spanning multiple projects, is highly discouraged. Instead it is recommended that an isort process (or command) is ran for each project independently. This is because isort creates an immutable config for each CLI instance.

```
# YES
isort project1
isort project2
# Also YES
isort project1/src project1/test
isort project2/src project2/test
# NO
isort project1 project2
```
2 changes: 1 addition & 1 deletion scripts/build_profile_docs.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /bin/env python
import os
from typing import Any, Generator, Iterable, Type, Dict
from typing import Any, Dict, Generator, Iterable, Type

from isort._future import dataclass
from isort.main import _build_arg_parser
Expand Down

0 comments on commit 1e41f7a

Please sign in to comment.