References#

Books#

A Whirlwind Tour of Python

A Whirlwind Tour of Python is a fast-paced introduction to essential features of the Python language, aimed at researchers and developers who are already familiar with programming in another language.

https://jakevdp.github.io/WhirlwindTourOfPython/

Clean Architectures in Python

This book is about a software design methodology. With lots of Python examples and a strong emphasis on TDD.

https://www.thedigitalcatbooks.com/pycabook-introduction/

Foundations of Python Programming

This book is to teach you to understand and create computer programs in Python. With hands-on activities!

https://runestone.academy/ns/books/published/fopp/index.html

From Python to Numpy

The goal of this book is to explain advanced techniques for using Numpy.

https://www.labri.fr/perso/nrougier/from-python-to-numpy/

Google’s Python Class

Free online course book for people with a little bit of programming experience who want to learn Python

https://developers.google.com/edu/python

Intermediate Python

The topics which are discussed in this book open up your mind towards some nice corners of Python language.

https://book.pythontips.com/en/latest/index.html

Professional Python Programming

Open access book that covers topics that are important for a professional programmer.

https://pythonbook.org/

Python & OpenGL for Scientific Visualization

he goal of this book is to reconciliate Python programmers with OpenGL, providing both an introduction to modern OpenGL and a set of basic and advanced techniques in order to achieve both fast, scalable & beautiful scientific visualizations.

https://www.labri.fr/perso/nrougier/python-opengl/

Python Data Science Handbook

A book about doing data science with Python.

https://jakevdp.github.io/PythonDataScienceHandbook/

Python Packages

Python Packages is an open source book that describes modern and efficient workflows for creating Python packages.

https://py-pkgs.org/welcome

Python Programming for Data Science

Covers everything you need to know to start using Python for data science.

https://www.tomasbeuzen.com/python-programming-for-data-science/README.html

Python Programming for Economics and Finance

Python for scientific computing, with a focus on economics and finance.

https://python-programming.quantecon.org/intro.html

Python for Data Analysis, 3E

This book is concerned with the nuts and bolts of manipulating, processing, cleaning, and crunching data in Python.

https://wesmckinney.com/book/

The Good Research Code Handbook

Handbook is for all who do a lot of programming as part of their research. It will teach you, in a practical manner, how to organize your code so that it is easy to understand and works reliably.

https://goodresearch.dev/

The Hitchhiker’s Guide to Python

Python Best Practices Guidebook.

https://docs.python-guide.org/

pyOpenSci Python Package Guide

Learn how to create a Python package from start to finish. Also great tutorials for writing test, documentation and more!

https://www.pyopensci.org/python-package-guide/index.html

Commercial companies#

Anaconda

Anaconda sits at the center of the AI revolution. We provide data science tools, MLOps, and data & model management to empower our customers and community with AI capabilities to propel their projects forward.

https://www.anaconda.com/

Communities#

Conda Community

A community supporting a language-agnostic, multi-platform package management ecosystem for projects of any size and complexity.

https://conda.org/

Jazzband

Jazzband is a collaborative community to share the responsibility of maintaining Python-based projects.

https://jazzband.co/

Pallets

Pallets is the open source community organization that develops and supports popular Python frameworks.

https://palletsprojects.com/

PyData

PyData is an educational program of NumFOCUS, a 501(c)(3) nonprofit charity.

https://pydata.org/

The Scientific Python project

The scientific Python ecosystem is a loose federation of community-developed and -owned Python projects widely used in scientific research, technical computing, and data science.

https://scientific-python.org

Foundations#

NumFOCUS

NumFOCUS is to promote open practices in research, data, and scientific computing

https://numfocus.org/

pyOpenSci

Community that supports free and open Python tools for processing scientific data.

https://www.pyopensci.org/python-package-guide/index.html

GUI frameworks#

Lona

Write responsive web apps in full python

https://github.com/lona-web-org/lona

PY4WEB

PY4WEB is a web framework for the rapid development of efficient database driven web applications. It is an evolution of the popular web2py framework but much faster and slicker.

https://github.com/web2py/py4web

Shiny

Build fast, beautiful web applications in Python.

https://github.com/posit-dev/py-shiny/

HTTP programming#

urllib3

urllib3 is a powerful, user-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3 and you should too. urllib3 brings many critical features that are missing from the Python standard libraries:

https://github.com/urllib3/urllib3

Manuals#

Black

Black is the uncompromising Python code formatter. By using it, you agree to cede control over minutiae of hand-formatting. In return, Black gives you speed, determinism, and freedom from pycodestyle nagging about formatting. Defacto standard formatter for many projects.

https://black.readthedocs.io/en/stable/

Conda Documentation

Conda’s documentation! Conda provides package, dependency, and environment management for any language.

https://docs.conda.io/projects/conda/en/stable/

Hatch

Hatch is a modern, extensible Python project manager.

https://hatch.pypa.io/latest/

Mamba’s documentation

Mamba is a fast, robust, and cross-platform package manage

https://mamba.readthedocs.io/en/latest/

Nox

nox is a command-line tool that automates testing in multiple Python environments, similar to tox. Unlike tox, Nox uses a standard Python file for configuration.

https://nox.thea.codes/en/stable/index.html

Py-Pkgs-Cookiecutter

py-pkgs-cookiecutter is a cookiecutter template for creating a fully-featured Python package using poetry. It supplements the Python Packages book by Tomas Beuzen and Tiffany Timbers but can be used independently.

