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.
Clean Architectures in Python
This book is about a software design methodology. With lots of Python examples and a strong emphasis on TDD.
Foundations of Python Programming
This book is to teach you to understand and create computer programs in Python. With hands-on activities!
From Python to Numpy
The goal of this book is to explain advanced techniques for using Numpy.
Google’s Python Class
Free online course book for people with a little bit of programming experience who want to learn Python
Intermediate Python
The topics which are discussed in this book open up your mind towards some nice corners of Python language.
Professional Python Programming
Open access book that covers topics that are important for a professional programmer.
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.
Python Data Science Handbook
A book about doing data science with Python.
Python Packages
Python Packages is an open source book that describes modern and efficient workflows for creating Python packages.
Python Programming for Data Science
Covers everything you need to know to start using Python for data science.
Python Programming for Economics and Finance
Python for scientific computing, with a focus on economics and finance.
Python for Data Analysis, 3E
This book is concerned with the nuts and bolts of manipulating, processing, cleaning, and crunching data in 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.
The Hitchhiker’s Guide to Python
Python Best Practices Guidebook.
pyOpenSci Python Package Guide
Learn how to create a Python package from start to finish. Also great tutorials for writing test, documentation and more!
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.
Astral
Next-gen Python tooling
Communities#
Conda Community
A community supporting a language-agnostic, multi-platform package management ecosystem for projects of any size and complexity.
Jazzband
Jazzband is a collaborative community to share the responsibility of maintaining Python-based projects.
Pallets
Pallets is the open source community organization that develops and supports popular Python frameworks.
PyData
PyData is an educational program of NumFOCUS, a 501(c)(3) nonprofit charity.
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.
Foundations#
NumFOCUS
NumFOCUS is to promote open practices in research, data, and scientific computing
pyOpenSci
Community that supports free and open Python tools for processing scientific data.
GUI frameworks#
Lona
Write responsive web apps in full python
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.
Shiny
Build fast, beautiful web applications in Python.
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:
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.
Conda Documentation
Conda’s documentation! Conda provides package, dependency, and environment management for any language.
Hatch
Hatch is a modern, extensible Python project manager.
Mamba’s documentation
Mamba is a fast, robust, and cross-platform package manage
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.
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.
Setuptools
Building and Distributing Packages with Setuptools. If you are not (yet) using Hatch, this is a good manual for using setup tools.
pex
A tool for generating .pex (Python EXecutable) files, lock files and venvs.
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.
Official Python documentation
The source for the official documentation. Always up-to-date.
Python Enhancement Proposals (PEPs)
This PEP contains the index of all Python Enhancement Proposals (PEPs)
Python Packaging User Guide
A collection of tutorials and references to help you distribute and install Python packages with modern tools.
The Python Language Reference
This reference manual describes the syntax and “core semantics” of the language.
pip
pip is the package installer for Python.
Package repositories#
Python packages
The Python Package Index (PyPI) is the defacto standard repository of software for the Python programming language.
conda-forge
Community-led recipes, infrastructure and distributions for conda.
Parsing#
Beautiful Soup
A program designed for screen-scraping HTML.
lxml
lxml is the most feature-rich and easy-to-use library for processing XML and HTML in the Python language.
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.
Hatch
Hatch is a modern, extensible Python project manager.
Professional Python Programming
Open access book that covers topics that are important for a professional programmer.
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.
PyPI Stats
The best FOSS tool for PyPI statistics. It offers per package the PyPI downloads with analytics dashboard.
Python Enhancement Proposals (PEPs)
This PEP contains the index of all Python Enhancement Proposals (PEPs)
Python Packaging User Guide
A collection of tutorials and references to help you distribute and install Python packages with modern tools.
mypy
Mypy is an optional static type checker for Python that aims to combine the benefits of dynamic (or “duck”) typing and static typing.
pandas docstring guide
The pandas guide for documenting code. Solid reference.
pex
A tool for generating .pex (Python EXecutable) files, lock files and venvs.
pip
pip is the package installer for Python.
pipx
Install and Run Python Applications in Isolated Environments
pyOpenSci Python Package Guide
Learn how to create a Python package from start to finish. Also great tutorials for writing test, documentation and more!
uv
An fast Python package and project manager, written in Rust.
TUI frameworks#
Dear PyGui
A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
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!
Mesop
Rapidly build AI apps in Python. With Google FOSS software.
PyTermGUI
Python TUI framework with mouse support, modular widget system, customizable and rapid terminal markup language and more!
Python Prompt Toolkit
Library for building powerful interactive command line applications in Python
Reflex
Web apps in pure Python
Rich
Rich is a Python library for rich text and beautiful formatting in the terminal.
Typer
Typer is a library for building CLI applications that users will love using and developers will love creating. Based on Python type hints.
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.
pytest
The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries.
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.
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.
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.