From 636d8cfb423bbdf271df25efbc13c91420ebefe8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 10 Dec 2010 00:47:33 +0100 Subject: s4-python: Add convenience function for forcibly importing bundled package. --- source4/scripting/python/samba/__init__.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'source4/scripting/python') diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py index b6c53f4b2c..6fcac16691 100644 --- a/source4/scripting/python/samba/__init__.py +++ b/source4/scripting/python/samba/__init__.py @@ -324,6 +324,21 @@ def import_bundled_package(modulename, location): "samba.external.%s" % modulename, fromlist=["samba.external"]) +def force_bundled_package(packagename, location): + """Forcibly use the bundled package. + + This will first unload the system module and then load the bundled one. + + :param packagename: The package name + :param location: Location to add to sys.path (can be relative to + ${srcdir}/lib) + """ + for m in sys.modules.keys(): + if m.startswith("%s." % packagename): + del sys.modules[m] + import_bundled_package(packagename, location) + + def ensure_external_module(modulename, location): """Add a location to sys.path if an external dependency can't be found. -- cgit