https://py-pkgs-cookiecutter.readthedocs.io/en/latest/

Setuptools

Building and Distributing Packages with Setuptools. If you are not (yet) using Hatch, this is a good manual for using setup tools.

https://setuptools.pypa.io/en/latest/userguide/

pex

A tool for generating .pex (Python EXecutable) files, lock files and venvs.

https://docs.pex-tool.org/

PSF documentation#

Black

Black is the uncompromising Python code formatter. By using it, you agree to cede control over minutiae of hand-formatting. In return, Black gives you speed, determinism, and freedom from pycodestyle nagging about formatting. Defacto standard formatter for many projects.

https://black.readthedocs.io/en/stable/

Official Python documentation

The source for the official documentation. Always up-to-date.

https://docs.python.org

Python Enhancement Proposals (PEPs)

This PEP contains the index of all Python Enhancement Proposals (PEPs)

https://peps.python.org/

Python Packaging User Guide

A collection of tutorials and references to help you distribute and install Python packages with modern tools.

https://packaging.python.org/en/latest/

The Python Language Reference

This reference manual describes the syntax and “core semantics” of the language.

https://docs.python.org/3/reference/index.html

pip

pip is the package installer for Python.

https://pip.pypa.io/en/stable/

Package repositories#

Python packages

The Python Package Index (PyPI) is the defacto standard repository of software for the Python programming language.

https://pypi.org/

conda-forge

Community-led recipes, infrastructure and distributions for conda.

https://conda-forge.org/

Parsing#

Beautiful Soup

A program designed for screen-scraping HTML.

https://code.launchpad.net/beautifulsoup

lxml

lxml is the most feature-rich and easy-to-use library for processing XML and HTML in the Python language.

https://lxml.de/

Professional programming#

Google Python Style Guide

Python is the main dynamic language used at Google. This style guide is a list of dos and don’ts for Python programs.

https://google.github.io/styleguide/pyguide.html

Hatch

Hatch is a modern, extensible Python project manager.

https://hatch.pypa.io/latest/

Professional Python Programming

Open access book that covers topics that are important for a professional programmer.

https://pythonbook.org/

Py-Pkgs-Cookiecutter

py-pkgs-cookiecutter is a cookiecutter template for creating a fully-featured Python package using poetry. It supplements the Python Packages book by Tomas Beuzen and Tiffany Timbers but can be used independently.

https://py-pkgs-cookiecutter.readthedocs.io/en/latest/

PyPI Stats

The best FOSS tool for PyPI statistics. It offers per package the PyPI downloads with analytics dashboard.

https://pypistats.org/

Python Enhancement Proposals (PEPs)

This PEP contains the index of all Python Enhancement Proposals (PEPs)

https://peps.python.org/

Python Packaging User Guide

A collection of tutorials and references to help you distribute and install Python packages with modern tools.

https://packaging.python.org/en/latest/

mypy

Mypy is an optional static type checker for Python that aims to combine the benefits of dynamic (or “duck”) typing and static typing.

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

pex

A tool for generating .pex (Python EXecutable) files, lock files and venvs.

https://docs.pex-tool.org/

pip

pip is the package installer for Python.

https://pip.pypa.io/en/stable/

pipx

Install and Run Python Applications in Isolated Environments

https://pipx.pypa.io/stable/

pyOpenSci Python Package Guide

Learn how to create a Python package from start to finish. Also great tutorials for writing test, documentation and more!

https://www.pyopensci.org/python-package-guide/index.html

uv

An fast Python package and project manager, written in Rust.

https://docs.astral.sh/uv/

TUI frameworks#

Dear PyGui

A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

https://github.com/hoffstadt/DearPyGui

Fire

Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. Is is the simpelest way to create a CLI application!

https://github.com/google/python-fire

Mesop

Rapidly build AI apps in Python. With Google FOSS software.

https://google.github.io/mesop/

PyTermGUI

Python TUI framework with mouse support, modular widget system, customizable and rapid terminal markup language and more!

https://github.com/bczsalba/pytermgui

Python Prompt Toolkit

Library for building powerful interactive command line applications in Python

https://github.com/prompt-toolkit/python-prompt-toolkit

Rich

Rich is a Python library for rich text and beautiful formatting in the terminal.

https://github.com/Textualize/rich

Typer

Typer is a library for building CLI applications that users will love using and developers will love creating. Based on Python type hints.

https://typer.tiangolo.com/

Testing#

Pynguin

Pynguin (IPA: ˈpɪŋɡuiːn), the PYthoN General UnIt test geNerator, is a tool that allows developers to generate unit tests automatically.Pynguin is developed at the Chair of Software Engineering II of the University of Passau.

https://www.pynguin.eu/

pytest

The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries.

https://pytest.org/en/latest/

Visualization#

Matplotlib

Matplotlib is the defacto Python library to be used for creating static, animated, and interactive visualizations in Python. Matplotlib makes easy things easy and hard things possible. You can do everything with matplotlib.

https://matplotlib.org/

Vega-Altair

Declarative visualization library for Python. Its simple, friendly and consistent API, built on top of the powerful Vega-Lite grammar. Designed to be used with Pandas.

https://altair-viz.github.io/

Vizzu

Vizzu is a free, open-source Javascript/C++ library utilizing a generic dataviz engine that generates many types of charts and seamlessly animates between them.

https://lib.vizzuhq.com/latest/