Skip to content

Commit a0c4a19

Browse files
chore: pyqual auto-fix iteration
1 parent 824b9ea commit a0c4a19

File tree

9 files changed

+78
-76
lines changed

9 files changed

+78
-76
lines changed

project/analysis.toon.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ HEALTH[8]:
55
🔴 GOD regix/benchmark.py = 936L, 9 classes, 31m, max CC=12
66
🟡 CC _compute_delta CC=16 (limit:15)
77
🟡 CC compare CC=16 (limit:15)
8-
🟡 CC capture CC=17 (limit:15)
98
🟡 CC diff CC=15 (limit:15)
10-
🟡 CC collect CC=19 (limit:15)
9+
🟡 CC capture CC=17 (limit:15)
1110
🟡 CC filter CC=15 (limit:15)
11+
🟡 CC collect CC=19 (limit:15)
1212
🟡 CC detect_smells CC=17 (limit:15)
1313

1414
REFACTOR[3]:

project/calls.mmd

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,97 @@
11
flowchart LR
22
subgraph regix__Regix
3-
regix__Regix____init__["__init__"]
43
regix__Regix__history["history"]
4+
regix__Regix____init__["__init__"]
55
regix__Regix__snapshot["snapshot"]
66
end
77
subgraph regix__backends
8-
regix__backends__get_backend["get_backend"]
98
regix__backends__structure_backend__StructureBackend__collect["collect"]
9+
regix__backends__get_backend["get_backend"]
1010
regix__backends__structure_backend___analyse_function["_analyse_function"]
1111
end
1212
subgraph regix__benchmark
13-
regix__benchmark__build_regix_suite["build_regix_suite"]
14-
regix__benchmark___make_config_parse_probe["_make_config_parse_probe"]
15-
regix__benchmark__BenchmarkReporter__print_json["print_json"]
16-
regix__benchmark__BenchmarkReporter__print_plain["print_plain"]
17-
regix__benchmark__BenchmarkReporter__print["print"]
1813
regix__benchmark__BackendProbe__run["run"]
19-
regix__benchmark__main["main"]
20-
regix__benchmark___make_gates_probe["_make_gates_probe"]
14+
regix__benchmark__BenchmarkReporter__print_plain["print_plain"]
2115
regix__benchmark___make_snapshot_probe["_make_snapshot_probe"]
16+
regix__benchmark___make_config_parse_probe["_make_config_parse_probe"]
17+
regix__benchmark__BenchmarkReporter__print["print"]
2218
regix__benchmark___make_compare_probe["_make_compare_probe"]
19+
regix__benchmark___make_gates_probe["_make_gates_probe"]
20+
regix__benchmark__build_regix_suite["build_regix_suite"]
21+
regix__benchmark__main["main"]
22+
regix__benchmark__BenchmarkReporter__print_json["print_json"]
2323
end
2424
subgraph regix__cache
25-
regix__cache___cache_dir["_cache_dir"]
25+
regix__cache__store["store"]
2626
regix__cache__lookup["lookup"]
2727
regix__cache__clear["clear"]
2828
regix__cache___cache_key["_cache_key"]
29-
regix__cache__store["store"]
29+
regix__cache___cache_dir["_cache_dir"]
3030
end
3131
subgraph regix__cli
32-
regix__cli__status["status"]
33-
regix__cli___load_config["_load_config"]
34-
regix__cli__history["history"]
35-
regix__cli__gates["gates"]
3632
regix__cli__diff["diff"]
33+
regix__cli__gates["gates"]
34+
regix__cli__history["history"]
3735
regix__cli__snapshot["snapshot"]
36+
regix__cli___load_config["_load_config"]
37+
regix__cli__status["status"]
3838
end
3939
subgraph regix__compare
4040
regix__compare___compute_delta["_compute_delta"]
41-
regix__compare___compare_symbol_metrics["_compare_symbol_metrics"]
4241
regix__compare__compare["compare"]
42+
regix__compare___compare_symbol_metrics["_compare_symbol_metrics"]
4343
end
4444
subgraph regix__config
4545
regix__config__RegressionConfig__from_file["from_file"]
4646
end
4747
subgraph regix__gates
48-
regix__gates__check_gates["check_gates"]
4948
regix__gates___passes["_passes"]
49+
regix__gates__check_gates["check_gates"]
5050
end
5151
subgraph regix__git
52-
regix__git__get_changed_files["get_changed_files"]
52+
regix__git__read_local_sources["read_local_sources"]
53+
regix__git__resolve_ref["resolve_ref"]
54+
regix__git__is_clean["is_clean"]
5355
regix__git__list_commits["list_commits"]
5456
regix__git__read_tree_sources["read_tree_sources"]
55-
regix__git__checkout_temporary["checkout_temporary"]
56-
regix__git__get_dirty_files["get_dirty_files"]
57-
regix__git__resolve_ref["resolve_ref"]
5857
regix__git___run_git["_run_git"]
59-
regix__git__is_clean["is_clean"]
60-
regix__git__read_local_sources["read_local_sources"]
58+
regix__git__get_dirty_files["get_dirty_files"]
59+
regix__git__checkout_temporary["checkout_temporary"]
60+
regix__git__get_changed_files["get_changed_files"]
6161
end
6262
subgraph regix__history
63+
regix__history___compute_trends["_compute_trends"]
6364
regix__history___linear_slope["_linear_slope"]
6465
regix__history___aggregate_snapshot_metrics["_aggregate_snapshot_metrics"]
6566
regix__history__build_history["build_history"]
66-
regix__history___compute_trends["_compute_trends"]
6767
end
6868
subgraph regix__report
69-
regix__report___render_rich["_render_rich"]
7069
regix__report__render["render"]
70+
regix__report___render_rich["_render_rich"]
7171
end
7272
subgraph regix__smells
73-
regix__smells___check_symbol_smells["_check_symbol_smells"]
74-
regix__smells___largest_function["_largest_function"]
7573
regix__smells___avg_func_length["_avg_func_length"]
76-
regix__smells___check_god_function["_check_god_function"]
77-
regix__smells___check_no_delegation["_check_no_delegation"]
78-
regix__smells___func_length["_func_length"]
7974
regix__smells___check_stub_regression["_check_stub_regression"]
80-
regix__smells___count_hollow_signals["_count_hollow_signals"]
81-
regix__smells___was_already_hollow["_was_already_hollow"]
82-
regix__smells___function_count_drop["_function_count_drop"]
8375
regix__smells__detect_smells["detect_smells"]
76+
regix__smells___function_count_drop["_function_count_drop"]
77+
regix__smells___was_already_hollow["_was_already_hollow"]
8478
regix__smells___check_hallucination_proxy["_check_hallucination_proxy"]
79+
regix__smells___check_god_function["_check_god_function"]
80+
regix__smells___count_hollow_signals["_count_hollow_signals"]
81+
regix__smells___func_length["_func_length"]
82+
regix__smells___check_no_delegation["_check_no_delegation"]
83+
regix__smells___largest_function["_largest_function"]
84+
regix__smells___check_symbol_smells["_check_symbol_smells"]
8585
end
8686
subgraph regix__snapshot
8787
regix__snapshot___collect_files["_collect_files"]
88-
regix__snapshot___merge_symbols["_merge_symbols"]
8988
regix__snapshot__capture["capture"]
9089
regix__snapshot___filter_sources["_filter_sources"]
90+
regix__snapshot___merge_symbols["_merge_symbols"]
9191
end
9292
subgraph scripts__check_regression
93-
scripts__check_regression__load_json_file["load_json_file"]
9493
scripts__check_regression__check_regression["check_regression"]
94+
scripts__check_regression__load_json_file["load_json_file"]
9595
end
9696
scripts__check_regression__check_regression --> scripts__check_regression__load_json_file
9797
scripts__check_regression__check_regression --> regix__benchmark__BenchmarkReporter__print
@@ -114,13 +114,6 @@ flowchart LR
114114
regix__Regix____init__ --> regix__config__RegressionConfig__from_file
115115
regix__Regix__snapshot --> regix__snapshot__capture
116116
regix__Regix__history --> regix__history__build_history
117-
regix__snapshot__capture --> regix__snapshot___merge_symbols
118-
regix__snapshot__capture --> regix__git__resolve_ref
119-
regix__snapshot__capture --> regix__backends__get_backend
120-
regix__snapshot__capture --> regix__snapshot___collect_files
121-
regix__snapshot__capture --> regix__git__read_local_sources
122-
regix__snapshot__capture --> regix__git__read_tree_sources
123-
regix__snapshot__capture --> regix__snapshot___filter_sources
124117
regix__cli___load_config --> regix__config__RegressionConfig__from_file
125118
regix__cli__history --> regix__cli___load_config
126119
regix__cli__snapshot --> regix__cli___load_config
@@ -131,12 +124,19 @@ flowchart LR
131124
regix__cli__gates --> regix__snapshot__capture
132125
regix__cli__gates --> regix__gates__check_gates
133126
regix__cli__status --> regix__cli___load_config
134-
regix__report__render --> regix__report___render_rich
127+
regix__snapshot__capture --> regix__snapshot___merge_symbols
128+
regix__snapshot__capture --> regix__git__resolve_ref
129+
regix__snapshot__capture --> regix__backends__get_backend
130+
regix__snapshot__capture --> regix__snapshot___collect_files
131+
regix__snapshot__capture --> regix__git__read_local_sources
132+
regix__snapshot__capture --> regix__git__read_tree_sources
133+
regix__snapshot__capture --> regix__snapshot___filter_sources
135134
regix__cache__lookup --> regix__cache___cache_dir
136135
regix__cache__lookup --> regix__cache___cache_key
137136
regix__cache__store --> regix__cache___cache_dir
138137
regix__cache__store --> regix__cache___cache_key
139138
regix__cache__clear --> regix__cache___cache_dir
139+
regix__report__render --> regix__report___render_rich
140140
regix__smells__detect_smells --> regix__smells___check_god_function
141141
regix__smells__detect_smells --> regix__smells___check_symbol_smells
142142
regix__smells___check_symbol_smells --> regix__smells___check_hallucination_proxy

