Much thanks to pymike and saluk for the Retro Game Library. The 'seperating axis theorem' function was sourced from this library (with some minor modifications)
vizier: a package for managing sprites and the screen, provides scrolling, scaling, and collision response.
xrects: a package for polygons. uses the pygame rect as the axis aligned bounding box (AABB), and subclasses the rect to add the polygon object and methods for collision detection.
Add the files in the zip to your python path. The files include the 'glyph' module which is used in the demo. glyph is a module for handling text. View the demo by running 'vizier_unittest.py'. Once the demo is running, press and hold space bar to let the sprites be updated. Release the space bar to pause everything and get a chance to look around. Clicking on sprites will display some information about them (it was stuff I was using to debug a physics system). The sprite update does use some physics. Feel free to replace the sprite object with one of your own.