qlinks architecture diagnosis

Static import analysis · commit b9e2e3751a60
Python modules193
Top-level packages19
Source lines100,089
Module edges625
Implementation SCCs0
Surface/re-export SCCs0
Boundary violations0
Broad architecture guardrails pass. No implementation import-time cycles. No import-time package cycles.

Package dependency overview

Arrows point from a package to the package it imports. Vertical placement follows dependency depth, so lower nodes tend to be architectural foundations. Edge thickness represents the number of resolved internal import references.

qlinks1 files · 0 deps backends2 files · 0 deps basis9 files · 2 deps builders4 files · 3 deps caging58 files · 8 deps constraints11 files · 2 deps conventions2 files · 1 deps distributed1 files · 0 deps encoded5 files · 5 deps exceptions1 files · 0 deps io3 files · 1 deps lattice8 files · 0 deps local_structure4 files · 0 deps models10 files · 9 deps open_system30 files · 5 deps operators11 files · 3 deps qec10 files · 6 deps variables5 files · 0 deps visualizer18 files · 3 deps

Click a package to highlight its immediate dependencies and dependents. Click empty graph space to reset.

Module explorer

Use this view for targeted diagnosis inside one top-level package. This keeps the report readable even when the repository has hundreds of modules.

Solid edges include eager module-scope imports; dashed edges are type-only or function-local dependency references.

Package metrics

PackageFilesLinesFan-inFan-outImports inImports out
qlinks.caging583955548525
qlinks.open_system302409905034
qlinks.visualizer181100203015
qlinks.models105106391237
qlinks.qec10469006015
qlinks.constraints113479321315
qlinks.operators113053431416
qlinks.basis9203072209
qlinks.lattice8198570320
qlinks.encoded5169045118
qlinks.io38290101
qlinks.builders47182326
qlinks.variables565480430
qlinks.local_structure455120250
qlinks.distributed12740000
qlinks.backends22243040
qlinks.conventions21051111
qlinks1280000
qlinks.exceptions1170000

Coupling hotspots

Highest fan-out

ModuleFan-outImport refsLines
qlinks.caging1818395
qlinks.open_system.constructions.deprecated.cage16164361
qlinks.open_system.constructions.cage_lindblad15153327
qlinks.open_system1313315
qlinks.caging.local_search1010189
qlinks.constraints101097
qlinks.models.qlm10101200
qlinks.operators1010117
qlinks.caging.analysis.environment.diagnosis99342
qlinks.caging.local_search.qdm99584
qlinks.models99118
qlinks.qec.profile814733
qlinks.qec.sector_matching811710
qlinks.caging.local_search.certification881124
qlinks.caging.stability.qdm881690

Highest fan-in

ModuleFan-inImport refsLines
qlinks.variables434323
qlinks.lattice323237
qlinks.basis202049
qlinks.caging.local_search.types14141749
qlinks.constraints121297
qlinks.caging.nullspace111186
qlinks.operators1111117
qlinks.constraints.base1010267
qlinks.models.base1010970
qlinks.open_system.backend1010174
qlinks.caging.analysis.environment.contracts99357
qlinks.caging.candidate9937
qlinks.models.local_terms9968
qlinks.operators.base99257
qlinks.visualizer.basis.styles99155

Cycle diagnostics

Import-time SCCs use only eager module-scope imports and are split into API/re-export cycles (package initializers or known compatibility facades) versus implementation cycles. The secondary “type/lazy static” entries appear only when TYPE_CHECKING and function-local imports are included, so intentional typing or cycle-breaking imports are not mistaken for eager import cycles. Package-level import-time cycles are reported separately in the summary.

KindModulesStrongly connected component
None detected.

Architecture guardrails

The report mirrors the broad dependency rules in AGENTS.md: caging/open-system separation, neutral local structure, temporary-facade isolation, and the focused local-search ordering. The dedicated pytest architecture tests remain the blocking source of truth for CI.

RuleSourceTargetLocation
None detected.

Interpretation

Treat fan-in/fan-out and line count as navigation aids, not quality scores. A large scientific module can be legitimate; the strongest warning signs are cross-layer violations, strongly connected components, and high coupling that crosses responsibility boundaries.