File: overrides_hack.py

package info (click to toggle)
gst-python1.0 1.22.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 856 kB
  • sloc: python: 7,429; ansic: 1,280; makefile: 30
file content (34 lines) | stat: -rw-r--r-- 984 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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'))