wasm-demo/demo/ermis-f/python_m/cur/0927

60 lines
2.1 KiB
Plaintext

From: mwh21 at cam.ac.uk (Michael Hudson)
Date: 16 Apr 1999 13:10:56 +0100
Subject: Imperfections in ihooks.py?
Message-ID: <m390bsoje7.fsf@atrus.jesus.cam.ac.uk>
Content-Length: 1865
X-UID: 927
I apologise for the lousy use of language in this post. It's a subject
I find a bit confusing to think about, and I'm clearly not much better
a writing about it.
Does anybody out there use ihooks? I'm having a couple of problems.
What I want to happen is to be able to import a file ending in some
random extension (I've chosen '.om') apply some simple preproccessing
to it, and then treat that preprocessing as a normal python module.
I have a mostly working solution. I can import just fine, but
reloading doesn't happen (for any module, not just mine) after I've
installed a module importer. I've looked at the code, and this seems
inevitable. Should this be changed? I could have a stab at it.
On a related note, the import of '.pyc' files takes no notice of the
timestamp in the file, so if you import a module that has a stale .pyc
file, you get the stale version from the '.pyc' file, not the new
version from the '.py' file. This would seem to be harder to fix. I
can't see any consideration given to the possibility of rejecting a
file once it's been found.
These problems would cause no grief once a program is finished, but
they make a bit of a mess of development.
Turns out the first problem is easy to fix:
--- ihooks.py 1999/04/15 08:19:46 1.1.1.1
+++ ihooks.py 1999/04/16 12:08:41
@@ -489,6 +489,7 @@
def reload(self, module):
name = module.__name__
if '.' not in name:
+ self.unload(module)
return self.import_it(name, name, None)
i = string.rfind(name, '.')
pname = name[:i]
which does the trick for simple modules. Packages just make my head
hurt a bit at the moment.
Anybody have any ideas what I could do to improve my situation? If I
make some changes to fix them, would there be a chance of getting them
into the distribution?
Thanks for reading
Michael