[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