I just noticed that Quixote's session.py maintains a global SessionManager instance, which is accessed via get_session_manager() and set_session_manager(). There are a couple of other functions for accessing sessions in the global session manager: get_session(), has_session(), and get_app_state(). I'm quite sure that keeping a global session manager is wrong: we already keep a global Publisher instance (in publish.py), and the SessionManager there (when the Publisher instance is actually a SessionPublisher) should be the One True SessionManager. In fact, quixote.session.get_session_manager() only works if you have previously called quixote.session.set_session_manager(), even though the One True SessionManager is already available via the global Publisher instance. It's just wrong to have these globals in multiple places. But that's an implementation detail: the important thing is the interface. Would anyone be unduly inconvenienced if I removed any or all of: * quixote.session.get_session_manager() (could easily be replaced in publish.py) * quixote.session.set_session_manager() (does not make any sense and will not be replaced) * quixote.session.get_session() (already replaced in publish.py) * quixote.session.has_session() (could easily be replaced in publish.py) * quixote.session.get_app_state() (could easily be replaced in publish.py) ? Our web site uses {get,set}_session_manager(), but I'll fix that if I remove these. Greg P.S. yes, this does mean I've been writing docs on Quixote session management. It's impossible to write docs without doing some code cleanup... -- Greg Ward - software developer gward@mems-exchange.org MEMS Exchange http://www.mems-exchange.org