Code Analysis
.deepsource.toml
This section covers.deepsource.toml configuration specific to the python analyzer. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of the analyzer.
- Example:
meta
- Type: Table
- Presence: optional
- Description: Any supported metadata to pass to the analyzer.
- Example:
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:
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:
skip_doc_coverage
- Type: Array
- Presence: optional
- Description: Specify which artifacts to skip when calculating documentation coverage.
- Available Values:
module,magic,initandclassmodule- Ignore module docstringsmagic- Ignore docstrings of magic methods (except “init”)init- Ignore docstrings of “init” methodsclass- Ignore docstrings of class definitionsnonpublic- Ignore docstrings for non-public classes and methods
- Default Value: [“module”, “magic”, “init”]
- Example:
type_checker
- Type: String
- Presence: optional
- Description: Activates the type checking analyzer. Please note: This will only raise type annotation issues.
- Available Value: “mypy”
- Default Value: None
- Example:
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:
cyclomatic_complexity_threshold
- Type: String
- Presence: optional
- Description: Specify the acceptable risk category for your project as the threshold. All functions with complexity beyond this threshold will raise an issue. For example, setting the threshold to
lowwill flag all functions that have a cyclomatic complexity of more than5, while setting the threshold tocriticalwill not flag any function. - Available Values:
low,medium,high,very-highandcritical
| Risk category | Cyclomatic complexity range | Recommended action |
|---|---|---|
| low | 1-5 | No action is needed. |
| medium | 6-15 | Review and monitor. |
| high | 16-25 | Review and refactor. Recommended to add detailed comments if the function absolutely needs to be kept as it is. |
| very-high | 26-50 | Refactor to reduce the complexity. |
| critical | >50 | Must refactor this. This can make the code untestable and very difficult to understand. |
- Default Value:
medium - Example:
Sample Config
Code Coverage
- Coverage.py: Run tests with coverage tracking and report in XML format
- Pytest: Use with pytest-cov plugin for integrated coverage reporting
- Nose2: Configure with coverage plugin for XML reports
- Tox: Combine coverage from multiple Python environments
Coverage.py (Standard)
Pytest
Nose2
Tox
Example.coveragerc:
tox.ini for multiple Python versions:
Code Formatters
The configuration key
code_formatters replaces the legacy transformers key. Both keys are supported for backward compatibility.autopep8
Format all incoming Python code with autopep8. Autopep8 formats Python code to conform to the PEP 8 style guide.
This section covers .deepsource.toml configuration specific to the autopep8 code formatter. Please make sure to read the general configuration guide first.
name
Type: String Presence: mandatory Description: Shortcode of this code formatter. Example:enabled
Type: Boolean Presence: optional Description: Toggle whether this code formatter should be run. Example:black
Format all incoming Python code with Black.
This section covers .deepsource.toml configuration specific to the black code formatter. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of this code formatter
- Example:
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this code formatter should be run.
- Example:
isort
Format all incoming Python code with isort.
This section covers .deepsource.toml configuration specific to the isort code formatter. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of this code formatter.
- Example:
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this code formatter should be run.
- Example:
ruff
Format all incoming Python code with ruff. This section covers.deepsource.toml configuration specific to the ruff code formatter. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of this code formatter.
- Example:
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this code formatter should be run.
- Example:
yapf
Format all incoming Python code with yapf.
This section covers .deepsource.toml configuration specific to the yapf code formatter. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of this code formatter.
- Example:
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this code formatter should be run.
- Example:
Vulnerability Scanning
Supported target files:PipfilePipfile.lockpoetry.lockpyproject.toml(if containing a[tool.poetry]or[tool.flit]section)requirements.txtsetup.pyuv.lock