Python toolkits

This page summarizes the projects mentioned and recommended in the original post on /r/Python

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • awesome-python

    An opinionated list of awesome Python frameworks, libraries, software and resources.

    Above libraries I use in almost all the Python libraries we build. Apart from these I had use other Python frameworks and libraries for very specific purposes like FastAPI for web frameworks, tensorflow, pandas, numpy, etc. for AI/ML/DL based projects. TBH I prefer looking at awesome-python GitHub repository anytime I have to work in some new area.

  • python-patterns

    A collection of design patterns/idioms in Python

    Your post has so many good elements that I've saved them for study and prompted feedback about the applications in Natural Language Processing and ML in Finance/BioTech. Most of my work lately has been NLP analysis research so devops and other GOF software concepts in your repo https://github.com/faif/python-patterns has been challenging.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • Poetry

    Python packaging and dependency management made easy

    Poetry for dependency management and packaging.

  • pytest

    The pytest framework makes it easy to write small tests, yet scales to support complex functional testing

    Pytest for unit testing. Hypothesis to generate dummy data for test. mutmut for mutation testing.

  • hypothesis

    Hypothesis is a powerful, flexible, and easy to use library for property-based testing.

    Hypothesis to generate dummy data for test.

  • mutmut

    Mutation testing system

    mutmut for mutation testing.

  • Flake8

    flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code.

    flake8 for linting along with following plugin (list of awesome plugin can be found here, but me and my teammates have selected the below one. Have linting but don't make it too hard.) flake8-black which uses black for code formatting check. flake8-isort which uses isort for separation of import in section and formatting them alphabetically. flake8-bandit which uses bandit for security linting. flake8-bugbear for finding likely bugs and design problems in your program. flake8-bugbear - Finding likely bugs and design problems in your program. pep8-naming for checking the PEP-8 naming conventions. mccabe for Ned’s script to check McCabe complexity flake8-comprehensions for writing better list/set/dict comprehensions.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • awesome-flake8-extensions

    :octocat: A curated awesome list of flake8 extensions. Feel free to contribute! :mortar_board:

    flake8 for linting along with following plugin (list of awesome plugin can be found here, but me and my teammates have selected the below one. Have linting but don't make it too hard.) flake8-black which uses black for code formatting check. flake8-isort which uses isort for separation of import in section and formatting them alphabetically. flake8-bandit which uses bandit for security linting. flake8-bugbear for finding likely bugs and design problems in your program. flake8-bugbear - Finding likely bugs and design problems in your program. pep8-naming for checking the PEP-8 naming conventions. mccabe for Ned’s script to check McCabe complexity flake8-comprehensions for writing better list/set/dict comprehensions.

  • flake8-bandit

    Automated security testing using bandit and flake8.

    flake8-black which uses black for code formatting check.

  • black

    The uncompromising Python code formatter

    flake8-black which uses black for code formatting check.

  • flake8-isort

    flake8 plugin that integrates isort

    flake8-isort which uses isort for separation of import in section and formatting them alphabetically.

  • isort

    A Python utility / library to sort imports.

    flake8-isort which uses isort for separation of import in section and formatting them alphabetically.

  • bandit

    Bandit is a tool designed to find common security issues in Python code.

    flake8-bandit which uses bandit for security linting.

  • flake8-bugbear

    A plugin for Flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle.

    flake8-bugbear for finding likely bugs and design problems in your program. flake8-bugbear - Finding likely bugs and design problems in your program.

  • pep8-naming

    Naming Convention checker for Python

    pep8-naming for checking the PEP-8 naming conventions.

  • mccabe

    McCabe complexity checker for Python

    mccabe for Ned’s script to check McCabe complexity

  • flake8-comprehensions

    ❄️ A flake8 plugin to help you write better list/set/dict comprehensions.

    flake8-comprehensions for writing better list/set/dict comprehensions.

  • dataclass-csv

    Map CSV to Data Classes

    CSV – csv Reader or dataclass-csv

  • Lark

    Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity.

    STDOUT: Lark or pyparsing

  • pyparsing

    Python library for creating PEG parsers

    STDOUT: Lark or pyparsing

  • click

    Python composable command line interface toolkit

    click to create command line interface

  • sphinx

    The Sphinx documentation generator

    Sphinx along with MyST-parser to write documentation in markdown. I recently discovered portray which seems like a nice alternative as it supports markdown by default for both generic documentation and docstring in modules, class, methods and functions.

  • MyST-Parser

    An extended commonmark compliant parser, with bridges to docutils/sphinx

    Sphinx along with MyST-parser to write documentation in markdown. I recently discovered portray which seems like a nice alternative as it supports markdown by default for both generic documentation and docstring in modules, class, methods and functions.

  • portray

    Your Project with Great Documentation.

    Sphinx along with MyST-parser to write documentation in markdown. I recently discovered portray which seems like a nice alternative as it supports markdown by default for both generic documentation and docstring in modules, class, methods and functions.

  • cookiecutter

    A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects.

    I maintain cookiecutter templates (can't share. It's in companies private repository) which have all these tool included along with some CI/CD pipelines. In case the template changes, we use cruft to update existing project which was using that template.

  • cruft

    Allows you to maintain all the necessary cruft for packaging and building projects separate from the code you intentionally write. Built on-top of, and fully compatible with, CookieCutter.

    I maintain cookiecutter templates (can't share. It's in companies private repository) which have all these tool included along with some CI/CD pipelines. In case the template changes, we use cruft to update existing project which was using that template.

  • fastapi

    FastAPI framework, high performance, easy to learn, fast to code, ready for production

    Above libraries I use in almost all the Python libraries we build. Apart from these I had use other Python frameworks and libraries for very specific purposes like FastAPI for web frameworks, tensorflow, pandas, numpy, etc. for AI/ML/DL based projects. TBH I prefer looking at awesome-python GitHub repository anytime I have to work in some new area.

  • tensorflow

    An Open Source Machine Learning Framework for Everyone

    Above libraries I use in almost all the Python libraries we build. Apart from these I had use other Python frameworks and libraries for very specific purposes like FastAPI for web frameworks, tensorflow, pandas, numpy, etc. for AI/ML/DL based projects. TBH I prefer looking at awesome-python GitHub repository anytime I have to work in some new area.

  • graphviz

    GraphViz graph drawing for the mathematical graph/network library GraPHP. (by graphp)

    Textual to diagram: kroki(this has integration for other popular tools like Mermaid, GraphViz, Excalidraw, PlantUML etc.).

  • excalidraw

    Virtual whiteboard for sketching hand-drawn like diagrams

    Textual to diagram: kroki(this has integration for other popular tools like Mermaid, GraphViz, Excalidraw, PlantUML etc.).

  • plantuml

    Generate diagrams from textual description

    Textual to diagram: kroki(this has integration for other popular tools like Mermaid, GraphViz, Excalidraw, PlantUML etc.).

  • TestSlide

    A Python test framework

    Add TestSlide to testing toolkits, it’s really good https://github.com/facebook/TestSlide

  • openapi-python-client

    Generate modern Python clients from OpenAPI

    I think we use these - https://github.com/openapi-generators/openapi-python-client

  • jupyter-book

    Create beautiful, publication-quality books and documents from computational content.

    Our team has transferred from Sphinx for documentation to JupyterBook. There have been some growing pains with it but I prefer the look of the output and being able to play with the examples on Colab or Binder at the click of a button is a great feature.

  • Poe the Poet

    A task runner that works well with poetry.

    So the Poetry maintainer has explained here about why they don’t have the better scripts support you mentioned. However, someone has already built this plugin for Poetry to achieve it.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts