Skill Tracer
Skills › Scientific Agent Skills › networkx › review.md

review.md

91 lines · skills/networkx/references/review.md at 5f2bc03

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# NetworkX 3.7 review and validation
2
3Reviewed 2026-10-01 against the released NetworkX 3.7 wheel and official stable
4reference, not the development `latest` documentation. Python requires >=3.12
5and excludes 3.14.1. Record the installed version in each analysis.
6

NetworkX 3.7 review and validation

Reviewed 2026-10-01 against the released NetworkX 3.7 wheel and official stable reference, not the development latest documentation. Python requires >=3.12 and excludes 3.14.1. Record the installed version in each analysis.

Raw lines 1 to 6
7## Executed scope
8
9The repository suite `tests/networkx/test_examples.py` executes documentation
10recipes against synthetic graphs and temporary files. Its checks cover:
12- Weighted route/length agreement, inward directed closeness, connectivity
13 preconditions, matching cardinality versus weight, flows, traversal, induced
14 subgraph matching, clustering, centrality and community objectives.
15- All generator code blocks, including degree-sequence preservation before
16 simplification, current bipartite keywords and ordered-DAG isolate retention.
17- Dense/sparse zero-weight edges, labels and directedness; parallel-edge keys
18 and isolates through node-link JSON; GraphML types; GML/GEXF/Pajek topology;
19 adjacency/tree/Cytoscape JSON; CSV rejection cases; compressed adjacency
20 lists; local SQL and dense/sparse Matrix Market input.
21- Matplotlib drawing blocks with a noninteractive backend, Plotly figure schema,
22 standalone PyVis HTML without browser launch or mutation of the source graph,
23 and a synthetic projected GeoPandas/momepy shapefile round trip.
25Test stack: Python 3.13.3, NetworkX 3.7, NumPy 2.5.3, SciPy 1.18.1,
26pandas 3.0.6, Matplotlib 3.11.2, Plotly 7.1.0, PyVis 0.3.2,
27GeoPandas 1.2.0 and momepy 1.0.0. Run from the repository:
29```bash
30python tests/run_all.py --isolated networkx
31```
33The audit also resolved every referenced NetworkX symbol (excluding names
34explicitly described as removed) and bound every documented NetworkX function
35call against released signatures. Signature checks do not prove runtime behavior
36for arbitrary data, graph classes or backends.

Executed scope

The repository suite tests/networkx/test_examples.py executes documentation recipes against synthetic graphs and temporary files. Its checks cover:

  • Weighted route/length agreement, inward directed closeness, connectivity preconditions, matching cardinality versus weight, flows, traversal, induced subgraph matching, clustering, centrality and community objectives.
  • All generator code blocks, including degree-sequence preservation before simplification, current bipartite keywords and ordered-DAG isolate retention.
  • Dense/sparse zero-weight edges, labels and directedness; parallel-edge keys and isolates through node-link JSON; GraphML types; GML/GEXF/Pajek topology; adjacency/tree/Cytoscape JSON; CSV rejection cases; compressed adjacency lists; local SQL and dense/sparse Matrix Market input.
  • Matplotlib drawing blocks with a noninteractive backend, Plotly figure schema, standalone PyVis HTML without browser launch or mutation of the source graph, and a synthetic projected GeoPandas/momepy shapefile round trip.

Test stack: Python 3.13.3, NetworkX 3.7, NumPy 2.5.3, SciPy 1.18.1, pandas 3.0.6, Matplotlib 3.11.2, Plotly 7.1.0, PyVis 0.3.2, GeoPandas 1.2.0 and momepy 1.0.0. Run from the repository:

python tests/run_all.py --isolated networkx

The audit also resolved every referenced NetworkX symbol (excluding names explicitly described as removed) and bound every documented NetworkX function call against released signatures. Signature checks do not prove runtime behavior for arbitrary data, graph classes or backends.

Raw lines 7 to 37
Runs code python tests/run_all.py :30
38## Scientific and interoperability limits
40Reference snippets are illustrative API patterns where they need user files,
41preexisting graph variables or optional engines; they are not one sequential
42program. Graphviz/pydot/pygraphviz rendering, LEDA input, accelerated backends and
43interactive browser/notebook behavior were documentation-reviewed only. No
44large empirical network or scientific null-ensemble inference was performed.
45Numerical/serialization tests establish these local contracts, not biological,
46social, causal or predictive validity.
48- A weight called `weight` is not inherently a distance. Explicitly select
49 cost/distance versus transition/interaction strength and validate missing,
50 zero, negative and nonfinite values for the chosen method.
51- Degree-preserving null graphs require preservation of the relevant graph
52 class and constraints. A simple projection of a configuration multigraph
53 changes its degrees. Seeded outputs do not establish unbiased sampling,
54 adequate mixing, community significance or a fitted power-law distribution.
55- Conversion success does not imply complete preservation. Save node order,
56 isolates, IDs, graph class, multiedge keys and supported attribute schemas;
57 check them after a round trip. A matrix typically sums parallel weights.
58- A projected CRS can use feet or other units. momepy lengths use those units;
59 projection suitability and a conversion to metres are separate decisions.
60- Layout coordinates, marker size and color are presentation choices. Keep
61 seeds, weight semantics, legends and mappings with the output.

Scientific and interoperability limits

Reference snippets are illustrative API patterns where they need user files, preexisting graph variables or optional engines; they are not one sequential program. Graphviz/pydot/pygraphviz rendering, LEDA input, accelerated backends and interactive browser/notebook behavior were documentation-reviewed only. No large empirical network or scientific null-ensemble inference was performed. Numerical/serialization tests establish these local contracts, not biological, social, causal or predictive validity.

  • A weight called weight is not inherently a distance. Explicitly select cost/distance versus transition/interaction strength and validate missing, zero, negative and nonfinite values for the chosen method.
  • Degree-preserving null graphs require preservation of the relevant graph class and constraints. A simple projection of a configuration multigraph changes its degrees. Seeded outputs do not establish unbiased sampling, adequate mixing, community significance or a fitted power-law distribution.
  • Conversion success does not imply complete preservation. Save node order, isolates, IDs, graph class, multiedge keys and supported attribute schemas; check them after a round trip. A matrix typically sums parallel weights.
  • A projected CRS can use feet or other units. momepy lengths use those units; projection suitability and a conversion to metres are separate decisions.
  • Layout coordinates, marker size and color are presentation choices. Keep seeds, weight semantics, legends and mappings with the output.
Raw lines 38 to 62
63## Official sources
65- [NetworkX 3.7 release notes](https://networkx.org/documentation/stable/release/release_3.7.html):
66 native Leiden, BFS-predecessor deprecation, Python changes and sparse-zero notes.
67- [Current reference](https://networkx.org/documentation/stable/reference/index.html)
68 and [graph classes](https://networkx.org/documentation/stable/reference/classes/index.html):
69 graph types, views, attributes, degree and multiedge semantics.
70- [Betweenness](https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.centrality.betweenness_centrality.html),
71 [closeness](https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.centrality.closeness_centrality.html),
72 [matching](https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.matching.max_weight_matching.html)
73 and [Leiden](https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.community.leiden.leiden_communities.html):
74 distance direction, approximation, objectives and return types.
75- [Configuration model](https://networkx.org/documentation/stable/reference/generated/networkx.generators.degree_seq.configuration_model.html):
76 multigraph degree and simplification contract.
77- [Dense conversion](https://networkx.org/documentation/stable/reference/generated/networkx.convert_matrix.from_numpy_array.html),
78 [sparse conversion](https://networkx.org/documentation/stable/reference/generated/networkx.convert_matrix.from_scipy_sparse_array.html),
79 [node-link JSON](https://networkx.org/documentation/stable/reference/readwrite/generated/networkx.readwrite.json_graph.node_link_data.html)
80 and [GraphML writer](https://networkx.org/documentation/stable/reference/readwrite/generated/networkx.readwrite.graphml.write_graphml.html):
81 nonedge sentinel, explicit zeros, field names and supported interchange.
82- [SciPy Matrix Market reader](https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.mmread.html):
83 explicit sparse-array output and dense/sparse dispatch.
84- [Spring layout](https://networkx.org/documentation/stable/reference/generated/networkx.drawing.layout.spring_layout.html)
85 and [backends](https://networkx.org/documentation/stable/reference/backends.html):
86 automatic method selection, weight semantics and dispatch limits.
87- [Plotly network graphs](https://plotly.com/python/network-graphs/),
88 [PyVis API](https://pyvis.readthedocs.io/en/latest/documentation.html),
89 [momepy graph import](https://docs.momepy.org/stable/api/momepy.gdf_to_nx.html)
90 and [graph export](https://docs.momepy.org/stable/api/momepy.nx_to_gdf.html):
91 current optional-integration contracts, with released-wheel runtime checks.

Official sources

Raw lines 63 to 91
Starts an agent dispatch :83