[gt-users] extending python bindings

Sascha Steinbiss steinbiss at zbh.uni-hamburg.de
Sun Nov 23 21:03:05 CET 2008


Hi Brent,

> understood, i'll wait for your branch to be merged before i try too 
> much more tinkering. custom track stuff looks cool.

The changes will find their way to the master soon. I guess a tutorial 
on the new features will be ready soon as well.

>> The code looks ok, though the introduction of another FeatureNode
>> class may be confusing... maybe one could think about extending the
>> current class to allow for creating new nodes on the C side in
>> addition to wrapping pointers.
 > i agree, but didnt know what to do. do you mean something like below?
 >
 > class FeatureNode(GenomeNode):
 >     __init__(self, *args, **kwargs):
 >         if len(args) == 1: # node_ptr
 >                # init with pointer
 >         else:
 >              # init with python attrs

This will work, but I guess I have to look deeper into Python features
to see if it couldn't be done another way... there is no way to use
multiple 'constructors' in Python, or is there?

> in extended/genome_node.py, why dont you need to declare the args and
>  restype for: gtlib.gt_genome_node_ref or
> gtlib.gt_genome_node_delete? i dont understand how that is working.

As these C functions are not supposed to be called by a user of the
wrapped classes, they need no type checking. Per default, a ctypes call 
returns an integer (in this case memory addresses pointing to GenomeNode 
instances), which are then passed to other C functions only. Without the
need to implicitly convert anything to anything, I kept pushing around 
raw addresses.

> thanks again, -brent

No problem,
Sascha

-- 
Sascha Steinbiss
Zentrum für Bioinformatik
Universität Hamburg
Bundesstr. 43
20146 Hamburg
Germany

Email:  steinbiss at zbh.uni-hamburg.de
URL:    http://www.zbh.uni-hamburg.de/steinbiss
Phone:  +49 (40) 42838 7322
FAX:    +49 (40) 42838 7312



More information about the gt-users mailing list