Analysis tools logo

Best 72 Python static analysis tools

What is Python?

Python is an interpreted, high-level and general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python's design philosophy emphasizes code readability with its notable use of significant whitespace. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects. Python is dynamically typed and garbage-collected. It supports multiple programming paradigms, including structured…

(Source)

What are the best Python analysis tools?

125

Black

  • Type: cli

The uncompromising Python code formatter.

68

mypy

  • Type: cli

A static type checker that aims to combine the benefits of duck typing and static typing, frequently used with [MonkeyType](https://github.com/Instagram/MonkeyType).

38

flake8

  • Type: cli

A wrapper around `pyflakes`, `pycodestyle` and `mccabe`.

35

pylint

  • Type: cli

Looks for programming errors, helps enforcing a coding standard and sniffs for some code smells. It additionally includes `pyreverse` (an UML diagram generator) and `symilar` (a similarities checker).

33

SonarQube

  • Type: service

SonarQube is an open platform to manage code quality.

20

Semgrep

  • Type: cli

Free, open-source lightweight static analysis for many languages. Find and block bug variants with patterns that look like source code.

15

jedi

  • Type: cli

Autocompletion/static analysis library for Python.

11

bandit

  • Type: cli

A tool to find common security issues in Python code.

11

Coverity

  • Type: cli

Synopsys Coverity supports 20 languages and over 70 frameworks including Ruby on rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, C#, VB.NET.

10

Better Code Hub

  • Type: service

Better Code Hub checks your GitHub codebase against 10 engineering guidelines devised by the authority in software quality, Software Improvement Group.

8

DeepCode

  • Type: service

DeepCode finds bugs, security vulnerabilities, performance and API issues based on AI. DeepCode's speed of analysis allow us to analyse your code in real time and deliver results when you hit the save button in your IDE. Supported languages are Java, C/C++, JavaScript, Python, and TypeScript. Integrations with GitHub, BitBucket and Gitlab.

8

DeepSource

  • Type: service

In-depth static analysis to find issues in verticals of bug risks, security, anti-patterns, performance, documentation and style. Native integrations with GitHub, GitLab and Bitbucket. Less than 5% false positives.

6

pycodestyle

  • Type: cli

(Formerly `pep8`) Check Python code against some of the style conventions in PEP 8.

5

Fortify

  • Type: ide-plugin

A commercial static analysis platform that supports the scanning of C/C++, C#, VB.NET, VB6, ABAP/BSP, ActionScript, Apex, ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, HTML, Java, JS, JSP, MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), Ruby (1.9.3), Swift, Scala, VB, and XML.

4

CodeScene

  • Type: service

CodeScene is a quality visualization tool for software. Prioritize technical debt, detect delivery risks, and measure organizational aspects. Fully automated.

4

pydocstyle

  • Type: cli

Check compliance with Python docstring conventions.

4

pyright

  • Type: cli

Static type checker for Python, created to address gaps in existing tools like mypy.

4

unimport

  • Type: cli

A linter, formatter for finding and removing unused import statements.

4

vulture

  • Type: cli

Find unused classes, functions and variables in Python code.

3

pyflakes

  • Type: cli

Check Python source files for errors.

3

pyre-check

  • Type: cli

A fast, scalable type checker for large Python codebases.

3

Pysa

  • Type: cli

A tool based on Facebook's pyre-check to identify potential security issues in Python code identified with taint analysis.

3

wemake-python-styleguide

  • Type: cli

The strictest and most opinionated python linter ever.

2

Atom-Beautify

  • Type: ide-plugin

Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom editor.

2

pytype

  • Type: cli

A static type analyzer for Python code.

1

mccabe

  • Type: cli

Check McCabe complexity.

1

prospector

  • Type: cli

A wrapper around `pylint`, `pep8`, `mccabe` and others.

1

pyroma

  • Type: cli

Rate how well a Python project complies with the best practices of the Python packaging ecosystem, and list issues that could be improved.

1

ShiftLeft Scan

  • Type: cli
  • Type: service

Scan is a free open-source DevSecOps platform for detecting security issues in source code and dependencies. It supports a broad range of languages and CI/CD pipelines.

1

Snyk

  • Type: service

Vulnerability scanner for dependencies of node.js apps (free for Open Source Projects).

1

Unibeautify

  • Type: cli
  • Type: service

Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, Markdown, and more.

1

xenon

  • Type: cli

Monitor code complexity using [`radon`](https://github.com/rubik/radon).

0

ApplicationInspector

  • Type: cli

Creates reports of over 400 rule patterns for feature detection (e.g. the use of cryptography or version control in apps).

0

bellybutton

  • Type: cli

A linting engine supporting custom project-specific rules.

0

Cobra

  • Type: cli

Structural source code analyzer by NASA's Jet Propulsion Laboratory.

0

Code Inspector

  • Type: service

Code quality and technical debt management platform that supports 10+ languages.

0

Codeac

  • Type: service

Automated code review tool integrates with GitHub, Bitbucket and GitLab (even self-hosted). Available for JavaScript, TypeScript, Python, Ruby, Go, PHP, Java, Docker, and more. (open-source free)

0

CodeFlow

  • Type: service

Automated code analysis tool to deal with technical depth. Integrates with Bitbucket and Gitlab. (free for Open Source Projects)

0

cohesion

  • Type: cli

A tool for measuring Python class cohesion.

0

DevSkim

  • Type: ide-plugin

Regex-based static analysis tool for Visual Studio, VS Code, and Sublime Text - C/C++, C#, PHP, ASP, Python, Ruby, Java, and others.

0

graudit

  • Type: cli

Grep rough audit - source code auditing tool.

0

imhotep

  • Type: cli

Comment on commits coming into your repository and check for syntactic errors and general lint warnings.

0

include-gardener

  • Type: cli

A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files.

0

InspectorTiger

  • Type: cli

IT, Inspector Tiger, is a modern python code review tool / framework. It comes with bunch of pre-defined handlers which warns you about improvements and possible bugs. Beside these handlers, you can write your own or use community ones.

0

LGTM.com

  • Type: service

Deep code analysis for GitHub and Bitbucket to find security vulnerabilities and critical code quality issues (using Semmle QL). Automatic code review for pull requests; free for public repositories.

0

linty fresh

  • Type: cli

Parse lint errors and report them to Github as comments on a pull request.

0

Lumnify

  • Type: cli

Benchmark against thousands of projects, and analyse code for structural quality with focus on maintainability.

0

multilint

  • Type: cli

A wrapper around `flake8`, `isort` and `modernize`.

0

radon

  • Type: cli

A Python tool that computes various metrics from the source code.

0

relint

  • Type: cli

A static file linter that allows you to write custom rules using regular expressions (RegEx).

0

Scrutinizer

  • Type: service

A proprietary code quality checker that can be integrated with GitHub.

0

Sider

  • Type: service

An automated code reviewing tool. Improving developers' productivity.

0

SmartDec Scanner

  • Type: cli

SAST tool which is capable of identifying vulnerabilities and undocumented features. The analyzer scans the source code and executables without debug info (i.e. binaries). Supports: Java/Scala/Kotlin, PHP, C#, JavaScript, TypeScript, VBScript, HTML5, Python, Perl, C/C++, Objective-C/Swift, PL/SQL, T-SQL, ABAP, 1C, Apex, Go, Ruby, Groovy, Delphi, VBA, Visual Basic 6, Solidity, Vyper, COBOL.

0

SonarCloud

  • Type: service

Multi-language cloud-based static code analysis. History, trends, security hot-spots, pull request analysis and more. Free for open source.

0

wily

  • Type: cli

A command-line tool for archiving, exploring and graphing the complexity of Python source code.

-1

ale

  • Type: ide-plugin

Asynchronous Lint Engine for Vim and NeoVim with support for many languages.

-1

CAST Highlight

  • Type: cli

Commercial Static Code Analysis which runs locally, but uploads the results to its cloud for presentation.

-1

ciocheck

  • Type: cli

Linter, formatter and test suite helper. As a linter, it is a wrapper around `pep8`, `pydocstyle`, `flake8`, and `pylint`.

-1

Dlint

  • Type: cli

A tool for ensuring Python code is secure.

-1

Synopsys

  • Type: cli

A commercial static analysis platform that allows for scanning of multiple languages (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran, and Swift).

-2

APPscreener

  • Type: cli

Static code analysis for binary and source code - Java/Scala, PHP, Javascript, C#, PL/SQL, Python, T-SQL, C/C++, ObjectiveC/Swift, Visual Basic 6.0, Ruby, Delphi, ABAP, HTML5 and Solidity.

-2

Embold

  • Type: service

Intelligent software analytics platform that identifies design issues, code issues, duplication and metrics. Supports Java, C, C++, C#, JavaScript, TypeScript, Python, Go, Kotlin and more.

-2

Kiuwan

  • Type: service

Identify and remediate cyber threats in a blazingly fast, collaborative environment, with seamless integration in your SDLC. Python, C\C++, Java, C#, PHP and more.

Deprecated/unmaintained tools

0

Landscape

  • Type: service

Static code analysis for Python.

0

pfff

  • Type: cli

Facebook's tools for code analysis, visualizations, or style-preserving source transformation for many languages.

0

py-find-injection

  • Type: cli

Find SQL injection vulnerabilities in Python code.

0

PyT - Python Taint

  • Type: cli

A static analysis tool for detecting security vulnerabilities in Python web applications.

0

QuantifiedCode

  • Type: service

Automated code review & repair. It helps you to keep track of issues and metrics in your software projects, and can be easily extended to support new types of analyses.

❤️ Sponsor this project

We are currently looking for partners who want to sponsor hosting and development of the project.

Check out our Github Sponsors page here

Missing an entry? Please let us know.