summaryrefslogtreecommitdiff
path: root/modutils.py
diff options
context:
space:
mode:
authorAdrien Di Mascio <Adrien.DiMascio@logilab.fr>2009-08-04 18:36:34 +0200
committerAdrien Di Mascio <Adrien.DiMascio@logilab.fr>2009-08-04 18:36:34 +0200
commitec54cda5aae89144345adb1545239af7c55fd470 (patch)
tree4685d070cb80192df9a38a8bc6c0065e03372f98 /modutils.py
parentd401c140c6d0f791da7a3f3d4090529f86933c4b (diff)
downloadlogilab-common-ec54cda5aae89144345adb1545239af7c55fd470.tar.gz
[modutils] new cleanup_sys_modules function (backported from yams)
Diffstat (limited to 'modutils.py')
-rw-r--r--modutils.py10
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):
"""