References#

Books#

Professional Python Programming

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

https://pythonbook.org/

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

The Hitchhiker’s Guide to Python

Python Best Practices Guidebook.

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

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

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

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/

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 & 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/

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/

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/

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

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

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/

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/

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#

Pallets

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

https://palletsprojects.com/

Jazzband

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

https://jazzband.co/

Conda Community

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

https://conda.org/

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#

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

Lona

Write responsive web apps in full python

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

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#

Hatch

Hatch is a modern, extensible Python project manager.

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

Conda Documentation

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

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

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/

Mamba’s documentation

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

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

pex

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

https://docs.pex-tool.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/

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

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/

PSF documentation#

Official Python documentation

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

https://docs.python.org

The Python Language Reference

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

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

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/

pip

pip is the package installer for Python.

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

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/

Package repositories#

conda-forge

Community-led recipes, infrastructure and distributions for conda.

https://conda-forge.org/

Python packages

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

https://pypi.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

Python Enhancement Proposals (PEPs)

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

https://peps.python.org/

Professional Python Programming

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

https://pythonbook.org/

PyPI Stats

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

https://pypistats.org/

uv

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

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

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/

pip

pip is the package installer for Python.

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

Hatch

Hatch is a modern, extensible Python project manager.

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

pipx

Install and Run Python Applications in Isolated Environments

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

pex

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

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

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/

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/

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

TUI frameworks#

PyTermGUI

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

https://github.com/bczsalba/pytermgui

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/

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

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/

Dear PyGui

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

https://github.com/hoffstadt/DearPyGui

Testing#

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/

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/

Visualization#

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/

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/