Skip to content

PyCharm

Hellebore edited this page Apr 20, 2021 · 2 revisions

Installation

New Users - Creating Your Sourcery Account

If this is your first time using Sourcery you'll need to set up a Sourcery account. You can create an account with your GitHub account, Google account, or your email address.

Installing the Sourcery Plugin

VS Code Installation

  • Open the "File/Settings/Preferences" menu (just "Preferences" on Mac)
  • Select "Plugins"
  • Click the "Marketplace" tab
  • Search for Sourcery
  • Click "Install"

Getting Started

Adding the Sourcery Token

Sourcery needs a token to run in PyCharm. To get your token, just log into your Sourcery account and copy the token on the page.

Then:

Enter token

  • Open the PyCharm Preferences menu
  • Click into the Sourcery menu item
  • Paste in the token

Seeing your first refactoring suggestion

Sourcery will run in the background whenever you're working on a Python file. When Sourcery detects a refactoring opportunity it will underline the first line of code it recommends that you change. Hover over the underlined line to get an explanation of the change along with a diff of the proposed changes to your code.

To accept a suggestion you can:

  • Press Alt Enter when you have selected the highlighted line and then choose to apply the refactoring
  • Click on the lightbulb icon next to the highlighted line and then select to accept the refactoring
  • In the Sourcery tool window, right click on the suggested refactoring, and select Refactor Function

Accept refactoring

How To

Accept a Suggestion

To accept a suggestion you can:

  • Press Alt Enter when you have selected the highlighted line and then choose to apply the refactoring
  • Click on the lightbulb icon next to the highlighted line and then select to accept the refactoring
  • In the Sourcery tool window, right click on the suggested refactoring, and select Refactor Function

Accept refactoring

Disable Sourcery on a File or Path

We know there might be files or paths you don't want Sourcery to refactor - especially things like third party libraries. If you want Sourcery to ignore these you can add a file or a path to the ignore section in the .sourcery.yaml file in your project directory like this:

    ```
    ignore:
      - data/*
      - .venv/*
      - '*_test.py'  # Note that any strings beginning with * must be quoted
    ```

See Quality Metrics

Sourcery gives every one of your functions a quality score on 4 different metrics:

  • Complexity
  • Method Length
  • Working Memory
  • Overall Quality

To see the metrics for any function, simply hover your mouse of the line defining the function and the Sourcery metrics will pop up. Each metric will have a numeric score, along with a quick qualitative guide ranging from bad to excellent.

Quality metrics

Sourcery will also automatically flag functions with too low of an overall quality score in the Sourcery window. By default this is set for functions with a quality score under 25%, but you [can configure this](Sourcery Configuration).

Skip a Suggestion

Sometimes you might see a Sourcery suggestion you don't want to accept. You can ignore these suggestions in one of three ways:

  • Add a comment # sourcery skip to a function to skip all reactorings for that function
  • Add a comment # sourcery skip: <refactoring-id> to a function to skip the specific refactoring in that function. A full list of refactorings and their IDs are available at Current Refactorings.
  • Select Skip Suggested Refactoring from the drop down menu when you press the quickfix shortcut or click on the lightbulb icon.

Skip a suggestion

You can also configure Sourcery to never suggest a particular refactoring. For details see the Sourcery Configuration page.

Advanced Usage

There are more advanced ways you can improve your code with a Sourcery Pro or Sourcery Team subscription:

Full Project / Multi-File Code Review

You can have Sourcery review multiple files, a folder, or an entire project at once:

  • Right click on the folder or file you're interested in.
  • Select "Inspect Code"
  • Click on the three dots next to the "Inspection Profile"
  • Make sure Sourcery is selected and click "Ok"
  • Suggestions from Sourcery will appear in the inspection results

Method Extraction

Sourcery will automatically detect opportunities for repeated or nearly repeated sections of code within a function to be extracted out into their own methods. When these refactorings are suggested the new methods will be given a generic name based on the function it was extracted from and you can easily rename it.

Method extraction

Duplicate Code Detection (Beta)

Sourcery can help you find duplicate sections of code across your project.

  • Right click on files or folders in the Explorer window
  • Select "Sourcery - Detect clones"
  • A list of duplicate and near duplicate sections of code will appear in the Sourcery tool window.

Detect clones