diff options
author | Adrien Di Mascio <Adrien.DiMascio@logilab.fr> | 2009-08-04 18:36:34 +0200 |
---|---|---|
committer | Adrien Di Mascio <Adrien.DiMascio@logilab.fr> | 2009-08-04 18:36:34 +0200 |
commit | ec54cda5aae89144345adb1545239af7c55fd470 (patch) | |
tree | 4685d070cb80192df9a38a8bc6c0065e03372f98 /modutils.py | |
parent | d401c140c6d0f791da7a3f3d4090529f86933c4b (diff) | |
download | logilab-common-ec54cda5aae89144345adb1545239af7c55fd470.tar.gz |
[modutils] new cleanup_sys_modules function (backported from yams)
Diffstat (limited to 'modutils.py')
-rw-r--r-- | modutils.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/modutils.py b/modutils.py index 5755a4f..837d2b0 100644 --- a/modutils.py +++ b/modutils.py @@ -444,6 +444,16 @@ def get_source_file(filename, include_no_ext=False): raise NoSourceFile(filename) +def cleanup_sys_modules(directories): + """remove submodules of `directories` from `sys.modules`""" + for modname, module in sys.modules.items(): + modfile = getattr(module, '__file__', None) + if modfile: + for directory in directories: + if modfile.startswith(directory): + del sys.modules[modname] + break + def is_python_source(filename): """ |