[ 
https://issues.apache.org/jira/browse/MODPYTHON-155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Graham Dumpleton closed MODPYTHON-155.
--------------------------------------


> req.add_handler() and inheritance of directory to be searched for module
> ------------------------------------------------------------------------
>
>                 Key: MODPYTHON-155
>                 URL: https://issues.apache.org/jira/browse/MODPYTHON-155
>             Project: mod_python
>          Issue Type: Sub-task
>          Components: importer
>            Reporter: Graham Dumpleton
>         Assigned To: Graham Dumpleton
>             Fix For: 3.3
>
>
> The documentation for req.add_handler() says:
> """Optional dir is a string containing the name of the directory to be added 
> to the pythonpath. If no directory is specified, then, if there is already a 
> handler of the same type specified, its directory is inherited, otherwise the 
> directory of the presently executing handler is used. I there is a PythonPath 
> directive in effect, then sys.path will be set exactly according to it (no 
> directories added, the dir argument is ignored)."""
> This comment about the directory being inherited from the prior or currently 
> executing handler is actually bogus as the code does not do anything specific 
> at all to try and implement such behaviour. If it works this way at all it is 
> partly by luck as what will actually dictate where the module specified to 
> the req.add_handler() method is found is the current order of directories 
> specified in sys.path. Since additional directories added into sys.path by 
> the old importer can be performed in effectively random order, behaviour 
> could actually be quite random if the same module name were used in multiple 
> directories.
> Because the new importer doesn't add directories into sys.path for 
> Python*Handler directives, a problem will currently arise if no directory is 
> supplied to req.add_handler(). Specifically, a module may not be able to be 
> found. This is because it can no longer fall back on to fact that with old 
> module importer, the directory corresponding to the Python*Handler directive 
> would be listed in sys.path somewhere.
> Thus, the documented behaviour for req.add_handler() when the directory 
> hasn't been set needs to actually be implemented as described with an 
> appropriate directory being calculated at the time that req.add_handler() is 
> called with that directory being recorded as needing to be searched for the 
> module. In changing the code though, if old and new importers are going to be 
> supported during a transition phase, it must detect when the new module 
> importer is being used and only do this when it is, as otherwise it will 
> screw up how modules are found for the old importer.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to