Python

Python is one of my favorite programming languages due to its terseness and amazing flexibility, and after decades using it I find it quite amusing that it is now the language of choice for data science and machine learning.

My Stuff

YearItemNotes
2016Sushy

my current wiki engine

2015rss2imap

The way I used read my news a while back

2009

a native Python PNG creation module, suitable for use in Google App Engine

2007

my previous wiki engine

2006

a quick hack to file web pages as MIME compliant e-mail messages.

2005

a minimalist Apache log parser.

another quick hack that apparently filled a long-standing need.

The Python Grimoire

which I converted into TiddlyWiki format

2004

a minimalist (and dumb) / Rendezvous client

this spawned numerous variants, including a .

which I used daily for a couple of years and occasionally contributed to

Resources

CategoryDateLinkNotes
Astronomy2021Skyfield

An astronomical library for Python

Audio2024pedalboard

a library for audio processing

Authentication2023authlib

OAuth, OpenID Connect and other niceties

2021aioauth

Oauth 2.0 framework and provider for asyncio

Automation2024helium

a library for automating browsers such as Chrome and Firefox

CAD2025sdfCAD

Simple 3D mesh generation with Python based on SDFs

2024build123d

a parametric BREP modeling framework for 2D and 3D CAD built on OpenCascade

2023sdf

Generate 3D meshes based on SDFs (signed distance functions)

sdf (Gitlab)

Another version of the sdf library with additional functionality

CLI2021pqdm

parallel tqdm

2020pyp

a clever shell tool to do inline Python

typer

A click-like library for building CLI applications

2019tqdm

a configurable progress bar

2018python-fire

a CLI wrapper for any Python object

click

A very nice way to do composable CLI tools (see also argh, defopt, docopt, python-fire, etc.)

Clint

A great module for developing CLI apps

pbs

A nice, simple and consistent generic command wrapper.

ptpython

The Python Prompt Toolkit

plumbum

Another command wrapper, with SSH support.

Cloud2026Stelvio

a pure-Python framework for building and deploying AWS apps with the stlv CLI

2020pyinfra

a fabric-like agentless automation tool

Coding2025pyscn

an intelligent python code quality analyzer

Compilers2022codon

an LLVM compiler for a Python subset

2021mypyc

a compiler for a subset of type-annotated Python

Transcrypt

Another JavaScript transpiler

Compression2021zipfly

a library for doing on-the-fly zip compression with low memory footprint

Concurrency2024dramatiq

background queueing/task processing library

protean

framework for building event-driven applications using the CQRS pattern

asyncpal

a unified approach at providing elastic task pools

2023mpire

a multiprocessing replacement with a number of additional features

2020aiomultiprocess

an asyncio Pool implementation to manage multiple processes with independent event loops

Trio

a friendlier wrapper around asyncio for concurrent tasks

OpenReplica

A coordination service that provides replication and synchronization support for large-scale distributed systems

python-rq

A simpler queueing library

Pulsar

Another actor-based multiprocessing library with asyncio support and a fair degree of network transparency

Celery

My current go-to library for task queueing

Pykka

An implementation of the Actor model, with gevent support

offset

ports of the concurrency model

aioprocessing

A set of asyncio equivalents of the multiprocessing library

ray

A distributed execution engine that implements a pandas clone

goless

ports of the concurrency model

Littleworkers

Parallel job management without the hassles.

Console2020rich

a console library with various layout options

bpython

My favorite REPL

Colorama

Making color sequences work cross-platform (see also this gist)

fabulous

Prints images to console

urwid

A curses based library for building console UIs

Data Engineering2024polars-h3

a Polars extension that adds support for the H3 discrete global grid system

2020Little Ball of Fur

a graph sampling library that works with NetworkX

riptable

a multithreaded array processing library

Happy

A Hadoop library to run map-reduce jobs via Jython

biplist

A library that can manage Mac binary .plist files

pyparsing

