Pyglet http://pyglet.org/ is a python graphics library intended for game development. Here's what I've concluded so far after glossing at the documentation. Making comparisons to pygame which I've spent a good amount of time with.
-Written in python. Best language ever (biased).
-Uses opengl, this means fewer dependencies, and better performance. Pyglet is designed primarily for 2d games using hardware acceleration. Pyglet still allows for native opengl calls so it's just as readily useable with opengl much like how one would use SDL with opengl.
-Basic functionality is very easy to use, hiding all the nasty opengl stuff. For example, loading and displaying an image are all one line calls with many of the bells and whistles that pygame has (like get_region()).
-Offers an event system for about 30 different events (including keyboard, mouse, timers, etc)
-In older versions, one would instantiate an window.Window class and override the main_loop() function and control all looping manually. Events are handled upon calling the dispatch_events() functions and one can follow that up with update and draw cycles all in the main loop.
-Newer version encourages and entirely event driven paradigm. Program blocks on pyglet.app.run() and user code should go in event functions like on_draw(). This is optimised for performance as functions are only called as needed.
The documentation for the event driven paradigm is a little poor but I'd imagine its comparable to AS3. I'm much more used to programming the former way, managing the main loop manually. I'm trying to figure out how to schedule timer events and what happens when framerate drops. I'll report as I find out more.