code-split 0.1.1__py3-none-win_amd64.whl → 1.0.0a2__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-split
3
- Version: 0.1.1
3
+ Version: 1.0.0a2
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -25,7 +25,7 @@ Project-URL: Repository, https://github.com/ffedoroff/code-split
25
25
 
26
26
  [![CI](https://github.com/ffedoroff/code-split/actions/workflows/ci.yml/badge.svg)](https://github.com/ffedoroff/code-split/actions/workflows/ci.yml)
27
27
  [![codecov](https://codecov.io/gh/ffedoroff/code-split/branch/main/graph/badge.svg)](https://codecov.io/gh/ffedoroff/code-split)
28
- [![dependencies](https://deps.rs/crate/code-split/0.1.1/status.svg)](https://deps.rs/crate/code-split/0.1.1)
28
+ [![dependencies](https://deps.rs/crate/code-split/1.0.0-alpha.2/status.svg)](https://deps.rs/crate/code-split/1.0.0-alpha.2)
29
29
  [![Crates.io](https://img.shields.io/crates/v/code-split.svg)](https://crates.io/crates/code-split)
30
30
  [![npm](https://img.shields.io/npm/v/code-split.svg)](https://www.npmjs.com/package/code-split)
31
31
  [![PyPI](https://img.shields.io/pypi/v/code-split.svg)](https://pypi.org/project/code-split/)
@@ -41,37 +41,37 @@ code-split always runs **entirely on your machine**. It makes **no network calls
41
41
 
42
42
  ## What it finds
43
43
 
44
- - **Components that grew too complex and should be split.** Per-function and per-module cyclomatic / cognitive / Halstead / MI metrics; flags entities above your threshold.
45
- - **Strong coupling between components.** Computes fan-in / fan-out / HK on the call and module graphs; surfaces the modules that everything depends on (or that depend on everything).
46
- - **Cyclic dependencies.** Detects SCCs at module, file and function level — including the silent ones the compiler does not catch.
47
- - **Files that are just too big.** Raw LOC, public surface size, item / method counts per file.
44
+ - **Files that grew too complex and should be split.** Per-file cyclomatic / cognitive / Halstead / MI metrics; flags files above your threshold.
45
+ - **Strong coupling between files.** Computes fan-in / fan-out / HK on the file dependency graph; surfaces the files that everything depends on (or that depend on everything). Third-party libraries are tracked separately as depth-1 external nodes (`fan_out_external`), so they never inflate your internal-coupling numbers.
46
+ - **Cyclic dependencies.** Detects SCCs in the file graph — including the silent ones the compiler does not catch.
47
+ - **Files that are just too big.** Raw LOC, public surface size per file.
48
48
 
49
49
  The tool **does not refactor for you**. It produces a structured, machine-readable list of problem spots and an offline HTML report a human or an LLM can act on.
50
50
 
51
51
  ## CI integration
52
52
 
53
- Runs as a linter. Configure thresholds in `code-split.toml`; the CLI exits non-zero when the codebase breaches them — so a PR that introduces a new cycle, a function above your cognitive budget, or a file above your LOC limit fails the build.
53
+ Runs as a linter. Configure thresholds in `code-split.toml`; the CLI exits non-zero when the codebase breaches them — so a PR that introduces a new cycle, a file above your cognitive budget, or a file above your LOC limit fails the build.
54
54
 
55
55
  ```sh
56
56
  code-split check . \
57
- --threshold function.cognitive=25 --threshold file.loc=800
57
+ --threshold file.cognitive=25 --threshold file.loc=800
58
58
  ```
59
59
 
60
- The linter is the `check` command — exits non-zero on any cycle or threshold violation (`mutual` and `chain` cycle checks are on by default). See [docs/CLI.md](docs/CLI.md) for all flags.
60
+ The linter is the `check` command — exits non-zero on any cycle or threshold violation, e.g. a PR that introduces a new file-level cycle or a file above your LOC limit (`mutual` and `chain` cycle checks are on by default). See [docs/CLI.md](docs/CLI.md) for all flags.
61
61
 
62
62
  ## Full CLI
63
63
 
64
64
  Written in Rust — fast, memory-safe, single static-ish binary with **no runtime dependencies** (no Python, no Node, no JVM, no shared libs to install). One file on PATH, done.
65
65
 
66
- Three commands: `check` (linter — exits non-zero on violations), `report` (snapshot JSON + offline HTML, with optional in-run before/after diff via `--before`), `diff` (HTML or JSON diff between two snapshots, for CI artifacts). No daemon, no language server, no plugin host required at runtime. Full reference: [docs/CLI.md](docs/CLI.md).
66
+ Two commands: `check` (linter — exits non-zero on violations; with `--baseline`, a relative regression gate) and `report` (snapshot JSON + offline HTML; with `--baseline`, a baseline↔current diff). Both accept a directory **or** an existing `.json`/`.html` snapshot as input — analyze once, then run cheap passes over the snapshot. No daemon, no language server, no plugin host required at runtime. Full reference: [docs/CLI.md](docs/CLI.md).
67
67
 
68
68
  ## HTML report with dynamic diagrams
69
69
 
70
70
  `code-split report` writes a single self-contained HTML file with:
71
71
 
72
- - Three interactive levels: modules, files, functions.
72
+ - An interactive file dependency graph; third-party libraries appear as depth-1 external nodes in a distinct amber colour with dashed edges.
73
73
  - Dagre-laid-out graph with pan/zoom and live filtering.
74
- - Sortable tables per metric; click a node to open its neighbourhood.
74
+ - Sortable table per metric; click a node to open its neighbourhood.
75
75
  - "Prompt generator" panel that copies a ready-to-paste prompt (one for each principle: ADP, SRP, OCP, LSP, ISP, DIP, DRY, KISS, LoD, MISU, CoI, YAGNI; plus *Reduce Complexity*, *Split Components*) — feed the prompt + the selected nodes to your AI agent.
76
76
 
77
77
  No network, no analytics, no telemetry. Open in any browser, share as a file.
@@ -90,7 +90,7 @@ curl -fsSL https://github.com/ffedoroff/code-split/releases/latest/download/code
90
90
  powershell -ExecutionPolicy ByPass -c "irm https://github.com/ffedoroff/code-split/releases/latest/download/code-split-installer.ps1 | iex"
91
91
 
92
92
  # Rust (Cargo)
93
- cargo install code-split --version 0.1.1
93
+ cargo install code-split --version 1.0.0-alpha.2
94
94
 
95
95
  # Node (npm)
96
96
  npm install -g code-split
@@ -99,10 +99,10 @@ npm install -g code-split
99
99
  pip install code-split
100
100
 
101
101
  # Docker (Docker Hub)
102
- docker pull fedoroff/code-split:0.1.1
102
+ docker pull fedoroff/code-split:1.0.0-alpha.2
103
103
 
104
104
  # Docker (GHCR — no anonymous rate limits)
105
- docker pull ghcr.io/ffedoroff/code-split:0.1.1
105
+ docker pull ghcr.io/ffedoroff/code-split:1.0.0-alpha.2
106
106
  ```
107
107
 
108
108
  All channels ship the same `code-split` binary built from the same Rust source. Linux (x86_64, aarch64), macOS (x86_64, aarch64), Windows (x86_64).
@@ -115,18 +115,19 @@ code-split check ./path/to/project
115
115
 
116
116
  # analyze and write a snapshot JSON + offline HTML report
117
117
  code-split report
118
- # → .code-split/{project-dir}-{ts}.json + .code-split/index.html
118
+ # → .code-split/{ts}-{git-hash-3}.json + .code-split/{ts}-{git-hash-3}.html
119
+ # (override paths via --output.<fmt>.path or [output.<fmt>] in code-split.toml)
119
120
 
120
- # before / after refactor comparison of two snapshots
121
- code-split diff --before .code-split/before.json --after .code-split/after.json
121
+ # before / after refactor comparison: an HTML diff against a baseline snapshot
122
+ code-split report . --baseline .code-split/before.json
122
123
  ```
123
124
 
124
- Built-in plugins: `rust` (cargo + syn + rust-analyzer), `python`, `javascript` (also handles TypeScript) — all compiled into the single binary, nothing to install.
125
+ Built-in plugins: `rust` (cargo + syn), `python`, `javascript` (also handles TypeScript) — all compiled into the single binary, nothing to install.
125
126
 
126
127
  ## Documentation
127
128
 
128
129
  - [CLI](docs/CLI.md) — commands, flags, and examples
129
- - [Rule reference](docs/ERRORS.md) — rule ids grouped by concern (`CYC`/`CPX`/`CPL`/`SIZ`), threshold scopes (`file`/`module`/`function`, each single + `.avg`), what each flags, and how to fix it
130
+ - [Rule reference](docs/ERRORS.md) — rule ids grouped by concern (`CYC`/`CPX`/`CPL`/`SIZ`), per-file thresholds (`file`), what each flags, and how to fix it
130
131
  - [Config](docs/config.md) — `code-split.toml` schema
131
132
  - [PRD](docs/PRD.md) — product requirements
132
133
  - [DESIGN](docs/DESIGN.md) — technical design
@@ -0,0 +1,6 @@
1
+ code_split-1.0.0a2.data/scripts/code-split.exe,sha256=pB46p7Bpu5gips1wb9z2NeyoIz9d1622WlHBOT-f1-0,21682688
2
+ code_split-1.0.0a2.dist-info/METADATA,sha256=WdV6J5Tinuoi5jPfKcdTqW7EluLI8mbJ6CnhoqMkN7A,7755
3
+ code_split-1.0.0a2.dist-info/WHEEL,sha256=fxUURV-tpz4EGoGaAcyzIZ0CMCngNhGnetS-bU4AaSg,94
4
+ code_split-1.0.0a2.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
5
+ code_split-1.0.0a2.dist-info/sboms/code-split.cyclonedx.json,sha256=-f06_iRxuGVgnn_qXseO7f6V--rni1dldkuPLgmvXL4,119837
6
+ code_split-1.0.0a2.dist-info/RECORD,,