python: Fix using overrides when not building PyGObject
authorThibault Saunier <tsaunier@igalia.com>
Thu, 14 Oct 2021 20:01:01 +0000 (17:01 -0300)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 15 Oct 2021 20:51:41 +0000 (20:51 +0000)
commit1babccfe503de346dfd9722348e2acead742b70a
treea773950d80c8024711180cad4fdae89f1035e5ed
parentba79339d56299094d2aab12873e360d55c119b41
python: Fix using overrides when not building PyGObject

Since 547570cd790f2b2e390edc1dfb5df4c7a33de45c we do not always build
PyGObject and our development environment is broken when trying to use
GStreamer python when built against system PyGObject with the following
error importing Gst in there:

```
12345678** (gst-plugin-scanner:710617): CRITICAL **: 11:45:02.343: can't find gi.repository.Gst
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/gi/repository/__init__.py", line 23, in <module>
    from ..importer import DynamicImporter
  File "/usr/lib64/python3.9/site-packages/gi/importer.py", line 33, in <module>
    from .overrides import load_overrides
ImportError: cannot import name 'load_overrides' from 'gi.overrides' (/var/home/thiblahute/devel/gstreamer/gstreamer/subprojects/gst-editing-services/bindings/python/gi/overrides/__init__.py)
Factory Details:
```

The approach to fixing it is to implement override `gi` in
`gst-python/gi/` which we add to `PYTHONPATH`) and in there reset the
`gi` module to the right place and we get overrides from paths from
`_GI_OVERRIDES_PATH` we set in `gst-env.py` which points to all the
overrides that will be installed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1155>
gst-env.py
meson.build
subprojects/gst-python/gi/__init__.py [new file with mode: 0644]
tests/meson.build
tests/python/meson.build [new file with mode: 0644]
tests/python/python-devenv-overrides.py [new file with mode: 0755]