Deep Thought is the perfect codename for (a release of) a community detection library.
> [she] is a computer that was created by a pan-dimensional, hyper-intelligent species of beings (whose three-dimensional protrusions into our universe are ordinary white mice) to come up with the [Answer to The Ultimate Question of Life, the Universe, and Everything](https://en.wikipedia.org/wiki/Answer_to_The_Ultimate_Question_of_Life,_the_Universe,_and_Everything). Deep Thought is the size of a small city.
>
>When, after seven and a half million years of calculation, the answer finally turns out to be [42](https://en.wikipedia.org/wiki/42_(number)#The_Hitchhiker's_Guide_to_the_Galaxy), Deep Thought admonishes Loonquawl and Phouchg (the receivers of the Ultimate Answer) that:
> **"[she] checked it very thoroughly, and that quite definitely is the answer. I think the problem, to be quite honest with you is that you've never actually known what the question was."**
>
> Douglas Adams - Hitchhiker's Guide to the Galaxy
Deep Thought captures the main aspects of Community Detection:
- Algorithms might take a long time to compute;
- Practitioners search for insights when they decide to apply CD to their data;
- Being the problem ill-posed the answer an algorithm provides makes sense only if the research question, the data, and the assumptions are well-stated and understood from the very beginning.
What's Changed
This version reduces the number of available algorithms to simplify the dependency chain and installation process.
Dependencies upgraded (major breaking changes)
- networkx >= 3.0
Dependencies removed:
- karateclub (hopefully, it will be reintroduced in a later release)
Dependencies made optional:
- pyclustering
- leidenalg
- pycombo
- networkit
- infomap
New CD algorithms:
- Bayan (depends on bayanpy - optional dependency)
Additional notes:
- PiPy installation now has four modalities: vanilla; [C] that includes packages depending on C code (safe for *nix OS); [pypi] that provides for all those pypi dependencies that are not satisfiable on conda; [all] that includes all (pip installable - except for graph-tool) dependencies.
- `graph-tool` support is maintained, but its dependency is not explicitly introduced (neither in pypi nor in the conda distributions). Its installation has to be fulfilled separately from `cdlib`.
- `bayanpy` depends on [Gouroby](https://www.gurobi.com/) solver that needs to be installed separately.
- if the `infomap` package is not installed, `cdlib` will fall back on the `python-igraph` implementation of such an algorithm.
**Full Changelog**: https://github.com/GiulioRossetti/cdlib/compare/v0.2.6...v0.3.0