s4-python: Add convenience function for forcibly importing bundled
[metze/samba/wip.git] / source4 / scripting / python / samba / __init__.py
index b6c53f4b2c1bbe0408fcbebd2b7c755cde627362..6fcac16691ee85af90722701faa0c31abd14ee22 100644 (file)
@@ -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.