Hi all --
[oops, meant to crosspost this to quixote-users -- sorry for the
duplication]
I spent most of yesterday fiddling with Apache, FastCGI, Quixote, and
SPLAT! (a bug database I've been working on). I think Quixote needs a
few minor changes to make it friendlier to outsiders (ie., any
application other than our virtual fab).
1) slight overhaul of the session module, specifically:
- rename SessionCollection to SessionManager
- rename GlobalSession to Session
I've never much liked the name SessionCollection, and it struck
my at some point this weekend that that class was really a
session *manager*. And part of my problem was that I wanted
to disable session management. So the name change suddenly
seemed obvious.
2) make session management optional. Currently, if you just drop
the quixote.cgi supplied with Quixote into your web server's
cgi-bin directory and try to execute it, it crashes because
no session manager has been installed. Well, what if I don't
*want* session management? I've come up with a reasonable
way to disable sessions without mucking up publish.py too much:
DummySessionManager and DummySession classes. Seems to work
for me.
I've already implemented these two; they're sitting on my hard disk at
home waiting to be uploaded to work. The final one is a bit more
involved:
3) allow multiple Quixote processes on the same machine (to service
multiple "root packages". This would require getting rid of
the quixote.config module (or at least allowing it to be
overridden). It would have to be replaced by a config object
that would be passed around wherever it's needed.
We might also want to put the guts of publish.py into
a Publisher class, to avoid reliance on keeping state in module-
level globals.
I've thought a bit about how to dump config.py in favour of a config
object, but don't have anything concrete yet. I'm open
to ideas!
4) don't say "root package", say "root namespace". That opens up
the possibility of an instance or module instead of requiring
a full-blown package to service Quixote requests.
Thoughts?
Greg
--
Greg Ward - software developer gward@mems-exchange.org
MEMS Exchange / CNRI voice: +1-703-262-5376
Reston, Virginia, USA fax: +1-703-262-5367