So I would really like to accomplish the following:
run a program normally and keep track of all the imports that were actually done.

I studied the PEP 302, but I'm still a bit confused about how to do it.

I thought that instead of implementing everything I could just record the request
and then delegate to the "imp" module, so I did this:

class MyLoader(object):
    """
    Loader object
    """

    def __init__(self):
        self.loaded = set()

    def find_module(self, module_name, package=None):
        print("requesting %s" % module_name)
        self.loaded.add(module_name)
        return self

    def load_module(self, fullname):
        #XXX: the find_module is actually doing nothing, since
        # everything is delegated to the "imp" module
        fp, pathname, stuff = imp.find_module(fullname)
        imp.load_module(fullname, fp, pathname, stuff)

    myl = MyLoader()
    sys.meta_path.append(myl)
    try:
        import random
        import os
        print(random.random())



Which doesn't work, and very strangely it doesn't even look deterministic!
Sometimes it stops at first import sometimes it's able to do a few of them.
How can that be?

And how could I do solve my problem?
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to