[ http://issues.apache.org/jira/browse/MODPYTHON-54?page=all ]

Graham Dumpleton resolved MODPYTHON-54.
---------------------------------------

    Resolution: Fixed

Resolved by new module importer for 3.3, but for 3.3 release looks like the new 
importer will have to be enabled explicitly as will not be the default.

With the new importer, the existing apache.import_module() function should be 
used as mod_python.publisher will also use that itself and thus all modules are 
loaded via the same module caching system.

> Add a way to import a published page into another published page
> ----------------------------------------------------------------
>
>                 Key: MODPYTHON-54
>                 URL: http://issues.apache.org/jira/browse/MODPYTHON-54
>             Project: mod_python
>          Issue Type: Improvement
>          Components: importer
>    Affects Versions: 3.2.7
>            Reporter: Nicolas Lehuen
>         Assigned To: Graham Dumpleton
>             Fix For: 3.3
>
>
> Before mod_python 3.2, standard Python modules and published modules could be 
> imported the same way, using apache.import_module. This had a number of 
> disadvantages, leading to MODPYTHON-8, MODPYTHON-9, MODPYTHON-10, 
> MODPYTHON-11 and MODPYTHON-12.
> All these bugs were fixed by separating the published modules from the 
> standard Python module. apache.import_module can still be used to import 
> standard modules, but published modules are now fully managed  by 
> mod_python.publisher, and are not inserted into sys.modules.
> The problem is that there is a use case of importing a published module from 
> another published module :
> /index.py----------------
> def index(req):
>     return "Hello, world !"
> def utility_function(foobar):
>     return foobar+1
> /other.py----------------
> import os
> directory = os.path.split(__file__)[0]
> other_index = apache.import_module("index",path=[directory])
> def index(req):
>     return "%s %i"%(other_index.index(req),other_index.utility_function(2004))
> This was alread a bit of a hack in 3.1.4, but in 3.2 it does not really work 
> the expected way since the imported module (other_index in the example) is 
> not the same module as the one the publisher would use to publish /index.py. 
> This could be troublesome if the developer wanted to share some data between 
> the modules, e.g. a cache or a connection pool, but not if he only wanted to 
> share some code.
> Therefore, we need to provide a clean API in mod_python.publisher to allow 
> developers to reference another published module.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to