Python Stuff

Support the development of py2app, xattr, etc.:

simplejson 02/28/2012
simplejson is a simple, fast, extensible JSON encoder/decoder for Python

simplejson is compatible with Python 2.6 and later with no external dependencies. It covers the full JSON specification for both encoding and decoding, with unicode support. By default, encoding is done in an encoding neutral fashion (plain ASCII with \uXXXX escapes for unicode characters).

The encoder may be subclassed to provide serialization in any kind of situation, without any special support by the objects to be serialized (somewhat like pickle).

The decoder can handle incoming JSON strings of any specified encoding (UTF-8 by default).

simplejson is the externally maintained development version of the json library included with Python 2.6 and Python 3.0, but maintains backwards compatibility with Python 2.5.

documentation (master)
simplejson 2.3.3 source
simplejson - Github
Python Package Index : simplejson

py2app 3/5/2007
A distutils extension which converts python scripts into executable Mac OS X applications, able to run without requiring an existing Python installation. This is a replacement for bundlebuilder. Installation instructions are in the

py2app on Package Index
py2app trac
py2app svn trunk
documentation (for trunk)

bdist_mpkg 7/19/2006
bdist_mpkg is a distutils plugin that implements the bdist_mpkg command, which builds a Mac OS X metapackage for use by for easy GUI installation of Python modules, much like bdist_wininst. It also comes with a bdist_mpkg script, which is a front-end that will allow you to easy build an installer metapackage from nearly any existing package that uses distutils.

bdist_mpkg on Package Index
bdist_mpkg trac
bdist_mpkg svn trunk

modulegraph 7/19/2006
modulegraph determines a dependency graph between Python modules primarily by bytecode analysis for import statements. modulegraph uses similar methods to modulefinder from the standard library, but uses a more flexible internal representation, has more extensive knowledge of special cases, and is extensible.

modulegraph on Package Index
modulegraph trac
modulegraph svn trunk

macholib 7/19/2006
macholib can be used to analyze and edit Mach-O headers, the executable format used by Mac OS X. It's typically used as a dependency analysis tool, and also to rewrite dylib references in Mach-O headers to be @executable_path relative. Though this tool targets a platform specific file format, it is pure python code that is platform and endian independent.

macholib on Package Index
macholib trac
macholib svn trunk

altgraph 7/19/2006
altgraph is a fork of graphlib: a graph (network) package for constructing graphs, BFS and DFS traversals, topological sort, shortest paths, etc. with graphviz output.

altgraph on Package Index
altgraph trac
altgraph svn trunk

TigerPython23Compat 5/2/2005
The installation of Python 2.3.5 that ships with Mac OS X 10.4 (Tiger) has a "site-packages" directory of /Library/Python/2.3/site-packages, where it was previously just /Library/Python/2.3 on Mac OS X 10.3's Python 2.3.0.

TigerPython23Compat installs a .pth file that adds Mac OS X 10.3's "site-packages" location as a site directory, so that you may install and use extensions built for that environment.

links packages (installer available here)

greenlet 1/9/2006
Lightweight in-process concurrent programming

(This is the py.magic.greenlet module from the py lib, made standalone)

The "greenlet" package is a spin-off of Stackless, a version of CPython that supports micro-threads called "tasklets". Tasklets run pseudo-concurrently (typically in a single or a few OS-level threads) and are synchronized with data exchanges on "channels".

A "greenlet", on the other hand, is a still more primitive notion of micro-thread with no implicit scheduling; coroutines, in other words. This is useful when you want to control exactly when your code runs. You can build custom scheduled micro-threads on top of greenlet; however, it seems that greenlets are useful on their own as a way to make advanced control flow structures. For example, we can recreate generators; the difference with Python's own generators is that our generators can call nested functions and the nested functions can yield values too. Additionally, you don't need a "yield" keyword. See the example in

Greenlets are provided as a C extension module for the regular unmodified interpreter.

