- 
                Notifications
    
You must be signed in to change notification settings  - Fork 91
 
Command Line Interface
Sourcery command line interface can be installed by running:
pip install sourcery-cli
Once installed you can interactively login with:
sourcery login
which will open up a browser tab and ask for confirmation. This is only needed once per computer.
Please be aware that the Sourcery CLI requires a Team subscription to use. You can upgrade here.
To display suggested refactorings as a diff:
sourcery refactor {file_or_directory}
And to apply those changes to the files:
sourcery refactor --in-place {file_or_directory}
Sourcery provides a few options for running. You can list them by running sourcery refactor --help
sourcery refactor --help
Usage: sourcery refactor [OPTIONS] [SRC]...
  Refactor SRC files/directories. Reads from stdin when SRC is -
Options:
  -c, --code TEXT     Refactor the code passed in as a string.
  --check             Return exit code 1 if refactorings found.  [default:
                      False]
  --diff / --no-diff  Output a diff for each file on stdout.  [default: True]
  --in-place          Make changes to files in place  [default: False]
  -h, --help          Show this message and exit.
Sourcery reads configuration settings from .sourcery.yaml in the project directory. Full details are described here.
Sourcery works great with pre-commit. Once you have it installed, add this to the .pre-commit-config.yaml in your repository:
repos:
  - repo: https://github.com/sourcery-ai/sourcery
    rev: v0.8.0 # Get the latest tag from https://github.com/sourcery-ai/sourcery/tags
    hooks:
      - id: sourcery
      # - args: [--in-place]  Automatically apply the refactorings in the hookThen run pre-commit install and you're ready to go.
Here's a script to run Sourcery in CI that will fail the job if any refactorings are found:
# Install sourcery
pip install sourcery-cli
# Login - store SOURCERY_TOKEN in a secret/masked environment variable
sourcery login --token $SOURCERY_TOKEN
# Find changed files and pass them to Sourcery
git diff master --name-only | xargs sourcery refactor --checkPlease visit our newer docs at https://docs.sourcery.ai