vtraag / leidenalg

Implementation of the Leiden algorithm for various quality functions to be used with igraph in Python.
GNU General Public License v3.0
575 stars 77 forks source link

Externalize the C++ library #119

Closed vtraag closed 1 year ago

vtraag commented 1 year ago

In an effort to also try to provide a separate C++ library (available now from https://github.com/vtraag/libleidenalg), this PR tries to make it possible to simply install the Python interface and link against the separate C++ library.

The idea is to simply build against the shared library, and let cibuildwheel "repair" the wheel in order to provide binary wheels with all necessary dependencies included. In other environments, e.g. conda, the shared libleidenalg library could be provided by that package provider. The source package of leidenalg will then no longer contain the necessary library, and this should first be installed separately. Since the binary wheels should cater to most common platforms and Python versions, this should not be an issue for most users. Doing this allows to substantially simplify the current setup (i.e. setup.py).

There might be some more changes necessary, but in principle this now works properly locally. The CI will still need to be adapted accordingly, as well as documentation.