The seventh alpha release of cgkit2 and v0.9.3 of the Maya/Python
package is available at http://cgkit.sourceforge.net
What is it?
The Python Computer Graphics Kit is an Open Source software package
containing a collection of Python modules, plugins and utilities that
are meant to be useful for any domain where you have to deal with 3D
data of any kind, be it for visualization, creating photorealistic
images, Virtual Reality or even games.
Currently, the entire kit consists of the following parts:
- The Python package "cgkit" that extends Python with 3D-related
- The Maya plugin "sourcepy" that integrates the Python interpreter
into Maya, and the accompanying Python package "maya" that makes Maya
functionality available in Python.
- A collection of small stand-alone utilities written in Python, MEL
- The license of cgkit has changed from LGPL to a MPL/GPL/LGPL
tri-license. The Maya/Python package is available under the MPL.
- The built-in preprocessor has been improved so that common
preprocessor directives are supported. This means the slparams module
can now parse RenderMan shaders that use simple macros or include
files without having to fall back to an external preprocessor.
- other smaller bugfixes and enhancements (see changelog)
- The MEL command "python" has been renamed to "py".
- There are now 260 classes from the Maya SDK available. This is about
85% of the Maya 7 SDK. The newly wrapped classes mainly consist of the
- The MUserEventMessage can also be used to communicate with C++
- The number of "dead" methods in the api module (i.e. methods that
have been wrapped but that were not callable in Python) has been
reduced. These are methods that, for example, take pointers as
arguments or return values by reference and that cannot be dealt with
in an entirely automatic fashion. There are still such methods left,
so let me know if you stumble across one of those cases.
- Improved string handling in the mel module.
- Multi-threading support. This means you can create a new thread in
Python and this thread keeps running even when the py or pySource MEL
command that was used to execute the Python code has terminated. This
functionality is used for the new "remote" functionality (see below).
- New sub-package "remote" that allows you to execute any MEL command
from external scripts. This means you can control Maya from Python
scripts that run outside Maya or even on a different machine.
- Writing plug-ins in Python has become more safe as Python exceptions
are now caught in the proxy wrapper classes where the traceback is
printed and a status code of kFailure is returned to Maya.
For more information, visit:
Feedback is always welcome...
- Matthias -
I would like to announce Guppy-PE 0.1.5
Guppy-PE is a library and programming environment for Python,
currently providing in particular the Heapy subsystem, which supports
object and heap memory sizing, profiling and debugging. It also
includes a prototypical specification language, the Guppy Specificaion
Language (GSL), which can be used to formally specify aspects of
Python programs and generate tests and documentation from a common
The current version is updated to work with Python 2.5 (and can still
be used with 2.3 and 2.4). It also has some feature improvements, such
as some shorthand attributes, and a clearer representation of shortest
paths. Bugs have been fixed wrt especially remote monitoring and
making the HTML generated by GSL more standards-compliant. For update
details, see the changelog included with the source code.
For more information and to download the Guppy-PE source code, see:
My master thesis, "Heapy: A Memory Profiler and Debugger for Python"
has now been approved and is available here:
SECURITY ADVISORY [PSF-2006-001]
Buffer overrun in repr() for UCS-4 encoded unicode strings
Advisory ID: PSF-2006-001
Issue Date: October 12, 2006
Versions: 2.2, 2.3, 2.4 prior to 2.4.4, wide unicode (UCS-4) builds only
CVE Names: CAN-2006-4980
Python is an interpreted, interactive, object-oriented programming language.
It is often compared to Tcl, Perl, Scheme or Java.
The Python development team has discovered a flaw in the repr() implementation
of Unicode string objects which can lead to execution of arbitrary code due
to an overflow in a buffer allocated with insufficient size.
The flaw only manifests itself in Python builds configured to support UCS-4
Unicode strings (using the --enable-unicode=ucs4 configure flag). This is
still not the default, which is why the vulnerability should not be present
in most Python builds out there, especially not the builds for the Windows or
Mac OS X platform provided by www.python.org.
You can find out whether you are running a UCS-4 enabled build by looking at
the sys.maxunicode attribute: it is 65535 in a UCS-2 build and 1114111 in a
More information can be found in this posting to the python-dev mailing list:
The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned
the name CAN-2006-4980 to this issue.
Python 2.4.4 will be released from www.python.org next week containing a fix
for this issue. A release candidate of 2.4.4 is already available containing
the fix. Python 2.5 also already contains the fix and is not vulnerable.
Patches for Python 2.2, 2.3 and 2.4 are also immediately available:
(Python 2.2, 2.3)
Acknowledgement: thanks to Benjamin C. Wiley Sittler for discovering this
The official URL for this security advisory is
We're happy to announce version 2.1.3 of Wing IDE, an advanced
development environment for the Python programming language.
This is a bug fix release that fixes debugger support for
Python 2.5 final, improves VI mode and multi-file replace,
and adds support for Subversion 1.4, among other things.
The release can be downloaded from:
A detailed list of changes is available here:
Wing IDE provides powerful debugging, editing, code intelligence,
and search capabilities that reduce development and debugging
time, cut down on coding errors, and make it easier to understand
and navigate Python code.
Highlights of Wing IDE 2.1:
* Professional quality code editor
* Visual Studio, VI/Vim, Emacs, and Brief key bindings
* Auto-completion, call tips, and source browser
* Graphical debugger for Python, Zope, and Plone
* Subversion, CVS, and Perforce integration
* Powerful search interface
* User-extensible with Python scripts
* Templates (code snippets), bookmarks, folding, macros, and more
Some features are available in Wing IDE Pro only -- for details
This release is available for Windows (2000+), Linux, and Mac OS X
(10.3+ with X11 installed) and can be compiled from sources on *BSD,
Solaris, and other Posix operating systems.
For more information see:
Product Info: http://wingware.com/products
The Wingware Team
On behalf of the Python development team and the Python community,
I'm happy to announce the release of Python 2.4.4 (release candidate 1).
Python 2.4.4 is a bug-fix release. While Python 2.5 is the latest
version of Python, we're making this release for people who are
still running Python 2.4.
See the release notes at the website (also available as Misc/NEWS in
the source distribution) for details of the more than 80 bugs squished
in this release, including a number found by the Coverity and Klocwork
static analysis tools. We'd like to offer our thanks to both these
companies for making this available for open source projects.
* Python 2.4.4 contains a fix for PSF-2006-001, a buffer overrun *
* in repr() of unicode strings in wide unicode (UCS-4) builds. *
* See http://www.python.org/news/security/PSF-2006-001/ for more. *
Assuming no major problems crop up, a final release of Python 2.4.4 will
follow in about a week's time. This will be the last planned release in
the Python 2.4 series - future maintenance releases will be in the 2.5
For more information on Python 2.4.4, including download links for
various platforms, release notes, and known issues, please see:
Highlights of this new release include:
- Bug fixes. According to the release notes, at least 80 have been
- A fix for PSF-2006-001, a bug in repr() for unicode strings
on UCS-4 (wide unicode) builds.
Highlights of the previous major Python release (2.4) are available
from the Python 2.4 page, at
Enjoy this release,
Python Release Manager
(on behalf of the entire python-dev team)
Talks at previous PyCons have tended to be of the lecture format. I'd like to
see if we can get some panel discussions going and am looking for participants.
At PyCon 2005 in D.C. Michelle Levesque gave a wonderful talk, PyWebOff,
contrasting a few of the web frameworks. However, it is a lot of work to
research many of them, so how about instead we just invite some experts for
the various frameworks to debate them instead? And answer tough questions
from the audience?
For updating, links to the following rough outlines are at:
We need some moderators to work up more questions, and to coordinate with the
panelists. Hey, it may be easier than preparing your own presentation and slides.
I'd like to see three talk panels:
Panel - Web Frameworks
* Zope 2
* Zope 3
* Twisted Web
Questions Put To the Panel
* When did the framework come into existence and what problem
was it created to solve?
* What are its strengths and maturity level? What is it ideal
to use for?
* What are its weaknesses? What would you NOT use it for?
Panel - Web Templating Languages
* Zope TAL, TALES, METAL
* Twisted STAN
* Django's Template Language
* TurboGears Kid
* Quixote Python Template Language (PTL)
Questions to Put to the Panelists
* Python code in your HTML, or HTML in your code?
* Which can and cannot be handed off to a graphics designer?
* Where do they stand in performance? in Caching?
* Which can work with less than a page i.e. Zope viewlets, widgets?
* Which frameworks let me plug in my choice of template language?
(initially show the audience a representative sample of each)
Panel - Object Relational Mappers (ORMs)
* Django ORM
Questions Put to Panelists
* Natural or artificial keys?
* Support for existing database schemas or must I
do it your way?
* How is the performance?
* How smart is it in handling complex schema?
* Any support for access control security at the
* What flavor and degree of transaction support is
offered? Per thread, per context, autocommit?
Co-Chair PyCon 2007
Eggs are important to Python and will become more so over the next few years,
if understood and embraced by the community. They are a key competitive
feature - I've been asked so many times what is the Python equivalent to CPAN
and finally we're developing an answer.
At PyCon 2007 we need a solid set of talks about eggs, broken down into just
using them, how to build and distribute them, and then an advanced talk on
some of the more exotic aspects of eggs. At PyCon 2006, essentially the 3rd
talk I mention above was given to a standing-room-only audience, and then
repeated against an hour later as people in the hall could not get in. But
missing were the first two talks - many people were not ready for advanced
material but sought an introduction.
Who in our community is building eggs on a frequent basis, and is good at
explaining how they work?
Below are three talk outlines I've sketched out, along with the slides from a
talk I tossed together for the Dallas Pythoneers group. They need polish and
I'm donating them to the cause.
Will someone please step forward and address this critical need?
For revision, links to the three wiki outline pages appear on:
Python Eggs - Using and Installing Them
* What is so cool about eggs? Wow me.
* What problem were they intended to solve?
* What is their relation to distutils?
* So how does distutils work then?
* How do they compare to CPAN and RPM approaches?
* Sound good, how do I enable eggs on my system?
* How do I accomplish common operations?
o install an egg
o test install an egg, to see if it would work
o uninstall an egg
o list what eggs are installed at the moment
o switch between the versions of an egg
* I don't trust eggs - how can I partially install one,
examine it and then finish the installation?
* How do I find out what eggs exist, and their names?
* What about py2exe and droplets? Competing approaches?
* Show me a walkthru of the cheeseshop - how to find a package.
* How do I figure out the author of an egg I'm having trouble with?
Python Eggs - Creating and Distributing Them
* Where does distutils fit in?
* What do I need to add to setup.py to package my software as an egg?
* How does it work re path configuration files?
* What are the issues with zipped eggs; how can my code access my data?
* How do I produce cross-platform eggs?
* How do I produce platform-specific eggs?
* How do I get my eggs registered on the cheeseshop?
* How do I upload my eggs, source and binaries?
* How can I volunteer as a packager for non-egg authors?
* Some eggs are broken in the cheeseshop - how can I help?
(Keep this talk simple and focused on _just_ getting your vanilla egg packaged
and uploaded. Defer the advanced egg issues to the third talk).
Python Eggs - Advanced Packaging
* What are entry points?
* How does dynamic discovery/plugins work?
* I hear Trac uses them - how?
* What are extras? They sound nifty!
* What is a namespace package? When and how do I use them?
* How can I have multiple distribution versions?
* I hear eggs can detect files under CVS/subversion
control - how does that work?
* Also eggs have support for units tests - how?
* Where do the egg experts hang out?
An Old Talk of mine about Eggs (from which to borrow slides/ideas):
Co-Chair PyCon 2007
The PyCon organizers are looking for someone to volunteer as publicity
coordinator for PyCon 2007. This year we have started planning sufficiently
in advance that we'd like to get some press coverage in print magazines.
What is involved, you ask?
1. Brainstorm/collect a list of candidate publications for press releases.
2. Post the lead time and submission requirements for each to the wiki.
3. Develop or work with others to develop a (textual) press release layout.
4. At the appropriate time (e.g. when certain details are settled such
as keynote speakers), actually submit the press release.
There is a wiki page at the following on which to collect ideas on where to
submit a press release:
That's it! It really shouldn't take a lot of time; a bit of surfing, perhaps
a few email queries.