project/calls.png

16.3 KB
Loading

project/compact_flow.mmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ flowchart TD
2626
regix__history -->|1| regix__snapshot
2727
regix__Regix -->|1| regix__snapshot
2828
regix__Regix -->|1| regix__history
29-
regix__snapshot -->|1| regix__backends
3029
regix__cli -->|1| regix__history
3130
regix__cli -->|1| regix__gates
31+
regix__snapshot -->|1| regix__backends
3232
regix__benchmark -->|1| regix__backends
3333
regix__benchmark -->|1| regix__gates

project/context.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@
9595
- **Classes**: 1
9696
- **File**: `architecture_backend.py`
9797

98-
### regix.backends.docstring_backend
98+
### regix.backends.radon_backend
9999
- **Functions**: 3
100100
- **Classes**: 1
101-
- **File**: `docstring_backend.py`
101+
- **File**: `radon_backend.py`
102102

103103
### regix.backends.vallm_backend
104104
- **Functions**: 3
@@ -172,14 +172,14 @@ Main execution flows into the system:
172172
> Return cached snapshot or None.
173173
- **Calls**: regix.cache._cache_dir, regix.cache._cache_key, path.exists, None.decode, json.loads, Snapshot, SymbolMetrics, gzip.decompress
174174

175-
### regix.backends.docstring_backend.DocstringBackend.collect
176-
> Compute docstring coverage per file.
177-
- **Calls**: str, ast.walk, results.append, ast.parse, isinstance, SymbolMetrics, full.read_text, ast.get_docstring
178-
179175
### regix.backends.radon_backend.RadonBackend.collect
180176
> Collect MI (module-level) and CC (per-function) using radon.
181177
- **Calls**: str, results.append, mi_visit, cc_visit, SymbolMetrics, results.append, full.read_text, SymbolMetrics
182178

