I need to extend the import mechanism to support another file type.
I've already written the necessary C library to read the file and
return a python code object.

I found one example which just sub-classed imputil.ImportManager like
this:

from myLib import pye_code as pye_code
class MyImporter(imputil.ImportManager):
    def __init__(self):
        imputil.ImportManager.__init__(self)
        self.add_suffix('.pye', self.import_pye)
        self.install()

    def import_pye(self, filepath, fileinfo, filename):
        data = pye_code(filepath)
        return 0, data, {}

This actually works fine if the module is just a few lines of code,
but it won't chain to the "built-in" importers; if the module that I'm
importing does something as simple as 'import re', it fails.

It may be that my confusion here is because (even after reading the
code), I'm not clear on the purposes of imputil.ImportManager vs.
imputil.Importer :-(

What is the "preferred" way to do this type of extension?  One other
note; at this time, I just need to import individual module files with
this extension; I don't need to import packages.

Thanks!

Dan
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to