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
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.
Console Clint A great module for developing CLI applications.
Littleworkers Parallell job management without the hassles.
Colorama Making ANSI color sequences work across platforms (see also this gist).
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.
Networking 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.

Techniques

Notes:

Instant Web Server on port 8000:

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

Totally Unrelated:


See Also

jQueryPythonSane Python subprocess wrapperARMing for the future
Microsoft Exchange ServergitVisualizationSubversion
What to do when PyPI goes downMedia CenteringArchipel ProjectPure Python PNG Canvas
Using DFS Shares in LeopardAndroidMark PilgrimDive Into Python (ZIP Archives)
MarkdownUPnP (Universal Plug and Play)Distributed MapReduce in PythonThe Slow Way to SPDY
TadpoleDesign & Code CreditsVirtual Network Computing (VNC)PyPy 1.6 - kickass panda
AirVideo on a Synology DS411jvim keybindings for Lion Mail.appMaking your mail sit up and begCocoa
Installing matplotlib in LionMac OS X Lion ReviewBonjour a la Luneffmpeg
Giving QCRenderer a breatherJavaScriptMail ToolsGity
UbuntuCalibreLoki Render, RebootedSlimit
Five Updatesrcarmo/Yaki - GitHubIntroducing ReposadoPublishing
KupferGrilling PostsOtherWikisJSON
CalDAVShelfKeynoteGreased Lightning
That downtime thingTiny NodesChopping up multiple-screen wallpapersMounting and unmounting volumes in Python
Carpe TerramPDFSo, what of the netbooks?Textile
Tonight's Random Bit Of CodeSurpassSony ReaderToday In The Geek Plane
Chipping AwayVeuszScalable Vector Graphicswebkit2png
YakiThe Smell Of Napalm In The MorningMeanwhile, as I rest...Found With The Wind
MercurialRelatedMailMore fun with toys: the Ikea LILLABO Train SetWhen People Just Can't Share Files Anymore
De-TweetingBonjourIMAP Backup ScriptThe Making of Darling Fireball
Photo Archival and Integrity CheckingPNGSliMP3netgrowl.py
OutlookGrowlID3Shortening and Expanding URLs with Python
For Future ReferenceGoogle WaveLamson The Python Mail ServerUnsocial
MandarinMercurialIMAP ScrapingAndroid Scripting Environment
Google Code to support Mercurial version control systemPhasing InPaging PyObjC GurusPython adopts the Mercurial version control system
SlicedPagehuggerjheadLeopard
ReGrowl - A Growl Notification RelayHTMLSMSPostbox on WINE
IronPython on Android, Mono interop with DalvikGoogle DataGraphvizThe Sony Reader
Evernote's Killer ApplicationNAT-PMPStuff I Learned Today (But Didn't Really Want To)Google Reader
MSNWiiEspressoPython 3.0
Monty Python Puts All Its Content On YouTube To Increase Sales Of Scarce GoodsHow to make money with free softwareHTTPRuby
PlexSo now what?SpotlightUsing Automator to move all Opera tabs to Firefox
Cloudy SkiesEditraCloud WritingiPhone Applications in Python
EntertainernewspipeCreating Gradients Programmatically in PythonApp Engine Launcher for Mac OS X
Using vim as a Python IDESneaking Ruby Through Google App Engine (and Other Strictly Python Places)DAAPRegarding AppleScript on Mail.app and RSS Items
E15NodeBoxgheatThe Python Grimoire
AutomatorOn Yaki and Google App EngineGoogle App Enginemail-trends
Customers.split(...)SSHPatching .emlx filesRegarding iPods, Developers and Attention Spans
On Wiki PluginsAn update on my RSS setupWebsite thumbnails - Bluga.net WebThumbShelf - Context for MacOS - now in Python
SymbianData MiningShed Skin - An Optimizing Python to C++ CompilerA Month Of Seeing Spots
Half a Python (aka The Twist in Leopard's Python)Seam CarvingSpotted SnakesCSCW
Mercurial binary packages for LeopardLeopard Archive and InstallMore notes on Wide FinderPython Magazine
Bricks Ain't Hard, Life IsThe Python Grimoire, DustedAcornRandom Desktop Shot
Acorn - The OS X image editor we've been waiting forWhat's New in Python 3.0The nPhoneCSS
Grill Your Own Mother TongueParsing WAP Profiles With BeautifulSoupVisio and IronPythonMidsummer Terminal Evenings
pisa - Python PDF generatorPure Python DynDNS.org Client/UpdaterPython Plugin for VoodooPadSpeedometer 2.5
How to convert html entities to "real" unicode in PythonYaki, MacFusion and TextMate - The Perfect Combo?Wiki Migration Notes - Site FeaturesWiki Migration Notes - Platform Selection
Yaki Is Loose Upon The WorldFlashPlateauThe Minimalist Remote Access Kit
On CodaPyObjC NSStatusBar SampleIn and OutMonday Mode
Wiki Editing, Mind Maps and UsenetXboxGTDPicoStats
Blips On The RadarStuff I've Been Looking AtUtterly Random Third-Generation Mobile Python HacksGraphing and Visualization
Geek ModeBrain In a BoxStuff I Probably Should Have Paid Attention To EarlierBeautiful Soup
Weekend CodingSizzling SwitchingPython 2.5 on VistaRe-surfaced
The IMAP ProtocolOn The Wii News ChanneliSightThings I Can't Get Around To Do, Part One
SunnyD-Bus Growl Listener for the Gnome DesktopTaming my RSS feeds, the Bayesian wayGmail
Holiday, Google Wikis and Gnome MusingsDimmedScrape, And Ye Shall Be InformedMailArchive.py
Taking a SWIG at Carbon?Trips Down Memory LaneOdds and EndsThe Little Python IMAP Archiver That Couldn't
JabberFinally, Some Decent Vacation TimeWebDAVTag, You're It
EXIFTableau de BordPedro MeloRRDtool
Re-Plumbing MailAjaxA Spotty Take On Leopard's FeaturesIronPython
Mac OS XRelaxationMinor Notes on VoodooPad 3 and .MacYojimbo on the Cheap
Comfy Football with Quicksilver and an XboxXBMCBuilding The Anti-WikiMac
OpenGLRandom Trains of ThoughtThe Obligatory Five Random ThingsDrawBot
Random UpdatesApacheAsteriskMochiKit
Quiet EveningCLIMinor EarthquakesRandom non-Easter Topics
Getting The Hang Of TuesdaysXMLWBXMLCoders' Block
Paring DownEar DrummingCygwin/mySQLSide-Switching
A Few Notes on Fedora Core 5XgridPoor Man's Screen SharingRuby on the GTD Track
Breaking PHPResources:Combing SandTie Break
GPSWindowsMacBooks and Other Happenings - The Sequel10.4.4, Second Impressions
Odds and EndsThird Time's The CharmThe Reindeer Are ComingMidnight Oil
PlayStation PortableCatching UpRainy BreakThoughts On File Sharing
XcodeLDAPA Quiet Day...Double Impact
Random Xcode ThoughtsFinally!Quiet TimeCatching Up
Minimalist GPX ParserOne Day To GoMaemoPartially Offline
Random Bits of News...Must... Not... Use... PHP.GDRe-Thinking my Backup Strategy
vcard2ldapTurboGears - off the Rails?SnakeletsLomography, Automator Style
After the iPhone, Silence...Yes, It's Always Like ThatA Lesson, Young JediBunch Of Updates
The Python Grimoire, RebornCool NewsLinux/Applications/MeldSparklines
Getting the Image Size from Common File FormatsXSLTRandom TidbitsDjango
Relax, Me?So, The Moon Is Made Of Cheese After AllRSSBullet Time
Gnome/Applications/WiFi RadarSun DayWindows/Applications/WikidPadWorld Domination
RAQ550/Packages/RPMWake-On-LanFive Things I Never Seem To Get DoneCooling Off
Whew...Hell Froze Over, and My Intel FriedMice and CakeFive Almost-Killer Applications in Tablet Form
Musings on File Management UIs3DSlugs And Other VerminRAQ550/Packages/PHP
Saturday Morning ReadingMail.app 0.2Mail Indexers:Ruby Shower Epiphanies
The Markup Thing, Rails, and Other Musings10.3.9 - Safari in Uncharted LandsExcelBack To Work
Last Round Of RelaxationP2P.icio.usMonoThe Little Python That Could
Catching UpThree TidbitsUsing Growl, Rendezvous and Python for LAN notificationsProjects/PicoRendezvous
2004 in ReviewHoliday LullFive-ish Bits Of NewsRestful Day
The Hello Kitty iPodPubSubChilling OutThe Knights That Say Growl
IntroductionExtreme ShoppingBreathing SpaceA Leisurely Stroll Through the News
Three Snippets of Random InfoIPPractical SubversionSlight Overload
Completely Biased News CoverageHakuna MatataThe Longest YardMy Third Fedora
Nearly BackA Bit More on TextMateDowserLink Dump
POP3Odd Happenings of an Otherwise Unremarkable MondayDowsing - Even Better than del.icio.us.NLSU2 Bootstrapping
The Poor Man's Growl BridgeProgress Along a Lopsided RoadLinking SpreeCrumbs and Diffs
Relaxation, at lastTalking To MyselfThe Wonders of the Linux KernelSummer Oddities
PlaceholderThe Linux PendulumGadgeteeringRandom Notes
Leisure LinksA Few LinksPyObjC 1.1 Is OutPublic Service
RendezvousTime MicromanagementMonologueHell Is Other Resources
Backlog SquaredMiscellaneous MusingsLeisure TimeFeedback Loop
RacoonCreate PDFs with CoreGraphics and PythonVodafone 3G LaunchMIME
Link ModeAmid The MidletsSliding In The RainCatching Up
Dancing With RendezvousThe PlayStation Portable Surfaces...UDPPalm Phones
Brilliant Hack Of The DayDive Into Python 4.4The VeriSlime GambitTwisted
The Quest For Easier Information ManagementHow Not To Code for Embedded DevicesSSL VPNsNew Theme
More Takes on the RSS-to-Email approachWinding DownEXIF and Spare TimePackaging
Something new every dayGlider is now FreewareHoliwhat?Quickies
Zen By Any Other NameThink DifferentAggregate ThisMinor Touches
IRCMore DowntimeBedtime WierdnessRAQ550/Packages/RPM4
Work In ProgressI'm Steve, and I'm a Super-Villain