pgi
pgi copied to clipboard
[Unmaintained: Use PyGObject instead] GTK+ / GObject Introspection Bindings for PyPy.
PGI - Pure Python GObject Introspection Bindings
GObject Introspection bindings written in pure Python using ctypes_ and cffi_ (optional). API compatible with PyGObject_.
Development Status:
WARNING: Lots of things are not implemented/supported.
See the 'examples' directory for working examples. Anything else will probably not work.
Code: https://github.com/lazka/pgi
License: LGPL 2.1+
Requirements:
- CPython_ 2.7 or CPython_ 3.3+ or PyPy_ 1.9+ or PyPy3_ 2.3+
- libgirepository_ 1.0
- cffi_ 0.8+ (optional, but needed for tests)
- cairocffi_ 0.4+ (optional, for cairo support)
.. _ctypes: http://docs.python.org/2/library/ctypes.html .. _cffi: http://cffi.readthedocs.org/en/latest/ .. _cairocffi: http://pythonhosted.org/cairocffi/ .. _PyGObject: http://git.gnome.org/browse/pygobject/ .. _libgirepository: http://git.gnome.org/browse/gobject-introspection/ .. _CPython: http://www.python.org/ .. _PyPy: http://pypy.org/ .. _PyPy3: http://pypy.org/
Usage
::
from pgi.repository import Gtk, GObject
or (preferred)
::
import pgi
pgi.install_as_gi()
from gi.repository import Gtk, GObject
Search paths
Typelibs will be loaded from paths in the environment variable
`GI_TYPELIB_PATH` and `/usr/lib/girepository-1.0/`.
Shared libraries from paths in `LD_LIBRARY_PATH` and the default system
search paths (see dlopen(3)).
Documentation
-------------
PGI docs:
* https://pgi.readthedocs.org
Autogenerated GI docs:
* https://github.com/lazka/pgi-docgen
* http://lazka.github.io/pgi-docs
Tests
-----
.. image:: https://travis-ci.org/lazka/pgi.svg?branch=master
:target: https://travis-ci.org/lazka/pgi
- `./setup.py test` will run unit tests using PGI and PyGObject
- `./setup.py test --pgi-only` to skip PyGObject tests
- `./setup.py test --filter=StructTest` to run tests which include
`StructTest` (regexp)
`./tests/libs/` includes additional libraries that will be used for testing
if present. Call `make` in `./tests/libs/` to build them.
- `./setup.py quality` will run pep8 and pyflakes tests
- `./setup.py coverage` will create a test coverage report