- PSE now requires at least Python 2.3.1. Python 2.3.0 and older
versions of Python are no longer supported.
- PSE is now thread safe for use with multithreaded apache 2.0 mpm
modules. If you decide to use a multithreaded mpm, be sure your
plugins, custom tags and other modules used in your applications
are also thread safe.
- The name of the pse handler for mod_python has changed to
pse_handler. See UPGRADING.TXT for more information.
- PSE no longer uses the PythonAccessHandler directive in the
apache configuration file. You must delete these references.
- Authentication hooks have been removed from PSE. See the manual
for use of the new pse.plugins.response.authenticate function.
- A new function pse.call() works like pse.include(), but it runs
code in a separate namespace. Please see the PSE Manual for
- PSE handles unicode better than previous versions. The default
encoding can be set with DefaultEncoding in pse.conf, which can
be changed per servlet using the pse.setencoding() function.
Please see the pse.conf file and the PSE Manual for details.
- A new funtion pse.flush() will flush client output immediately,
but any operations to alter headers will then raise an exception.
- The plugin architecture has changed significantly. While plugins
made for PSE 2.x will continue to work, much of the functionality
is deprecated. See UPGRADING.TXT and the PSE Manual for details.
- The pse.conf file has been reorganized. Specifically, many
options were moved to the Debug section. Please see the pse.conf
file for details.
- User plugins can be placed in directories other than in the
PSE distribution package directory; see pse.conf for details.
- The session plugin type can now be configured in the pse.conf
file rather than manipulating the modules in the PSE plugins
directory; see the PSE Manual for details.
- The SQLite session plugin now requires at least SQLite 3.0 and
version 2.0 or higher of the Python bindings (pysqlite2).
- User plugins can be disabled in the pse.conf file by specifying
"Enabled = no" in that plugin's configuration section.
- pse.plugins.response.redirect can now redirect requests in
different ways. See the PSE Manual for details.
- Access to form data using pse.form is deprecated; use
- The cookie interface in pse.plugins.client was broken in 2.x;
CookieDef was not available to create new cookies. The class name
has been changed to CookieClass and is now exposed to be able to
create and store new cookies. See the PSE Manual for details.
- Custom tag classes can cause PSE to suspend its processing of
text within the tag; see the PSE Manual for more information
- Raw HTTP POST data can now be obtained from
pse.plugins.request.content, a file-like object, for use with
XML-RPC or other applications.
- Unicode output is now passed through instead of being converted
to a string.
- Cached output is now stored in a separate directory from the
PSE template files; see pse.conf and the PSE Manual for details.
- Servlets compiled with the psecompile utility now compile to
.pto files, not to be confused with the old "cache" .pto files.
- Tracebacks no longer contain internal PSE frames leading up to
the running servlet's first frame.
- Added TraceAll to pse.conf to force PSE to attempt to show a
traceback even when the source is not available.
- A new api module was added to aid in the development of plugins
and custom tags. Please see the PSE Manual for details.
- Many bug fixes and code optimizations were completed.
- PSE includes an experimental CGI script that can be used when
mod_python is not available. WARNING: THIS IS EXPERIMENTAL!!
Please report bugs to firstname.lastname@example.org.