python-igraph icon indicating copy to clipboard operation
python-igraph copied to clipboard

igraphmodule_Graph_dominator always boxes returned ints and doesn't expose all C function outputs

Open dcolascione opened this issue 5 months ago • 1 comments

Describe the bug

The igraphmodule_Graph_dominator shouldn't box its return values in Python ints. I generally prefer to use graph libraries in such a way that there's no direct relationship between the size of my data set and the number of Python heap objects I have to allocate. Additionally, the underlying C function is capable of returning three outputs (a graph and a list of nodes left out), and the Python binding ignores all of them except the dominator list.

Expected behavior

The function should have a parameter that asks it to return some kind of Python-buffer-protocol-supporting object allowing for batch extraction of the dominator list.

Current behavior

Returns list[int]

Version information

Mainline.

dcolascione avatar Sep 07 '25 13:09 dcolascione

Additionally, the underlying C function is capable of returning three outputs (a graph and a list of nodes left out), and the Python binding ignores all of them except the dominator list.

PRs welcome for this one, should be targeted on the develop branch.

As for the efficiency of the data transfer to Python, a new Python interface is in the works: https://github.com/igraph/python-igraph-ctypes It will use numpy arrays and will transfer/represent such data more efficiently. Progress is slow due to limited resources/funding/manpower.

szhorvat avatar Sep 07 '25 19:09 szhorvat