Python is one of my favorite programming languages due to its terseness and amazing flexibility.

See also for more.

My Stuff:

Year Item Notes
2016 Sushy my current wiki engine
2015 rss2imap 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
which I used daily for a couple of years and occasionally contributed to
native protocol this spawned numerous variants, including a .


Category Link Notes
Authentication aioauth Oauth 2.0 framework and provider for asyncio
CLI bpython My favorite REPL
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
fabulous Prints images to console
pbs A nice, simple and consistent generic command wrapper.
python-fire a CLI wrapper for any Python object
ptpython The Python Prompt Toolkit
typer A CLI tool like click that uses Python type hinting
plumbum Another command wrapper, with SSH support.
rich a console library with various layout options
CMS Wagtail Another Django-based CMS framework A Django-based CMS framework
MiniConf a lovely site generator for managing conferences
Compilers mypyc a compiler for a subset of type-annotated Python
Transcrypt Another JavaScript transpiler
Concurrency 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
aiomultiprocess an asyncio Pool implementation to manage multiple processes with independent event loops
offset ports of the concurrency model
aioprocessing asyncio equivalents of the multiprocessing library
goless ports of the concurrency model
Littleworkers Parallel job management without the hassles.
Console Colorama Making ANSI color sequences work cross-platform (see also this gist).
pyp a clever shell tool to do inline Python
urwid A curses based library for building console UIs
Data Handling Happy A Hadoop library to run map-reduce jobs via Jython
biplist A library that can manage 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.
Little Ball of Fur a graph sampling library that works with NetworkX
ray A distributed execution engine that implements a pandas clone
riptable a multithreaded array processing library
Schematics A validation/schema handling library.
fuzzywuzzy A fuzzy string matching library
PyCascading A better way to write Hadoop jobs.
xlwt a library to parse Excel documents (cheatsheet).
Data Science SciPy scientific (including plotting) libraries for Python
xeus-sql a Jupyter kernel for SQL databases
Database pymssql SQL Server and Sybase driver
SQLAlchemy tutorial
Peewee A small, very flexible ORM
DuckDB an embeddable SQL database with OLAP features
montydb a tiny MongoDB implementation in pure Python
simple-graph A simple graph database in SQLite
tinydb A (very) lightweight document oriented database
Goatfish An even smaller schemaless ORM
Debugging Eww Insert a REPL into a running application
Pycallgraph Generate a program flow graph via
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 screencast
Enterprise toil A cross-platform pipeline management system with Common Workflow Language support
Environments snakeware a Python userspace for Linux
Functional Programming Hy 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
GIS geopy an amazingly flexible geocoding library.
reverse-geocoder A fast offline reverse geocoder
GUI kivy A sophisticated UI/UX library with Android support
PythonCard A bit basic, but interesting.
VPython 3D OpenGL libraries for quick visualization 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
fman build system a complete build system for Qt applications
PySimpleGUI a simple tkinter-based GUI wrapper
Gooey a wxWidgets wrapper for quickly building GUI versions of CLI tools
DearPyGui a Linux/Windows GUI library atop ImGUI (C++)
Toga a cross-platform GUI that works on the Mac
Graphics 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
blurhash A way to encode image placeholders as strings
pyprocessing A Processing clone in Python.
Vapory A library to generate photorealistic renderings using POV-Ray
drawille Uses Braille characters for TTY charting
hiplot high dimensional interactive plotting
diagrams a library for drawing cloud architecture diagrams (Azure, AWS, k8s, etc.)
Cropmap Face-aware image cropping.
HTML lxml 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
Libraries zipfly a library for doing on-the-fly zip compression with low memory footprint
douglas-quaid a library for image matching and correlation
minotaur an asynchronous inotify interface
imagededup uses several different algorithms (including NNs) to detect duplicate images
TextHero an NLP library for large-scale text processing
pippi an audio processing/music library
minibatch a simple stream processing library
plottyprint printable formatting for matplotlib
Trio a friendlier wrapper around asyncio for concurrent tasks
Skyfield An astronomical library for Python
Machine Learning netron a viewer for neural network, deep learning and machine learning models
discomll A ML framework for Disco
Mail aiosmtpd an asyncio version of
Salmon an SMTP mail server
slimta a mail app framework for building MTAs
Music pymidi a library for building MIDI over IP/RTP applications (compatible with Apple specs)
Networking 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 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
asphalt An asyncio framework for network oriented applications, with a considerable number of modules
pyapns An Push Notification Service provider based on Twisted.
opendrop a partial implementation of AirDrop
PDF Kiva a Display PDF library
PyPdf a PDF toolkit
WeasyPrint Alternatives to PrinceXML for generating formated PDF documentation.
camelot a library to extract tabular data from PDFs
xhtml2pdf Alternatives to PrinceXML for generating formated PDF documentation.
Reporting Relatorio A very neat reporting library with multiple output formats
ReportLab Toolkit a pure Python PDF library that includes a presentation tool.
Robotics kabuki A declarative control library for MicroPython
Runtimes Nuitka An interesting batch compiler.
Pyjamas Some interesting twists on using on the way to JavaScript.
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 interpreter written in pure
Hope A specialized JIT compiler
Pycopy a fork of MicroPython
Scraping Mechanize a programmatic web browser for screen scraping.
subliminal A library for looking up movie subtitles in various languages.
pholcidae A web crawler library.
InvoiceNet a neural network for extracting invoice information from PDFs
urlwatch A flexible page modification monitor
Tools pyinfra a fabric-like agentless automation tool
Scalene A high-performance CPU and memory profiler
pydown An HTML presentation generator
papermill a way to parameterize and automate Jupyter notebooks
PrettyErrors an error handler that prettifies output
portray a static site generator for Python project documenntation
Poetry a dependency management and packaging tool
Unicode Unidecode Does character transliterations.
Web Frameworks 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.
Django The new hotness.
Tornado non-blocking, which is pretty interesting.
Zope Old and busted, to various extents.
appkernel a microservices framework
blacksheel an ASGI web framework that uses decorators
sandman A simple RESTful wrapper
zatt An asyncio implementation of the Raft consensus algorithm (some of the forks add significant enhancements)
Vibora An asyncio framework that seems to beat Sanic in static performance
django-micro A lightweight wrapper to use Django as you would Bottle
Moya a new(ish), template-centric web framework with some interesting twists
starlette an ASGI web framework that runs under uvicorn



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_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):

python -c '__import__("SimpleHTTPServer").test()'

Totally Unrelated:

This page is referenced in: