List of things to do
Short- to medium-term
- Update configure script.
- Allow Python call-back functions, for example to allow
scheduling function calls through AOLserver interface.
- Verify Apache/CGI interface compliance.
- Get DB API compliancy (nsDBI.py) functioning + provide test
script.
- ADP interface.
- Integrate Paul M.s C++ stuff into Tcl & Python calls.
- Provide access to AOLserver mutexes.
- Fix the thread safety of ns_codecache.py and see if the custom
execfile can be used only by PyWX (rather than installed as a
replacement for the built-in function).
- Simplify the source code, especially
AOLbuffer
and
PyWX_buffer
.
Long-term/miscellaneous
Migration to C API
PyWX is moving away from AOLserver's Tcl API and instead using its
C API. But this transition is still in progress. So the remaining
modules (e.g., ns_db.py) that are built on the Tcl API should be
rewritten.
Better factorization
It would be great to factor the functionality of PyWX better between
essential components and extra features. For example, ns_python.py
contains a dog's breakfast of routines for several unrelated purposes.
More flexible configuration
Allow some of the configuration choices to be made on a
script-by-script level. For example, CGI emulation might be needed
for just a few scripts in a system. Allowing some options to be
passed to ns_python exec
, like maybe
ns_python exec [ -attachstdio | -cgienv
| -cachecode | -reuseinterpreter ] "<pythoncode>"
would suffice, at least for the registry-based method of invoking
PyWX.
Benchmarking
One of the selling points of AOLserver/PyWX is its performance. We
should produce some benchmarks for pages per second to ensure that
PyWX is doing well. We should include a comparison of performance
under various combinations of configuration options, and with and
without database access. [mhagger: I have gotten about 150 pages/s on
a Pentium 500 for test-api.py.]
Cool ideas
- Build some functions that store a persistent dictionary of
values on a per-script (*not* per-connection) basis.
- Investigate packages (Webware?) to provide object persistence
across connections based on cookies.
- mod_python handler compatibility
Better documentation!
In particular,
Web site!
In particular,
- Add links to PyApache, httpdapy, Webware...
Future Projects
- ADP/Python -- AOLserver Dynamic Pages in Python
Provide access to Python for ADP commands.
- ACS.py -- calling the ArsDigita Community System toolkit from
Python
The ArsDigita
Community System is a large toolkit that provides extended
functionality for AOLserver installations. As with the
AOLserver/Tcl effort, ArsDigita and others continue to develop
this toolkit. We would like to provide an intuitive interface
to the more common ACS routines, taking advantage of
Python-specific features (e.g. objects) where appropriate.
- AOLserver DBI interface
We would like to provide a
Python DBI API v2.0-compliant interface that utilizes the
built-in persistent thread-safe database interface in
AOLserver. This would allow generic access to a wide variety
of databases (provided you have the AOLserver driver for the
database!)
One catch is that the AOLserver API doesn't provide
information about the types of returned columns, as required by
the DBI specification.