[gt-users] extending python bindings

Gordon Gremme gremme at gmail.com
Fri Nov 21 12:52:21 CET 2008


> i'm not sure how to handle the strand enum with ctypes. and i'm not
> sure of the relation between the _api.h files and
> the corresponding .h files...
> any help on that or comments on the code are welcome.

Some additional remarks on the _api.h files in general and the
GtFeatureNode API in particular.

With the _api.h files we try to solve the conflict between the need of
stable APIs for libgenometools users and the need to evolve the
implementation of libgenometools for GenomeTools developers.

All interfaces which can be found in _api.h files define the exposed
API of libgenometools.
They should be documented and the documentation is used to generate
the C API documentation at http://genometools.org/libgenometools.html
We try to keep this public API fairly stable and all bindings should
only use this API.

In contrast, all interfaces which are not defined in the _api.h files
are more likely to change, because we can be sure that there are no
external dependencies which would break when changing them. This
allows us to improve upon the APIs, since often a better API becomes
clear after using the first implementation.

We move APIs from the ``regular'' header files to the API headers if
interfaces stabilize, but pretty much on an ``as needed'' basis.
That is, if you see something in regular headers which would be nice
to have in the public API, just let me know and we discuss moving it.

Concerning the GtFeatureNode API: I will make many APIs public today
to allow the manual construction of GtFeatureNodes on the binding
level.

Gordon


More information about the gt-users mailing list