Skip to content

python: tooling selection #259

@AlexanderLanin

Description

@AlexanderLanin

The python ecosystem consists of a bunch of different tools. We need to agree which ones we want to use.

Rough overview by ChatGPT

no guarantees of correctness or completeness

Linting & Formatting

  • ruff – An extremely fast Python linter and code formatter. [GitHub Stars: 13.2K]
  • flake8 – A traditional linter with extensive plugin support. [GitHub Stars: 2.6K]
  • black – An uncompromising code formatter. [GitHub Stars: 32.5K]

Type Checking

  • pyright – A static type checker for Python. [GitHub Stars: 10.5K]
  • mypy – Optional static typing for Python. [GitHub Stars: 15.2K]

Runtime Type Checking

  • beartype – A runtime type checker for Python. [GitHub Stars: 2.3K]

Security & Dependency Analysis

  • bandit – A tool designed to find common security issues in Python code. [GitHub Stars: 5.9K]
  • safety – Checks Python dependencies for known security vulnerabilities. [GitHub Stars: 1.6K]

Test Coverage & Complexity Analysis

  • coverage.py – Measures code coverage of Python programs. [GitHub Stars: 2.2K]
  • radon – A Python tool that computes various metrics from the source code. [GitHub Stars: 1.8K]
  • pytest-cov – Pytest plugin for measuring coverage. [GitHub Stars: 1.1K]

Testing Frameworks

  • pytest – A framework that makes building simple and scalable test cases easy. [GitHub Stars: 10.5K]
  • unittest – (Part of Python's standard library; no separate GitHub repository)
  • hypothesis – A library for property-based testing. [GitHub Stars: 6.6K]

Static Analysis & Dependency Management

  • pylint – A static code analyzer for Python. [GitHub Stars: 4.7K]
  • isort – A Python utility to sort imports. [GitHub Stars: 5.6K]
  • pip-audit – A tool for scanning Python environments for packages with known vulnerabilities. [GitHub Stars: 1.1K]

Documentation Quality

  • docformatter – Formats docstrings to follow PEP 257. [GitHub Stars: 520]
  • pydocstyle – A docstring style checker. [GitHub Stars: 1.4K]

Performance Profiling

  • scalene – A high-performance, high-precision CPU, GPU, and memory profiler for Python. [GitHub Stars: 6.2K]

Metadata

Metadata

Labels

Type

No type

Projects

Status

Done

Status

No status

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions