I have checked :
https://www.gtk.org/docs/language-bindings/python
https://gitlab.gnome.org/GNOME/pygobject/
https://pygobject.readthedocs.io/en/latest/
https://python-gtk-3-tutorial.readthedocs.io/en/latest/
http://lazka.github.io/pgi-docs/
What I could find is:
#!/usr/bin/python3
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Clutter', '1.0')
gi.require_version('ClutterX11', '1.0')
gi.require_version('WebKit2', '4.1')
gi.require_version('WebKit2WebExtension', '4.1')
gi.require_version('Polkit', '1.0')
from gi.repository import GLib, Gio, Gtk, GObject, Pango, GdkPixbuf, Clutter, ClutterX11, WebKit2, WebKit2WebExtension, Soup, Polkit
I mean I can include GLib, Gio, Gtk, GObject, Pango, GdkPixbuf ... in python.
But in https://gjs-docs.gnome.org/ , there are Shell, St, Meta... etc.
For example, to get the running apps I need apps = Shell.AppSystem.get_default().get_running(). For that I need to include Shell like:
from gi.repository import Meta, Shell, St
Which I can not do. I can not access these libraries from python. What am I missing? Have they not been ported to python? Which gnome libraries can I access from python? How to get access to these libraries from python?
As already mentioned in the comment section of the question, Meta, Shell & St are actually private. However, we can use them with the following method (this is a gjs example):
Please check https://gist.github.com/buzztaiki/1492431 for more details. Please also look at https://discourse.gnome.org/t/get-running-app-from-gjs-script/16211
P.S. Depending on your setup, the libraries can be on different location. Hopefully you will find them in
/usr/lib/.