179+
### regix.backends.docstring_backend.DocstringBackend.collect
180+
> Compute docstring coverage per file.
181+
- **Calls**: str, ast.walk, results.append, ast.parse, isinstance, SymbolMetrics, full.read_text, ast.get_docstring
182+
183183
### regix.benchmark.ImportProbe.run
184184
- **Calls**: range, min, BenchmarkResult, time.perf_counter, BenchmarkResult, subprocess.run, times.append, time.perf_counter
185185

@@ -322,21 +322,21 @@ snapshot [regix.cli]
322322
- **Key Methods**: regix.backends.structure_backend.StructureBackend.is_available, regix.backends.structure_backend.StructureBackend.version, regix.backends.structure_backend.StructureBackend.collect, regix.backends.structure_backend.StructureBackend._collect_functions
323323
- **Inherits**: BackendBase
324324

325+
### regix.models.GateResult
326+
> Aggregate gate evaluation result.
327+
- **Methods**: 3
328+
- **Key Methods**: regix.models.GateResult.all_passed, regix.models.GateResult.errors, regix.models.GateResult.warnings
329+
325330
### regix.backends.architecture_backend.ArchitectureBackend
326331
> Computes per-function structural metrics via AST for smell detection.
327332
- **Methods**: 3
328333
- **Key Methods**: regix.backends.architecture_backend.ArchitectureBackend.is_available, regix.backends.architecture_backend.ArchitectureBackend.version, regix.backends.architecture_backend.ArchitectureBackend.collect
329334
- **Inherits**: BackendBase
330335

331-
### regix.models.GateResult
332-
> Aggregate gate evaluation result.
333-
- **Methods**: 3
334-
- **Key Methods**: regix.models.GateResult.all_passed, regix.models.GateResult.errors, regix.models.GateResult.warnings
335-
336-
### regix.backends.docstring_backend.DocstringBackend
337-
> Measure docstring coverage using the ``ast`` module.
336+
### regix.backends.radon_backend.RadonBackend
337+
> Maintainability index and cyclomatic complexity via ``radon``.
338338
- **Methods**: 3
339-
- **Key Methods**: regix.backends.docstring_backend.DocstringBackend.is_available, regix.backends.docstring_backend.DocstringBackend.version, regix.backends.docstring_backend.DocstringBackend.collect
339+
- **Key Methods**: regix.backends.radon_backend.RadonBackend.is_available, regix.backends.radon_backend.RadonBackend.version, regix.backends.radon_backend.RadonBackend.collect
340340
- **Inherits**: BackendBase
341341

342342
### regix.backends.vallm_backend.VallmBackend
@@ -345,18 +345,18 @@ snapshot [regix.cli]
345345
- **Key Methods**: regix.backends.vallm_backend.VallmBackend.is_available, regix.backends.vallm_backend.VallmBackend.version, regix.backends.vallm_backend.VallmBackend.collect
346346
- **Inherits**: BackendBase
347347

348+
### regix.backends.docstring_backend.DocstringBackend
349+
> Measure docstring coverage using the ``ast`` module.
350+
- **Methods**: 3
351+
- **Key Methods**: regix.backends.docstring_backend.DocstringBackend.is_available, regix.backends.docstring_backend.DocstringBackend.version, regix.backends.docstring_backend.DocstringBackend.collect
352+
- **Inherits**: BackendBase
353+
348354
### regix.backends.BackendBase
349355
> Interface that all analysis backends must implement.
350356
- **Methods**: 3
351357
- **Key Methods**: regix.backends.BackendBase.is_available, regix.backends.BackendBase.collect, regix.backends.BackendBase.version
352358
- **Inherits**: ABC
353359

