# Python

# Configuration - .deepsource.toml

This section covers configuration specific to python analyzer. Please make sure to read the general configuration guide first.

# name

  • Type: String
  • Presence: mandatory
  • Description: Shortcode of the analyzer.
  • Example:
name = "python"

# enabled

  • Type: Boolean
  • Presence: mandatory
  • Description: Toggle whether this analyzer should be run.
  • Example:
enabled = true

# dependency_file_paths

  • Type: Array
  • Presence: optional
  • Description: List of files that contain the list of external dependencies, relative to repository's root.
  • Example:
dependency_file_paths = [
  "dev_requirements.txt",
  "prod_requirements.txt"
]

TIP

By default the following are automatically detected and scanned for dependencies, if found in repository's root:

  • Pipfile
  • Pipfile.lock
  • poetry.lock
  • pyproject.toml (if containing a [tool.poetry] or [tool.flit] section)
  • requirements.txt
  • setup.py

In case, your package manager produces a lock file, specify both the requirements file and the lock file here.

# meta

  • Type: Table
  • Presence: optional
  • Description: Any supported metadata to pass to the analyzer.
  • Example:
[analyzers.meta]
  runtime_version = "3.x.x"
  max_line_length = 88
  skip_doc_coverage = ["module", "magic", "init"]

# runtime_version

  • Type: String
  • Presence: optional
  • Description: Runtime version of your language in semver.
  • Available Values: "2.x.x", "3.x.x"
  • Default Value: "3.x.x"
  • Example:
runtime_version = "3.x.x"

# max_line_length

  • Type: Integer
  • Presence: optional
  • Description: Maximum allowed line length (including documentation).
  • Available Value: Any integer value greater than or equal to 79
  • Default Value:88
  • Example:
max_line_length = 88

# skip_doc_coverage

  • Type: Array

  • Presence: optional

  • Description: Specify which artifacts to skip when calculating documentation coverage.

  • Available Values: module, magic, init and class

    • module - Ignore module docstrings
    • magic - Ignore docstrings of magic methods (except "init")
    • init - Ignore docstrings of "init" methods
    • class - Ignore docstrings of class definitions
  • Default Value: ["module", "magic", "init"]

  • Example:

skip_doc_coverage = ["module", "magic", "init"]

# type_checker

  • Type: String
  • Presence: optional
  • Description: Activates type checking analyzer. Please note: This will only raise type annotation issues.
  • Available Value: "mypy"
  • Default Value: None
  • Example:
type_checker = "mypy"

# additional_builtins

  • Type: Array
  • Presence: optional
  • Description: Additional built-ins added by the user or third-party modules.
  • Available Value: An array with additional built-in names.
  • Default Value: None
  • Example:
additional_builtins = ["_", "pretty_output"]

# Sample config

version = 1

test_patterns = [
  "tests/**",
  "test_*.py"
]

exclude_patterns = [
  "migrations/**",
  "**/examples/**"
]

[[analyzers]]
name = "python"
enabled = true
dependency_file_paths = ["requirements/development.txt"]

  [analyzers.meta]
  runtime_version = "3.x.x"
  type_checker = "mypy"
  max_line_length = 88
  skip_doc_coverage = ["module", "magic", "init"]
  additional_builtins = ["_", "pretty_output"]
Last Updated: 7/8/2020, 10:03:47 AM