a handy, flexible parser library that does away with lex/yacc.

snakebite

A native HDFS client to access the Hadoop datastore.

xlwings

An plugin

Bounter

A fast probabilistic counter

voluptuous

A data schema validation library.

fuzzywuzzy

A fuzzy string matching library

PyCascading

A better way to write Hadoop jobs.

xlwt

a library to parse Excel documents (cheatsheet.

Data Science2025DataSynthesizer

a library for generating synthetic data

kreuzberg

a text extraction library supporting PDFs, images, office documents and more

mimesis

a library for generating fake data

Merlion

A time series forecasting library

pydbgen

another library for generating synthetic data

2024sail

unifies stream and batch processing with a drop-in replacement for Spark SQL

cuDF

a GPU DataFrame library leveraging CUDA

2023pygwalker

a Tableau-like dataframe exploration tool for Jupyter

datapane

a data and reporting and analisys framework

fugue

a unified interface for executing SQL, Python and Pandas code on Spark, Dask and Ray

2021Kats

a time series analysis library

euporie

a text-based interface for Jupyter notebooks

xeus-sql

a Jupyter kernel for SQL databases

eztable

a simple table library

pyxelate

a pixelation/dithering algorithm that uses a mix of algorithmic and ML approaches

2020papermill

a way to parameterize and automate Jupyter notebooks

SciPy

scientific (including plotting) libraries for Python

Data Validation2021schema

another data validation library

pydantic

Data validation using type hinting

Schematics

A validation/schema handling library.

Database2025mssql-python

a Microsoft SQL Server driver for Python

aiosqlitepool

a connection pool for aiosqlite

2023mongolite

another MongoDB-like database

2021pottery

a Redis library with Pythonic syntactic sugar

dataset

trivial abstraction layer over SQLAlchemy

Mongita

a MongoDB-like database library for in-process use

2020DuckDB

an embeddable SQL database with OLAP features

montydb

a tiny MongoDB implementation in pure Python

simple-graph

A simple graph database in SQLite

pymssql

SQL Server and Sybase driver

FreeTDS

SQL Server and Sybase driver

SQLAlchemy

tutorial

Peewee

A small, very flexible ORM

tinydb

A (very) lightweight document oriented database

Goatfish

An even smaller schemaless ORM

Debugging2020Scalene

A high-performance CPU and memory profiler

PrettyErrors

an error handler that prettifies output

Eww

Insert a REPL into a running application

Pycallgraph

Generate a program flow graph

Hypothesis

A very nice testing framework

pudb

A console debugger

lptrace

A pretty amazing single-file strace-like tool for Python

assertEquals

a testing framework with a great screncast

Django2025django-qrauth

a Django library for QR code-based authentication

django-tastypie

a Django library for building RESTful APIs

plain

an opinionated fork of Django

django-rest-framework

another Django library for building RESTful APIs

django-admin-sortable

a library for adding drag-and-drop sorting to Django admin

2024django-organizations

a Django library for managing organization accounts

2023django-unicorn

a Reactive framework for Django that uses minimal JavaScript

2022django-ninja

for building APIs with Django and Python 3.6+ type hints

2021diskcache

a Django-compatible caching library

wid.gy

A Django-based CMS framework

Django

Probably the best app framework I’ve every used.

Wagtail

Another Django-based CMS framework

django-micro

A lightweight wrapper to use Django as you would Bottle

Electronics2024micropython-fusion

a sensor fusion library for MicroPython

Kalman-Filter-Python-for-mpu6050

a Kalman filter for the MPU6050 IMU

2023belay

a library and helper for developing MicroPython projects, including an on-device REPL

2021pinout

Helps create SVG pin-out diagrams for electronic hardware

Embedded2025MicroPythonOS

a MicroPython-based operating system for embedded devices that can run on ESP32 (and likely the CYD)

archimedes

a Python framework that lets you develop and analyze algorithms in NumPy and automatically generate optimized C code for embedded systems

Enterprisetoil

A cross-platform pipeline management system with Common Workflow Language support

Environments2020snakeware

a Python userspace for Linux

Frameworks2024Platypush

a modular platform for home automation with easy MQTT event handling and a graphical editor

Functional ProgrammingHy

An awesome LISP dialect that sits atop the runtime.

funcy

A nice, fairly complete functional library

Toolz

A functional complement to the standard library.

pyrsistent

A persistent data structure library

GIS2021prettymaps

A minimal Python library to draw customized maps from OpenStreetMap data

geopy

an amazingly flexible geocoding library.

reverse-geocoder

A fast offline reverse geocoder

GUI2025pytauri

a Tauri binding for Python

2024CustomTkinter

offers customizable widgets and supports system appearance modes across platforms

mesop

a rapid web development framework for Python

micropython-nano-gui

A lightweight MicroPython GUI library

nicegui

a library for creating Web UIs

2022flet

creates realtime web, mobile and desktop apps using Flutter

2021encodermenu

a MicroPython library for GUI creation, using uasyncio

2020Gooey

a wxWidgets wrapper for quickly building GUI versions of CLI tools

DearPyGui

a Linux/Windows GUI library atop ImGUI (C++)

2019fman build system

a complete build system for Qt applications

2018Toga

a cross-platform GUI that works on the Mac

kivy

A sophisticated UI/UX library with Android support

PythonCard

A bit basic, but interesting.

VPython

3D OpenGL libraries for quick visualization

winGuiAuto.py

for Windows automation

pyglet

a cross-platform windowing and multimedia library with OpenGL support

PySide

A recent Qt binding (up to and including 4.7) with QML support

PySimpleGUI

a simple tkinter-based GUI wrapper

Graphics2026slamd

a lightweight Python 3D visualization library with a GPU-accelerated viewer for point clouds, meshes, camera frustums, and scene-graph style transforms

splathash

Encodes any image into 16 bytes (22-char base64url) and decodes to a 32×32 preview orders of magnitude faster than BlurHash, with Go/TS/Python reference libs and identical hashes across languages.

2025piligraphs

a library for creating charts using PIL

html2pic

a library for rendering HTML/CSS to images using pictex

pictex

a layout library for creating component-based graphics in Python, using skia

2024renderer

rendering and rasterizing library for STL

pyrender

glTF 2.0-compliant OpenGL renderer for visualization of 3D scenes

pygfx

render engine targeting Vulkan/Metal/DX12

2023pyxel

A retro game engine for Python

2022taichi

a high-performance graphics library

2021image-blender

a Cython implementation of Adobe Photoshop blend modes

2020blurhash

A way to encode image placeholders as strings

hiplot

high dimensional interactive plotting

diagrams

a library for drawing cloud architecture diagrams (Azure, AWS, k8s, etc.)

2019douglas-quaid

a library for image matching and correlation

imagededup

uses several different algorithms (including NNs) to detect duplicate images

plottyprint

printable formatting for matplotlib

smc.freeimage

A wrapper for the freeimage library that can handle various TIFF and fax formats as well as ICC color profiles

Graphite

a real-time graphing system similar to RRDTool

Skip's Python Bits

lots of useful snippets

Pygal

An SVG charting library with a variety of built-in formats.

Pyx

Oldie, but goodie.

pygame

a game-oriented library with SDL support

pyprocessing

A Processing clone in Python.

Vapory

A library to generate photorealistic renderings using POV-Ray

drawille

Uses Braille characters for TTY charting

Cropmap

Face-aware image cropping.

HTMLlxml

a different libxml binding, with excellent HTML parsing performance

cssutils

a CSS parser

Gnosis Utilities

all sorts of XML goodies

pygments

syntax highlighter able to handle multiple nested languages

pyquery

A jQuery-like library for manipulating documents.

BeautifulSoup

The most powerful HTML parser out there.

squeezeit

A CSS and JavaScript bundler/minifier

Interpreters2026monty

a minimal, secure Python interpreter written in Rust for running AI-generated code

2024RustPython

A Python Interpreter written in Rust

2023pocketpy

an embeddable C-based interpreter in 5000 LOC

PyScript

a WASM runtime using Pyodide for web embedding

Languages2025SPy

a variant of Python designed to be statically compilable with an interpreter and compiler

Libraries2026shreg

a Python library for regularizing line segments and closed contours using various algorithms.

2025readability-python

an implementation of Mozilla’s readability algorithm for extracting the main content from HTML documents

trafilatura

another readability variant for extracting text from HTML documents

automerge-py

a Python library for building collaborative applications with CRDTs

pythonista-stubs

a collection of type stubs for the Pythonista app, useful for writing scripts that run on iOS devices

smartfunc

a library for using LLMs via docscrings and introspection and introspection

aiopandas

a library for using Pandas with asyncio

2024unsafe-python

A library to assist writing memory-unsafe code, without any imports

domscribe

converts HTML to semantic Markdown while preserving structure and meaning

foc

an intriguing collection of higher-level functions using operators for composability

BM25S

an ultrafast implementation of BM25 in pure Python

2023fastkafka

A Kafka library inspired by fastapi

reader

A modern RSS/Atom/JSON feed reader library.

2022slack-machine

A Slack bot library that uses socket mode and asyncio

mintotp

a tiny TOTP library

2021Sorted Containers

a fast C-backed collections library

seedir

A utility library to render filesystem tree diagrams

2020minotaur

an asynchronous inotify interface

minibatch

a simple stream processing library

Machine LearningTensorflow

Usual staple, largely superseded by PyTorch

Mail2021imapautofiler

an IMAP mailbox sorter that I unwittingly replicated (with less features)

2018aiosmtpd

an asyncio version of smtpd.py

Salmon

an SMTP mail server

slimta

a mail app framework for building MTAs

Messaging2023Propan

a declarative Python MQ framework inspired by fastapi

Music2025music21

a library for computer-aided musicology

2023musicpy

A domain-specific language for writing music

2020pippi

an audio processing/music library

pymidi

a library for building MIDI over IP/RTP applications (compatible with Apple specs)

Networking2023p2pd

an async networking library with P2P and UDP support

2019opendrop

a partial implementation of AirDrop

2018asphalt

An asyncio framework for network oriented applications, with a considerable number of modules

PyRendezvous

neat little Bonjour module I use a lot

telnetscript

a simple module to do scripted telnet sessions.

IPy

an IP address manipulation library.

pyvnc

A ctypes interface to the libraries

ircutils

A relatively modern async IRC framework

Eventlet

Amazing event-oriented framework

ftputil

a high-level interface to the ftplib module

Python smtplib progress indication

Might come in useful some day.

gunicorn

A WSGI server that supports a number of different worker daemons and is highly customizable.

dpkt

packet creation and parsers

Pcapy

a packet manipulation library

uwsgi

A C application container that speaks WSGI and is seriously good.

PuSSH

SSH wrapper

RPyC

an awesome RPC library

SleekXMPP

A more modern XMPP library

Tftpy

a pure Python TFTP library, useful for implementing UDP file transfer testbeds.

ThriftPy

A pure Python implementation of Apache Thrift

pyxmpp2

another one, probably more interesting.

pyrobuf

a Cython implementation of Google’s protobuf library

pyapns

An Apple Push Notification Service provider based on Twisted.

OCR2025olmocr

A toolkit for training language models to work with PDF documents in the wild.

2024surya

OCR library supporting 90+ languages

PDF2025plutoprint

another PDF generation library

2024marker

a PDF to markdown converter optimized for books and scientific papers, using surya

2023peepdf

a Python tool to explore PDF files in order to find out if the file can be harmful or not.

2021borb

a library for creating and manipulating PDF files

2020camelot

a library to extract tabular data from PDFs

Kiva

a Display PDF library

PyPdf

a PDF toolkit

WeasyPrint

Alternatives to PrinceXML for generating formated PDF documentation.

xhtml2pdf

Alternatives to PrinceXML for generating formated PDF documentation.

Packaging2026go-to-wheel

build Python wheels that bundle cross-compiled Go CLI binaries

2021PyOxidizer

a better way to distribute Python bundled apps than pyinstaller

shiv

builds self-contained applications for easy deployment

2019Poetry

a dependency management and packaging tool

Presentationspydown

An HTML presentation generator

Reference2023python-cheatsheet

a modern reference, useful for kids

ReportingRelatorio

A very neat reporting library with multiple output formats

ReportLab Toolkit

a pure Python PDF library that includes a presentation tool.

Resources2024awesome-micropython

another curated list of MicroPython resources

awesome-micropython

a curated list of MicroPython resources

2023python-package-template

a template project for building packages

Robotics2026Cozmo Direct Control

PyCozmo-powered GUI with AI chat, keyboard/mouse driving, visual node lab, MediaPipe face tracking, and procedural speech/animation pipelines for commanding Cozmo over WiFi without the official app.

Cozmo Explorer Tool

Flask-powered GUI that combines Cozmo’s camera feed, keyboard remote controls, event monitor, and animation explorer for prototyping behaviors without the stock app.

Cozmo Python SDK

Official Anki SDK for the Cozmo robot, with the cozmo module, sample scripts, an event monitor, simulation support, and documentation at cozmosdk.anki.com/docs for wiring your own behaviors over Wi‑Fi.

PyCozmo

Pure-Python alternative SDK and app that speaks Cozmo’s UDP protocol directly, bundles tools for dumps/replay/animation updates, and exposes docs/examples for firmware, OTA, and Wi-Fi based control.

kabuki

A declarative control library for MicroPython

Runtimes2026pon

Python 3.14 native compiler/runtime in Rust with JIT and AoT support

2022pikascript

an embedded Python runtime for the STM32 and other tiny MCUs

2021Pyjion

Pyjion, a JIT extension for CPython that compiles your Python code into native CIL and executes it using the .NET 5 CLR.

2020Pycopy

a fork of MicroPython

Nuitka

An interesting batch compiler.

Pyjamas

Some interesting twists on using on the way to .

Brython

a fairly complete in-browser runtime

Skulpt

Some interesting twists on using Python on the way to JavaScript.

tinypy

Python in 64K of code.

Js2Py

A JavaScript interpreter written in pure Python

Hope

A specialized JIT compiler

Scraping2020InvoiceNet

a neural network for extracting invoice information from PDFs

Mechanize

a programmatic web browser for screen scraping.

subliminal

A library for looking up movie subtitles in various languages.

pholcidae

A web crawler library.

urlwatch

A flexible page modification monitor

Site Generators2023django-distill

Minimal configuration static site generator for Django

2020MiniConf

a lovely site generator for managing conferences

2019portray

a static site generator for Python project documenntation

TUI2026rovr

a post-modern terminal file manager built in Python with Textual, offering themed navigation, configurable layouts, and modern packaging via uv/pipx.

2023trogon

a genius way to automatically generate a TUI for click-based applications

pyTermTk

an impressive text UI toolkit

2021textual

Text user interface widgets and fields

Task management2021doit

a task runner that can replace make for many use cases

Tools2026HeloWrite

a distraction-free terminal writing environment built with Python

avouch

git-aware AST code review tool for Python

2025posting

an amazing terminal-based Postman replacement

2024hancho

a simple, pleasant build system

berylliumOS

a Python-based shell for CircuitPython devices

2023ssh-crypt

a clever way to manage secrets on remote servers

frogmouth

a TUI Markdown browser

pypipe

a Python command-line tool for pipeline processing that can export pipelines as standalone scripts

marcel

a shell that can pipe structured data (like PowerShell, but done right)

flameshow

a terminal flamegraph viewer

termgraph

simple terminal charting

reloadium

advanced hot reloading and profiling

2022reloading

a decorator for hot reloading code

Doctool

a tool to manipulate .docx files

honcho

a process supervisor that uses Procfiles and can be used for multi-process Docker containers

Tutorials2021ugit

a step-by-step git implementation

UnicodeUnidecode

Does character transliterations.

Video2021webcam-filters

a set of GStream filters for doing live webcam background segmentation and blurring

Visual Programming2024nodezator

a graphical node workflow editor based on PyGame

2022PyFlow

a another (confusingly, identically named) visual programming environment

Ryven

a flow-based programming environment with a Qt front-end

PyFlow

a desktop-based visual programming environment

WASM2026wasmtime-py

Python bindings for the Wasmtime WebAssembly runtime.

Web2025justhtml

a pure Python HTML5 parser

2022newscatcher

a cute scraper database/fetcher combo

Web Frameworks2026micropidash

An asynchronous MicroPython web dashboard library for Raspberry Pi Pico 2 W and ESP32, built around non-blocking updates, dark mode, and simple hardware integration via uasyncio.

Reflex

Python web app framework for building UIs with pure Python

2025fastapi-voyager

a FastAPI extension for visualizing endpoints

air

a FastAPI-backed HTML framework

2023socketify.py

another libuv wrapper

litestar

another high-performance ASGI API framework with rigorous typing

robyn

an async Python framework with a connection handler

sse-starlette

Server-Sent Events for Starlette and FastAPI

ucall

a JSON-RPC library that claims to be 100x faster than FastAPI

2022pynecone

a full-stack Python web framework that automatically renders Next.js components

2021FastAPI

decorator-based, runs under uvicorn

2020blacksheep

an ASGI web framework that uses decorators

starlette

an ASGI web framework that runs under uvicorn

2019appkernel

a microservices framework

2018zatt

An asyncio implementation of the Raft consensus algorithm (some of the forks add significant enhancements)

Bottle

Tiny, flexible, awesome. My favorite since 2011.

Draco

Old and busted, to various extents.

Falcon

A Cythonizable framework with little magic and good performance

Karrigell

Old and busted, to various extents.

pecan

Based on object dispatching

eve

Another RESTful foundation framework

wheezy.web

A high-performance framework that seems to get along well with PyPy

Snakelets

A minimalistic app server, my old web platform of choice.

Twisted

Old and busted, to various extents.

medusa

Old and busted, to various extents.

CherryPy

Old and busted, to various extents.

Tornado

non-blocking, which is pretty interesting.

Zope

Old and busted, to various extents.

sandman

A simple RESTful wrapper

Vibora

An asyncio framework that seems to beat Sanic in static performance

Moya

a new(ish), template-centric web framework with some interesting twists

Wikis2024silicon

another Markdown-focused wiki

otterwiki

a nice git-backed wiki

Writing2023proselint

a linter for prose

Techniques

Notes

Setting distutils paths in OS X

Create a file named .pydistutils.cfg in your home directory with the following contents and set $PATH accordingly:

[install]
install_lib = ~/Library/Python/$py_version_short/site-packages
install_scripts = ~/Library/Python/$py_version_short/bin
install_data = ~/Library/Python/$py_version/share

This will install packages to your Library folder rather than to the system directory, saving you the trouble to use sudo or risking messing with the system installation. Of course virtualenv does a better job for keeping track of project-specific dependencies, but this is great for common/complex dependencies and is sure to survive operating system upgrades.

And then you can use easy_install or pip install --user with impunity, although you might need to do something like:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future easy_install pandas

…for getting around some clang oddities.

Instant Web Server on port 8000 (2.x)

#!/bin/sh
python -c '__import__("SimpleHTTPServer").test()'

Totally Unrelated

This page is referenced in: