CoNexDat / CoNexDat/LaNet-vi

d-cores crash through Network/CLI (Component built with wrong field names) and use the older algorithm

Open
#21 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
8
Forks
0
Avg merge
6h 10m
Merged PRs (30d)
16

Description

Found by the September 2026 comparison against the C++ sources (see docs/migration-from-cpp.md on branch docs/legacy-heritage (PR #17)).

```
lanet-vi visualize --input d.txt --directed --decomp dcores --output d.png
ValidationError: 1 validation error for Component
component_id Field required
```

`decomposition/dcores.py` `find_components_by_dcore` (~lines 227-232) passes `id=`/`index=` to `Component`, whose fields are `component_id`/`index`. `Network.decompose(DCORES)` always calls it, so the whole d-core path is broken; `tests/test_dcores.py` only exercises `compute_dcores`.

Also: `compute_dcores` implements independent in-cores and out-cores per node, which is the older `graph_dcores_old.cpp`. The later `Source/graph_dcores.cpp` computes, for each out-threshold l, the in-core number k of every node in the (0,l)-out-core (a per-l table written to `dcores_list.txt`). Decide which definition the package should offer (possibly both) and fix the docstring that claims a port of `graph_dcores.cpp`.

Contributor guide

Open the contributing guide

Research direction

Start with decomposition/dcores.py, Network.decompose(DCORES), and tests/test_dcores.py, then compare the documented behavior with docs/migration-from-cpp.md and the referenced C++ sources. Confirm the intended d-core definition, make the CLI path work, extend coverage beyond compute_dcores, and update the docstring to match the chosen behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
backend, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.