svn trunk
Python Package Index : greenlet
py lib
py.magic.greenlet documentation

flashticle 1/3/2006
flashticle reads and writes Macromedia Flash data formats

Flashticle is an extensible suite of serializers and deserializers for data formats related to Macromedia Flash.

The following formats are currently supported:

- AMF: Action Message Format
- SOL: Local SharedObject files
- FLV: Flash Video
- SWF: Flash (partial support)

There is also a prototype Flash Remoting gateway implementation for TurboGears (that could be trivially adapted to raw CherryPy) in flashticle.turbogateway

svn trunk
Python Package Index : flashticle
flashticle wiki

xattr 8/17/2011
xattr is a Python wrapper for Darwin, Linux, and FreeBSD extended filesystem attributes

Extended attributes extend the basic attributes of files and directories in the file system. They are stored as name:data pairs associated with file system objects (files, directories, symlinks, etc).

Extended attributes are currently only available on Darwin 8.0+ (Mac OS X 10.4), Linux 2.6+, FreeBSD 5.1+

announcement (more details)
xattr 0.6.2 source
Python Package Index : xattr packages 3/31/2005
Pre-built Python packages for Mac OS X, using py2app's bdist_mpkg command. These are Apple installer packages, that do not use PackageManager / pimp. The current focus for packages is Python 2.4 on Mac OS X 10.3+, but most of them are also built for the Python 2.3.0 that ships with Mac OS X 10.3, with a few available for Python 2.3 on Mac OS X 10.2.

packages the list of packages 9/25/2003
Website for Mac OS X Python users and developers (wiki and links).


SystemConfiguration 10/19/2003
SystemConfiguration is an ObjC wrapper for Apple's SystemConfiguration API that can easily be used from Python via PyObjC. This API lets you read, subscribe to, and publish settings such as network configuration and battery level.

SystemConfiguration wiki
0.1 announcement
Network Configuration, Connection, and Reachability
QA1234 - Accessing HTTPS Proxy Settings

PyQTSequence 10/15/2003
PyQTSequence is a PyObjC application that takes a sequence if images and turns them into a QuickTime movie with whatever QuickTime supported compression you want. Note that it uses its own version of the QuickTime bgen wrapper, because I had to add some functionality to what Jack has in Python 2.3. I'm sure these changes will make it into Python eventually, but they're not in there yet. The source distribution requires Developer Tools, Python 2.3, PIL, PyObjC. The app is standalone and should run on MacOS X 10.2 and later. It's also got a nifty little PIL codec that'll decode SoftImage lossless frames. Note that due to some inconveniences with regard to QuickTime, Python, and PIL it's not a speed demon, but it's convenient, and might be the best way to work with SoftImage lossless sequences.
links (standalone app)
PyQTSequence-0.1.tgz (source)
Python Imaging Library (PIL)
Numerical Python

Authorization 10/13/2003
Authorization is a Python wrapper for Apple's Authorization API. Basically, it allows you to spawn arbitrary processes as root after successfully authenticating as an administrator. This is useful for installers, twiddling kernel settings (via sysctl or the like), etc.

Authorization wiki
Authorization Documentation (pydoc)
0.1 announcement
Authorization Services Reference
Performing Privileged Operations With Authorization Services

TECManager 09/29/2003
Pythonic wrapper for the Text to Unicode functionality of Text Encoding Conversion Manager. It's now a full codec bridge between Python unicode and the proprietary Apple character sets.

TECManager Documentation (pydoc)
0.1 announcement
Text Encoding Conversion Manager Reference
Programming With The Text Encoding Conversion Manager

gzstream 08/04/2003 is an example of how one could do streaming gzip/gunzip using Twisted (or otherwise, but it's built for Twisted). This code uses generators, so it requires at least Python 2.2.

zlib library
zlib module

Please note that I do not provide any support whatsoever for versions of Python prior to 2.3, or versions of Mac OS prior to 10.2. At all, don't bother asking. Seriously.