-
Couldn't load subscription status.
- Fork 89
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