STATE_TRANSITIONS dictionary values are changed to strings.
Our assumption that Python's functions and methods are first class members
and using the method names directly as dictionary values doesn't seem to
work. So we are using method names as strings in STATE_TRANSITIONS
dictionary and getting the method object using getattr.
Third-party code that is *not* part of the application image (the Google App
Engine SDK in trunk/thirdparty/google_appengine, for example) belongs in
trunk/thirdparty. For third-party code that *is* part of the application
image, see the notes in trunk/app/README.
== THIRD PARTY LICENSES ==
Third-party code must also include a license text file, named LICENSE or
COPYING, in the package subdirectory. If the third-party package subdirectory
is maintained automatically with a tool such as svn_load_dirs.pl (which
removes files, such as license text files, that were added later to the
"target" directory), place the license text file in the trunk/app directory
and add the package name as a suffix.