pygobject / pgi

[Unmaintained: Use PyGObject instead] GTK+ / GObject Introspection Bindings for PyPy.
GNU Lesser General Public License v2.1
74 stars 16 forks source link

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:

.. _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