libbdsg icon indicating copy to clipboard operation
libbdsg copied to clipboard

Fix some Python bindings

Open jmonlong opened this issue 5 months ago • 1 comments

This fixes two issues with the Python bindings.

  1. The has_distances functions overloaded a static function and another function, and it created errors with importing the bdsg module in Python. The static has_distances, the one dealing with record_t, was renamed to record_has_distances.

  2. The constructor for PackedPositionOverlay that took a hangle graph as input was missing because of the recent addition of an optional parameter which uses std::unordered_set. It was specifically excluded from the bindings in the config.cfg. I think I've made it work by tweaking the binding hooks.

This might not fix all the bindings but at least now we can use the PackedPositionOverlay in python, like:

import bdsg

pg = bdsg.bdsg.PackedGraph()
pg.deserialize('graph.pg')
ppg = bdsg.bdsg.PackedPositionOverlay(pg)

jmonlong avatar Sep 18 '25 13:09 jmonlong

The test on Mac fails because the cmake minimum version used by https://github.com/simongog/libdivsufsort is too old, apparently. I don't know how to deal with this.

jmonlong avatar Sep 18 '25 13:09 jmonlong