mvondracek / PA193_mnemonic_Slytherin

BIP39 Mnemonic Phrase Generator and Verifier
0 stars 3 forks source link

Overview of static and dynamic analysis tools for Python #4

Closed mvondracek closed 4 years ago

mvondracek commented 4 years ago

One of our goals is to analyze own implementation with static and dynamic analysis tools. According to the assignment, we need at least 2 tools for static and 2 tools for dynamic analysis.

Let's do research of available tools and summarize it in this thread.

mvondracek commented 4 years ago

Code Analysis

Tools of static analysis, linters and code quality checkers. Also see awesome-static-analysis.

  • Code Analysis
    • coala - Language independent and easily extendable code analysis application.
    • code2flow - Turn your Python and JavaScript code into DOT flowcharts.
    • prospector - A tool to analyse Python code.
    • pycallgraph - A library that visualises the flow (call graph) of your Python application.
  • Code Linters
  • Code Formatters
    • black - The uncompromising Python code formatter.
    • yapf - Yet another Python code formatter from Google.
  • Static Type Checkers, also see awesome-python-typing
    • mypy - Check variable types during compile time.
    • pyre-check - Performant type checking.
  • Static Type Annotations Generators
    • MonkeyType - A system for Python that generates static type annotations by collecting runtime types

https://github.com/vinta/awesome-python#code-analysis

mvondracek commented 4 years ago

Debugging tools https://github.com/vinta/awesome-python#debugging-tools

mvondracek commented 4 years ago

Code Quality

  • Codacy - Automated Code Review to ship better code, faster.
  • Codecov - Code coverage dashboard.
  • CodeFactor - Automated Code Review for Git.
  • Landscape - Hosted continuous Python code metrics.
  • PEP 8 Speaks - GitHub integration to review code style.

https://github.com/vinta/awesome-python#code-quality

mvondracek commented 4 years ago

Test coverage

mvondracek commented 4 years ago

http://www.mypy-lang.org/