quetz-mod_python-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Graham Dumpleton (JIRA)" <j...@apache.org>
Subject [jira] Commented: (MODPYTHON-143) Implement and integrate a new module importer.
Date Sun, 13 Aug 2006 07:43:14 GMT
    [ http://issues.apache.org/jira/browse/MODPYTHON-143?page=comments#action_12427741 ] 
            
Graham Dumpleton commented on MODPYTHON-143:
--------------------------------------------

An issue which still needs to be looked at with new module importer is that for historical
reasons, the __name__ attribute put in modules is concocted from an md5 hash of the full pathname
of the module file. The reasons for this is that the implementation that the importer was
based on attempted to still store modules in sys.modules and in doing so the module name couldn't
contain various characters that can appear in pathnames, eg, slash, colon etc. This way of
setting up the module name has persisted and not been changed.

Problem is that it seems that use of certain third party packages can well and truly stuff
up md5 generation in Python. See:

  http://www.modpython.org/pipermail/mod_python/2006-June/021482.html

and all the followup posts.

This may not be a big issue in as much as you probably do not want to try and be resilient
to such a problem, as for md5 hashes it would be very important for any underlying problem
to be fixed.

Now the __name__ attribute in modules could possibly be replaced with the name of the file,
ie., the same as __file__, but could there be other code out there which makes assumptions
about what sort of characters appear in the __name__ attribute and rely on that somehow.

> Implement and integrate a new module importer.
> ----------------------------------------------
>
>                 Key: MODPYTHON-143
>                 URL: http://issues.apache.org/jira/browse/MODPYTHON-143
>             Project: mod_python
>          Issue Type: Task
>          Components: importer
>    Affects Versions: 3.2.8
>            Reporter: Graham Dumpleton
>         Assigned To: Graham Dumpleton
>
> This is an overall task to cover the issue of rectifying the various module importer
issues by replacing it with a new implementation. A description of the various problems can
be found in:
>   http://www.dscpl.com.au/articles/modpython-003.html
> Separate issues had already been created for some of the specific problems. These issues
will now be linked to this problem and thus marked as being dependent on this issue.
> In other words, replacing the module importer will solve a number of number issues. Rather
than try and keep up to date all the separate issues, all information about the replacement
will be put against this issue instead.
> Note that there are also some issues which are not directly related to the module importer
but which will be made dependent on this issue because it is easier to fix the issue as part
of the rewrite of the module importer and top level handler dispatch mechanism than it is
to address it as a distinct item.
> In respect of what impacts the new module importer implementation may have and how it
is used may change, this will be documented in the following document for the time being:
>   http://www.dscpl.com.au/articles/modpython-007.html
> Note that this document is a work in progress. It is dense reading and assumes you know
a bit about the current module importer and its problems. Any significant issues raised by
this document can be added here as a comment, or if a general dicussion of a topic is needed,
raise the issue on the mod_python developers mailing list.
> A possible new implementation for the module importer is basically ready for testing
and experimentation. The intent is to push it into the mod_python source tree, but for its
use to be optional. 
> If wanting to enable it for a specific Python interpreter, the PythonImport directive
would be used:
>   PythonImport mod_python.future.importer mytestinterpreter
> If wanting to enable it for all Python interpreters, a PythonOption directive would be
used at global scope within the Apache configuration. Ie., outside of all Location, Directory
or Files container directives. The exact option name to be used hasn't yet been decided.
> More details and announcements at the appropriate time.

-- 
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

        

Mime
View raw message