This is an update to an item originally published on Sunday, Apr 15th 2007.
Python is my current programming language of choice for most endeavors (even if only for prototyping). I am, however, not shy of using something else if it is better suited for the task.
It is also one of the main contributors to my occasional rants on the utter lack of an universal system scripting language.
My Stuff:
Yaki
my current never-ending opus.
MailArchive
a quick hack to file web pages as MIME compliant e-mail messages.
IMAP Backup
another quick hack that apparently filled a long-standing need.
Growl native protocol implementation
this spawned numerous variants, including a proxy.
PicoRendezvous.py
a minimalist (and dumb) Bonjour / Rendezvous client.
PNGCanvas
a native Python PNG creation module.
PicoStats
a minimalist Apache log parser.
Stuff I Help Out With:
The Python Grimoire, which I converted into TiddlyWiki format
newspipe, which I used daily for a couple of years and occasionally contributed to.
Snakelets, the runtime for Yaki
Testing Aids:
Testosterone, a testing framework with a great screencast
Pycallgraph, which can generate a program flow graph via Graphviz.
Resources:
Debugging in Python
Dive Into Python
Mac OS X specific Stuff:
Using Python with Quartz 2D on Mac OS X – an intro to the developer samples that have shipped with Xcode for a good while now
Python Metadata Importer – for Spotlight
BundleBuilder – to build standalone Mac OS X OS X app bundles
Windows:
Enthon, an enhanced Windows distribution with several scientific tools included.
Libraries:
Category
Link
Notes
Data Handling
Happy
A Hadoop library to run map-reduce jobs via Jython
PyCascading
A better way to write Hadoop jobs.
Database
Peewee
A small, very flexible ORM
Goatfish
An even smaller schemaless ORM
SQLAlchemy
See tutorial
Sybase module
I’ve used all of these at any one time, and pymssql worked out better for me.
FreeTDS
pymssql
GIS
geopy
an amazingly flexible geocoding library.
Debugging Tools
pudb
A console debugger
GUI Stuff
PySide
A recent Qt binding (up to and including 4.7) with QML support
kivy
A sophisticated UI/UX library with Android support
pyglet
a cross-platform windowing and multimedia library with OpenGL support
PythonCard
A bit basic, but interesting.
urwid
A curses based library for building console UIs
winGuiAuto.py
for Windows automation.
VPython
3D OpenGL libraries for quick visualization.
Console
plumbum
Another command wrapper, with SSH support.
pbs
A nice, simple and consistent generic command wrapper.
Clint
A great module for developing CLI applications.
Littleworkers
Parallel job management without the hassles.
Colorama
Making ANSI color sequences work across platforms (see also this gist).
Networking
SleekXMPP
A more modern XMPP library
pyxmpp2
another one, probably more interesting.
pyvnc
ctypes interface to the VNC libraries
pyapns
An Apple Push Notification Service provider based on Twisted.
gunicorn
A WSGI server for UNIX that supports a number of different worker daemons and is highly customizable.
uwsgi
A C application container that speaks WSGI (and seems seriously kick-ass).
msnlib
An MSN protocol implementation
ircutils
A relatively modern IRC framework that uses asyncore
IMAPClient
An IMAP wrapper library
Python smtplib progress indication
Might come in useful some day.
RPyC
an awesome RPC library
Eventlet
Amazing event-oriented framework
dpkt
packet creation and parsers
Pcapy
a packet manipulation library
Tftpy
a pure Python TFTP library, useful for implementing UDP file transfer testbeds.
ftputil
a high-level interface to the ftplib module
telnetscript
a simple module to do scripted telnet sessions.
FAPWS
a very fast asynchronous web server with a small codebase.
simple non-blocking HTTP server
another simple server.
PuSSH
SSH wrapper.
POP
a POP3 class with neat semantics.
PyRendezvous
neat little Bonjour module I use a lot.
IPy
an IP address manipulation library.
Data formats
biplist
A library that can manage Mac binary .plist files
xlwt
a library to parse Excel documents (cheatsheet).
Unicode
Unidecode
Does character transliterations.
Interpreters
tinypy
Python in 64K of code.
Skulpt
Some interesting twists on using Python on the way to JavaScript.
Pyjamas
Reporting
Relatorio
A very neat reporting library with multiple output formats
HTML and XML
BeautifulSoup
The most powerful HTML parser out there.
mxTidy
HTML Tidy for Python
pygments
Python syntax highlighter able to handle multiple nested languages
pyquery
A jQuery-like library for manipulating documents.
cssutils
a CSS Cascading Style Sheets parser.
Mechanize
a programmatic web browser for screen scraping.
Gnosis Utilities
all sorts of XML goodies.
lxml
a different libxml binding.
Web Application Frameworks
Bottle
Tiny, flexible, awesome. My favorite for 2011.
Tornado
non-blocking, which is pretty interesting.
Django
The new hotness.
Snakelets
A minimalistic app server, my current web platform of choice.
Draco
Old and busted, to various extents.
medusa
CherryPy
Karrigell
Twisted
Zope
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.
SciPy
scientific (including plotting) libraries for Python. Most impressive.
Pyx
Oldie, but goodie.
Skip’s Python Bits
lots of useful snippets
pygame
a game-oriented library with SDL support
PDF
PDFMiner
a parser and text renderer that can identify location of text on a page and do basic rendering to HTML
PyPdf
a PDF toolkit
Kiva
a Display PDF library.
ReportLab Toolkit
a pure Python PDF library that includes a presentation tool.
Techniques
daemon.py, an example daemon script.
Pydoc – built-in Web help, anytime, anywhere
How to Write a Spelling Corrector – an interesting technique that can come in handy to fix/suggest search terms, etc.
Python Webcam Color Track
Python webcam fun – motion detection
Notable Apps:
Date
Link
Notes
2013
Jan 27
bpython
A great curses-based shell
iPython
The original, do-it-all notebook-oriented shell
dreampie
Another, simpler shell
2012
Nov 3
pyspread
A Pythonic spreadsheet with R bindings
Notes:
Instant Web Server on port 8000:
Totally Unrelated:
Estimating the Airspeed of an Unladen Swallow
☯
"Python" was written by Rui Carmo for The Tao of Mac and was originally posted on Sunday, Apr 15th 2007. Except as noted, it's ©2012 Rui Carmo and licensed for reuse under CC BY-NC-ND 3.0.
Please consider donating or visiting the store to support this site.