Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 35 Next »

 

Description / Features

This plugin enables the analysis of Python projects.

Current feature list:

  • Recognition of basic program entities:
    • Python modules
    • Python packages
  • Provides basic size metrics:
    • files (number of)
    • lines
    • lines of comments
    • lines of code
  • Static code checking via pylint (covering as well code style as code defects aspects)
  • Provides cyclomatic complexity metrics including:
    • Complexity per function/method
    • Complexity per module
    • Complexity distributions
  • Recognition of code duplication
  • Basic highlighting mode for Python in Sonar UI

Dependencies

This plugin has following dependencies:

  • For complexity analysis the Python interpreter is needed, anything >=2.5 will do.
  • Pylint is used for the rules compliance analysis.

Installation

  1. Copy the jar-archive into <sonar home>/extensions/plugins/ directory
  2. Restart the Sonar web server

Configuration

Python plugin uses the following properties during analysis. See here for the ways how to pass them to the plugin.

 

Property

Scope

Example

Description

sonar.python.pylintSystem-wide/usr/local/bin/pylint

Path to the pylint executable to use in pylint analysis. Set to empty to use the default one.

sonar.python.pylint_configProject-wide.pylintrc

Path to the pylint configuration file (relative to project root) to use in pylint analysis. Set to empty to use the default.

sonar.python.pathProject-wideengine,utils

Comma separated list of paths relative to project root to add to PYTHONPATH when executing pylint.

Usage

You can analyze your projects using the usual means (see this page for all available). Just make sure to set a couple of properties. See below how to do it for maven and sonar-runner.

Analyzing with maven

  • Add your source directories to the build and the language-property to the properties section of your pom. Syntax: 

    <properties>
      ...
      <sonar.language>py</sonar.language>
      ...
    </properties>
     
    <build>
      ...
      <sourceDirectory> path </sourceDirectdory>
      ...
    </build>
  • Make sure the dynamic analysis is not switched off. Syntax: 

    <properties>
      ...
      <sonar.dynamicAnalysis>true<sonar.dynamicAnalysis>
      ...
    </properties>
  • Make sure sonar-server is running
  • Start the analysis with "mvn sonar:sonar"

See here for general information about analyzing via maven.

Analyzing with sonar-runner

  • Add a sonar-project.properties-file to the root directory of your project
  • Set sonar.language to py. Syntax:

sonar.language=py

  • Make sure your sonar-server is running
  • run sonar-runner in the directory containing the sonar-project.properties-file

See here for general information about analyzing via sonar-runner.

Sample Project

... is available here.

Changelog

Loading

Version 1.0 (26 issues)

T Key Summary P Status Resolution
Bug SONARPLUGINS-1721 pygenie stops the code analyse if it tries to analyse a file not ending with a empty row Critical Closed Fixed
Bug SONARPLUGINS-1722 Absolut paths in sonar.python.pylint_config are prefixed with the path of the project Major Closed Fixed
New Feature SONARPLUGINS-2032 Rule: Always use upper case "L" for long integers Major Closed Fixed
New Feature SONARPLUGINS-2031 Rule: Regular expression on comment Major Closed Fixed
New Feature SONARPLUGINS-2030 Rule: Avoid deeply nested if statements Major Closed Fixed
New Feature SONARPLUGINS-2024 Rule: Avoid usage of <> operator Major Closed Fixed
New Feature SONARPLUGINS-2028 Rule: Avoid too complex function Major Closed Fixed
New Feature SONARPLUGINS-2022 Rule: Avoid usage of exec statement Major Closed Fixed
New Feature SONARPLUGINS-2021 Rule: When there is a parsing error, this error should be added like a violation on that Python file Major Closed Fixed
New Feature SONARPLUGINS-2023 Rule: Avoid usage of `` (backtick) operator Major Closed Fixed
New Feature SONARPLUGINS-2026 Rule: One statement per line Major Closed Fixed
Bug SONARPLUGINS-2018 Python Plugin not compatible with SCM Activity Plugin Major Closed Fixed
Improvement SONARPLUGINS-2020 Replace ANTLR-based lexer by our own Major Closed Fixed
Improvement SONARPLUGINS-2019 Rename default quality profile to "Sonar way" to be consistent with other plugins Major Closed Fixed
New Feature SONARPLUGINS-2016 Metric: blank comments Major Closed Fixed
New Feature SONARPLUGINS-2015 Metric: functions Major Closed Fixed
New Feature SONARPLUGINS-2014 Rule: Generic Python rule to define some homemade checks with an XPath expression Major Closed Fixed
New Feature SONARPLUGINS-2013 Metric: statements Major Closed Fixed
New Feature SONARPLUGINS-2012 Provide Python rule engine based on SSLR Major Closed Fixed
New Feature SONARPLUGINS-2006 Provide a default SQALE mapping for the Python rules Major Closed Fixed
Showing 20 out of 26 issues Refresh

Loading

Version 0.1 (5 issues)

 

  • No labels