-
Notifications
You must be signed in to change notification settings - Fork 73
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 hook
Then 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 --check
Please visit our newer docs at https://docs.sourcery.ai