354-
### regix.backends.radon_backend.RadonBackend
355-
> Maintainability index and cyclomatic complexity via ``radon``.
356-
- **Methods**: 3
357-
- **Key Methods**: regix.backends.radon_backend.RadonBackend.is_available, regix.backends.radon_backend.RadonBackend.version, regix.backends.radon_backend.RadonBackend.collect
358-
- **Inherits**: BackendBase
359-
360360
### regix.backends.lizard_backend.LizardBackend
361361
> Cyclomatic complexity and function length via the ``lizard`` library.
362362
- **Methods**: 3
@@ -467,8 +467,8 @@ Functions exposed as public API (no underscore prefix):
467467
- `regix.cli.status` - 23 calls
468468
- `regix.cli.diff` - 22 calls
469469
- `regix.compare.compare` - 21 calls
470-
- `regix.snapshot.capture` - 21 calls
471470
- `regix.cli.gates` - 21 calls
471+
- `regix.snapshot.capture` - 21 calls
472472
- `regix.benchmark.BackendProbe.run` - 21 calls
473473
- `regix.cli.snapshot` - 17 calls
474474
- `regix.cli.history` - 16 calls
@@ -479,8 +479,8 @@ Functions exposed as public API (no underscore prefix):
479479
- `regix.benchmark.BenchmarkReporter.print_plain` - 14 calls
480480
- `regix.cache.lookup` - 13 calls
481481
- `regix.git.read_tree_sources` - 12 calls
482-
- `regix.backends.docstring_backend.DocstringBackend.collect` - 12 calls
483482
- `regix.backends.radon_backend.RadonBackend.collect` - 12 calls
483+
- `regix.backends.docstring_backend.DocstringBackend.collect` - 12 calls
484484
- `regix.benchmark.ImportProbe.run` - 12 calls
485485
- `regix.benchmark.CLIProbe.run` - 12 calls
486486
- `regix.benchmark.ThroughputProbe.run` - 12 calls

project/index.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

project/map.toon.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,12 @@ D:
119119
_make_gates_probe()
120120
benchmark_library(module;cli_commands;test_path;threshold_import;threshold_cli;threshold_tests)
121121
main()
122-
regix/backends/vallm_backend.py:
123-
e: VallmBackend
124-
VallmBackend(BackendBase): is_available(0),version(0),collect(4) # LLM-based code quality scoring via the ``vallm`` CLI tool...
125122
regix/backends/radon_backend.py:
126123
e: RadonBackend
127124
RadonBackend(BackendBase): is_available(0),version(0),collect(4) # Maintainability index and cyclomatic complexity via ``radon`...
125+
regix/backends/vallm_backend.py:
126+
e: VallmBackend
127+
VallmBackend(BackendBase): is_available(0),version(0),collect(4) # LLM-based code quality scoring via the ``vallm`` CLI tool...
128128
regix/backends/structure_backend.py:
129129
e: _CallVisitor,StructureBackend,_analyse_function
130130
_CallVisitor(ast.NodeVisitor): __init__(0),visit_Call(1) # Collect call_count and fan_out from a function body...

project/project.toon.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ REFACTOR[12]:
4646
[1] H/H Split god module regix/benchmark.py (936L, 9 classes)
4747
[2] M/L Split _compute_delta (CC=16 → target CC<10)
4848
[3] M/L Split compare (CC=16 → target CC<10)
49-
[4] M/L Split capture (CC=17 → target CC<10)
50-
[5] M/L Split diff (CC=15 → target CC<10)
49+
[4] M/L Split diff (CC=15 → target CC<10)
50+
[5] M/L Split capture (CC=17 → target CC<10)
5151

5252
EVOLUTION:
5353
2026-04-02 CC̄=4.6 crit=21 7910L // Automated analysis

pyqual.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@ pipeline:
110110

111111
- name: publish
112112
run: |
113-
# Build and publish to PyPI (version already bumped)
113+
# Publish to PyPI (packages built in previous steps)
114114
VERSION=$(cat VERSION)
115115
echo "Publishing version: $VERSION"
116116
if command -v twine &>/dev/null; then
117-
python3 -m build && twine upload dist/*
117+
twine upload dist/regix-${VERSION}*
118118
else
119119
echo "twine not installed — skipping publish"
120120
fi
@@ -134,3 +134,5 @@ pipeline:
134134
OPENAI_API_KEY: ${OPENROUTER_API_KEY}
135135
OPENAI_BASE_URL: https://openrouter.ai/api/v1
136136
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
137+
TWINE_USERNAME: __token__
138+
TWINE_PASSWORD: ${PYPI_API_TOKEN}

0 commit comments

Comments
 (0)