import os import sys import imp class GstOverrideImport: def find_module(self, fullname, path=None): if fullname in ('gi.overrides.Gst', 'gi.overrides._gi_gst'): return self return None def load_module(self, name): if name in sys.modules: return sys.modules[name] fp, pathname, description = imp.find_module(name.split('.')[-1], [ os.environ.get('GST_OVERRIDE_SRC_PATH'), os.environ.get('GST_OVERRIDE_BUILD_PATH'), ]) try: module = imp.load_module(name, fp, pathname, description) finally: if fp: fp.close() sys.modules[name] = module return module if sys.version_info.major >= 3: sys.meta_path.insert(0, GstOverrideImport()) else: import gi.overrides gi.overrides.__path__.append(os.environ.get('GST_OVERRIDE_SRC_PATH')) gi.overrides.__path__.append(os.environ.get('GST_OVERRIDE_BUILD_PATH'))