Help on import hooks

G

Gonçalo Rodrigues

Hi,

I need to extend the importing mechanism. More precisely, I'm working
on a plugin architecture. Plugins are just normal python files but
with extension ".plg". I want them to be loaded via the import
mechanism.

import <some plugin name>

should trigger the following:

- In all respects the first part is *exactly* like a usual module:
Consult sys.modules, search the Python path for the module, read the
file, instantiate the module, put it in sys.modules, execute the code
in the module.

(In the future I may want to cache these plugins in a different place,
instead of sys.modules, but for now this is good enough)

- After the above, do some extra processing.

New import hooks to the rescue. Now, I've been reading PEP 302 and
from what I've gathered the extra processing stuff is to be handled by
the loader object - and that I can understand . But I'm at a loss on
what to do with the importer object

- Since these plugin modules are special-cased by their file extension
do I have to register an importer in sys.meta_path? Do I even need an
importer?

- And how do implement the find_module in the importer? What is the
significance of the second path arg to find_module? Is it the same as
in imp.find_module, that is, a list of directories to search?

Skeleton code to tackle this would be a great help.

TIA, with my best regards,
G. Rodrigues
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,822
Latest member
israfaceZa

Latest Threads

Top