Kaydet (Commit) 7a25765f authored tarafından Ka-Ping Yee's avatar Ka-Ping Yee

When seeking the module for an object, compare absolute (not relative) paths.

üst a2fe103c
...@@ -27,7 +27,7 @@ Here are some of the useful functions provided by this module: ...@@ -27,7 +27,7 @@ Here are some of the useful functions provided by this module:
__author__ = 'Ka-Ping Yee <ping@lfw.org>' __author__ = 'Ka-Ping Yee <ping@lfw.org>'
__date__ = '1 Jan 2001' __date__ = '1 Jan 2001'
import sys, types, string, dis, imp, tokenize import sys, os, types, string, dis, imp, tokenize
# ----------------------------------------------------------- type-checking # ----------------------------------------------------------- type-checking
def ismodule(object): def ismodule(object):
...@@ -199,14 +199,15 @@ def getmodule(object): ...@@ -199,14 +199,15 @@ def getmodule(object):
if isclass(object): if isclass(object):
return sys.modules.get(object.__module__) return sys.modules.get(object.__module__)
try: try:
file = getsourcefile(object) file = os.path.abspath(getsourcefile(object))
except TypeError: except TypeError:
return None return None
if modulesbyfile.has_key(file): if modulesbyfile.has_key(file):
return sys.modules[modulesbyfile[file]] return sys.modules[modulesbyfile[file]]
for module in sys.modules.values(): for module in sys.modules.values():
if hasattr(module, '__file__'): if hasattr(module, '__file__'):
modulesbyfile[getsourcefile(module)] = module.__name__ modulesbyfile[
os.path.abspath(getsourcefile(module))] = module.__name__
if modulesbyfile.has_key(file): if modulesbyfile.has_key(file):
return sys.modules[modulesbyfile[file]] return sys.modules[modulesbyfile[file]]
main = sys.modules['__main__'] main = sys.modules['__main__']
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment