From: Rimon B. <ba...@cs...> - 2002-09-03 16:06:15
|
Hi Rien, Good questions! >it seems there is an error in the documentation concerning the writing of >new modules. The first basic example is written this way: [...] >from what i read in the source of standard spyce modules, shouldn't it be >written that way ? > class myModule(spyceModule): [..] ^^^^^ Yes, that's a typo, and has been corrected. It will be in the next release. >now, i need more informations on modules: >in this documentation page, you say: >"Do not override the __init__(...) method because it is inherited from >spyceModule and has an fixed signature that is expected by the Spyce module >loader" > >if we write something this way: > class myModule(spyceModule): > def __init__(self, request, response, wrapper, server): > spyceModule.__init__(self, request, response, wrapper, server) > #some module inits here... > > def foo(self): > #some use of the module inits here... > self.response.write('foo called') >will this be correct ? This will work, yes. But why not just insert your code #some module inits here... into the start() function? Both the __init__() and the start() methods are called at the beginning of *each* request. >also, you told me that the start method of a module is called each time a >module directive reference this module. so, the init method is called >only once at server initialization ? or is init called for each request ? >said differently: can we use the init method for some module level >initializations and start for request level initializations ? No. Both methods are called on each request. If there are some complex computations that you would like to cache, then use the pool module. ie. Calculate the variables, if they do not already exist, and store them in the server 'pool' for subsequent requests. You could also use the server object directly; see how the 'pool' module does this. Said another way, modules are associated with the request, not with the server. >ps: as you see, i started writing my own modules... very interesting >feature, which allows great flexibility ! Yes, I know! :) I'm hoping that more people will start writing modules, and we'll really see the functionality grow rapidly. Can you give me an example of what you are trying to do? All the best, Rimon. -- * Rimon Barr Ph.D. candidate, Computer Science, Cornell University | ba...@cs... - http://www.cs.cornell.edu/barr - Y!IM: batripler | | Understanding is a kind of ecstasy. +---- -- Carl Sagan |