Python

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:

Testing Aids:

Resources:

Mac OS X specific Stuff:

Windows:

  • Enthon, an enhanced Windows distribution with several scientific tools included.

Libraries:

Category Link Notes
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 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
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.
GUI Stuff 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.
Mail IMAPClient An IMAP wrapper 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 Skulpt Some interesting twists on using Python on the way to JavaScript.
Pyjamas
Reporting Relatorio A very neat reporting library with multiple output formats
Database 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.
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

Notes:

Instant Web Server on port 8000:

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

Totally Unrelated:


See Also

Coda 23D PrintingRPython
JavaScriptJSONMarkdownVisualization
jQueryDjango 1.4 release notesMySQL and Python on LionXcode
MezzaninePython for iOSSane Python subprocess wrapperARMing for the future
Microsoft Exchange ServergitSubversionWhat to do when PyPI goes down
Media CenteringArchipel ProjectPure Python PNG CanvasUsing DFS Shares in Leopard
AndroidMark PilgrimDive Into Python (ZIP Archives)UPnP (Universal Plug and Play)
Distributed MapReduce in PythonThe Slow Way to SPDYTadpoleDesign & Code Credits
Virtual Network Computing (VNC)PyPy 1.6 - kickass pandaAirVideo on a Synology DS411jvim keybindings for Lion Mail.app
Making your mail sit up and begCocoaInstalling matplotlib in LionMac OS X Lion Review
Bonjour a la LuneffmpegGiving QCRenderer a breatherMail Tools
GityUbuntuCalibreLoki Render, Rebooted
SlimitFive Updatesrcarmo/Yaki - GitHubIntroducing Reposado
PublishingKupferGrilling PostsEvernote
OtherWikisCalDAVShelfKeynote
Greased LightningThat downtime thingTiny NodesChopping up multiple-screen wallpapers
Mounting and unmounting volumes in PythonCarpe TerramPDFSo, what of the netbooks?
TextileTonight's Random Bit Of CodeSurpassSony Reader
Today In The Geek PlaneChipping AwayVeuszScalable Vector Graphics
webkit2pngYakiThe Smell Of Napalm In The MorningMeanwhile, as I rest...
Found With The WindMercurialRelatedMailMore fun with toys: the Ikea LILLABO Train Set
When People Just Can't Share Files AnymoreDe-TweetingBonjourIMAP Backup Script
The Making of Darling FireballPhoto Archival and Integrity CheckingPNGSliMP3
netgrowl.pyOutlookGrowlID3
Shortening and Expanding URLs with PythonFor Future ReferenceGoogle WaveLamson The Python Mail Server
UnsocialMandarinMercurialIMAP Scraping
Android Scripting EnvironmentGoogle Code to support Mercurial version control systemPhasing InPaging PyObjC Gurus
Python adopts the Mercurial version control systemSlicedPagehuggerjhead
LeopardReGrowl - A Growl Notification RelayHTMLSMS
Postbox on WINEIronPython on Android, Mono interop with DalvikGoogle DataGraphviz
The Sony ReaderEvernote's Killer ApplicationNAT-PMPStuff I Learned Today (But Didn't Really Want To)
Google ReaderMSNWiiEspresso
Python 3.0Monty Python Puts All Its Content On YouTube To Increase Sales Of Scarce GoodsHow to make money with free softwareHTTP
RubyPlexSo now what?Spotlight
Using Automator to move all Opera tabs to FirefoxCloudy SkiesEditraCloud Writing
iPhone Applications in PythonEntertainernewspipeCreating Gradients Programmatically in Python
App Engine Launcher for Mac OS XUsing vim as a Python IDESneaking Ruby Through Google App Engine (and Other Strictly Python Places)DAAP
Regarding AppleScript on Mail.app and RSS ItemsE15NodeBoxgheat
The Python GrimoireAutomatorOn Yaki and Google App EngineGoogle App Engine
mail-trendsCustomers.split(...)SSHPatching .emlx files
Regarding iPods, Developers and Attention SpansOn Wiki PluginsAn update on my RSS setupWebsite thumbnails - Bluga.net WebThumb
Shelf - Context for MacOS - now in PythonSymbianData MiningShed Skin - An Optimizing Python to C++ Compiler
A Month Of Seeing SpotsHalf a Python (aka The Twist in Leopard's Python)Seam CarvingSpotted Snakes
CSCWMercurial binary packages for LeopardLeopard Archive and InstallMore notes on Wide Finder
Python MagazineBricks Ain't Hard, Life IsThe Python Grimoire, DustedAcorn
Random Desktop ShotAcorn - The OS X image editor we've been waiting forWhat's New in Python 3.0The nPhone
CSSGrill Your Own Mother TongueParsing WAP Profiles With BeautifulSoupVisio and IronPython
Midsummer Terminal Eveningspisa - Python PDF generatorPure Python DynDNS.org Client/UpdaterPython Plugin for VoodooPad
Speedometer 2.5How to convert html entities to "real" unicode in PythonYaki, MacFusion and TextMate - The Perfect Combo?Wiki Migration Notes - Site Features
Wiki Migration Notes - Platform SelectionYaki Is Loose Upon The WorldFlashPlateau
The Minimalist Remote Access KitOn CodaPyObjC NSStatusBar SampleIn and Out
Monday ModeWiki Editing, Mind Maps and UsenetXboxGTD
PicoStatsBlips On The RadarStuff I've Been Looking AtUtterly Random Third-Generation Mobile Python Hacks
Graphing and VisualizationGeek ModeBrain In a BoxStuff I Probably Should Have Paid Attention To Earlier
Beautiful SoupWeekend CodingSizzling SwitchingPython 2.5 on Vista
Re-surfacedThe IMAP ProtocolOn The Wii News ChanneliSight
Things I Can't Get Around To Do, Part OneSunnyD-Bus Growl Listener for the Gnome DesktopTaming my RSS feeds, the Bayesian way
GmailHoliday, Google Wikis and Gnome MusingsDimmedScrape, And Ye Shall Be Informed
MailArchive.pyTaking a SWIG at Carbon?Trips Down Memory LaneOdds and Ends
The Little Python IMAP Archiver That Couldn'tJabberFinally, Some Decent Vacation TimeWebDAV
Tag, You're ItEXIFTableau de BordPedro Melo
RRDtoolRe-Plumbing MailAjaxA Spotty Take On Leopard's Features
IronPythonMac OS XRelaxationMinor Notes on VoodooPad 3 and .Mac
Yojimbo on the CheapComfy Football with Quicksilver and an XboxXBMCBuilding The Anti-Wiki
MacOpenGLRandom Trains of ThoughtThe Obligatory Five Random Things
DrawBotRandom UpdatesApacheAsterisk
MochiKitQuiet EveningCLIMinor Earthquakes
Random non-Easter TopicsGetting The Hang Of TuesdaysXMLWBXML
Coders' BlockParing DownEar DrummingCygwin/mySQL
Side-SwitchingAppleA Few Notes on Fedora Core 5Xgrid
Poor Man's Screen SharingRuby on the GTD TrackBreaking PHPResources:
Combing SandTie BreakGPSWindows
MacBooks and Other Happenings - The Sequel10.4.4, Second ImpressionsOdds and EndsThird Time's The Charm
The Reindeer Are ComingMidnight OilPlayStation PortableCatching Up
Rainy BreakThoughts On File SharingLDAPA Quiet Day...
Double ImpactRandom Xcode ThoughtsFinally!Quiet Time
Catching UpMinimalist GPX ParserOne Day To GoMaemo
Partially OfflineRandom Bits of News...Must... Not... Use... PHP.GD
Re-Thinking my Backup Strategyvcard2ldapTurboGears - off the Rails?Snakelets
Lomography, Automator StyleAfter the iPhone, Silence...Yes, It's Always Like ThatA Lesson, Young Jedi
Bunch Of UpdatesThe Python Grimoire, RebornCool NewsLinux/Applications/Meld
SparklinesGetting the Image Size from Common File FormatsXSLTRandom Tidbits
DjangoRelax, Me?So, The Moon Is Made Of Cheese After AllRSS
Bullet TimeGnome/Applications/WiFi RadarSun DayWindows/Applications/WikidPad
World DominationRAQ550/Packages/RPMWake-On-LanFive Things I Never Seem To Get Done
Cooling OffWhew...Hell Froze Over, and My Intel FriedMice and Cake
Five Almost-Killer Applications in Tablet FormMusings on File Management UIs3DSlugs And Other Vermin
RAQ550/Packages/PHPSaturday Morning ReadingMail.app 0.2Mail Indexers:
Ruby Shower EpiphaniesThe Markup Thing, Rails, and Other Musings10.3.9 - Safari in Uncharted LandsExcel
Back To WorkLast Round Of RelaxationP2P.icio.usMono
The Little Python That CouldCatching UpThree TidbitsUsing Growl, Rendezvous and Python for LAN notifications
Projects/PicoRendezvous2004 in ReviewHoliday LullFive-ish Bits Of News
Restful DayThe Hello Kitty iPodPubSubChilling Out
The Knights That Say GrowlIntroductionExtreme ShoppingBreathing Space
A Leisurely Stroll Through the NewsThree Snippets of Random InfoIPPractical Subversion
Slight OverloadCompletely Biased News CoverageHakuna MatataThe Longest Yard
My Third FedoraNearly BackA Bit More on TextMateDowser
Link DumpPOP3Odd Happenings of an Otherwise Unremarkable MondayDowsing - Even Better than del.icio.us.
NLSU2 BootstrappingThe Poor Man's Growl BridgeProgress Along a Lopsided RoadLinking Spree
Crumbs and DiffsRelaxation, at lastTalking To MyselfThe Wonders of the Linux Kernel
Summer OdditiesPlaceholderThe Linux PendulumGadgeteering
Random NotesLeisure LinksA Few LinksPyObjC 1.1 Is Out
Public ServiceRendezvousTime MicromanagementMonologue
Hell Is Other ResourcesBacklog SquaredMiscellaneous MusingsLeisure Time
Feedback LoopRacoonCreate PDFs with CoreGraphics and PythonVodafone 3G Launch
MIMELink ModeAmid The MidletsSliding In The Rain
Catching UpDancing With RendezvousThe PlayStation Portable Surfaces...UDP
Palm PhonesBrilliant Hack Of The DayDive Into Python 4.4The VeriSlime Gambit
TwistedThe Quest For Easier Information ManagementHow Not To Code for Embedded DevicesSSL VPNs
New ThemeMore Takes on the RSS-to-Email approachWinding DownEXIF and Spare Time
PackagingSomething new every dayGlider is now FreewareHoliwhat?
QuickiesZen By Any Other NameThink DifferentAggregate This
Minor TouchesIRCMore DowntimeBedtime Wierdness
RAQ550/Packages/RPM4Work In ProgressI'm Steve, and I'm a Super-Villain