Support the development of py2app, xattr, etc.:
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
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.
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 documentation.
bdist_mpkg is a distutils plugin that implements the bdist_mpkg command, which builds a Mac OS X metapackage for use by Installer.app for easy GUI installation of Python modules, much like bdist_wininst.
It also comes with a bdist_mpkg script, which is a setup.py front-end that will allow you to easy build an installer metapackage from nearly any existing package that uses distutils.
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.
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.
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.
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.
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 test_generator.py.
Greenlets are provided as a C extension module for the regular unmodified
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
xattr is a Python wrapper for Darwin, Linux, and FreeBSD extended filesystem
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+
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.
Website for Mac OS X Python users and developers (wiki and links).
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.
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.
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.
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.
gzstream.py 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.
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.