Dear Tamas -
Thanks for the reply. I got a basic sample working that sends the result of
g.__graph_as_cobject() from Python to C and casts that pointer it an igraph_t*.
I think this means the pointer reference is borrowed and that I can avoid
managing de-referencing in the C code but I still need to test for memory
leaks. I don’t understand the relative advantages of raw_pointer() vs
graph_as_cobject().
If PyIGraph_ToCGraph() is the preferred method, I wish the igraphmodule_api.h
was distributed with the iGraph C library so it would be in a standard location
<igraph/igraphmodule_api.h> . An alternative would be to provide a function
like numpy.distutils.misc_util.get_numpy_include_dirs() that returns the
install path for python iGraph. I think this would make the setup.py for
iGraph-based extensions more portable.
The linked git shows a way to use C-iGraph functions on a graph created in
Python and how to return computation results as both floats and numpy arrays.
The numpy arrays are created in Python and filled by the C code. It is rough
code, pieced together from many sources, and the sample computations are
trivial examples. I would welcome feedback that improves code quality or
implements better practices.
https://github.com/chrisjcameron/python_igraph_numpy_c_ext
<https://github.com/chrisjcameron/python_igraph_numpy_c_ext>
Thanks,
Chris
_______________________________________________
igraph-help mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/igraph-help