Code Metrics¶
Generated: 2026-07-21 22:30 UTC
Lines of Code¶
| Files | Code | Comment | Blank | Total | |
|---|---|---|---|---|---|
| Source | 36 | 2 874 | 987 | 245 | 4 106 |
| Tests | 31 | 3 495 | 454 | 417 | 4 366 |
| Combined | 67 | 6 369 | 1 441 | 662 | 8 472 |
- Comment/code ratio: 34%
- Test/source ratio: 121.6%
Source by module (click to expand)
| Module | Files | Code | Comment | Blank |
|---|---|---|---|---|
terok_clearance/ |
36 | 2 874 | 987 | 245 |
terok_clearance/cli/ |
8 | 192 | 92 | 50 |
terok_clearance/cli/verbs/ |
5 | 57 | 48 | 22 |
terok_clearance/cli/verbs/clearance.py |
— | 9 | 12 | 7 |
terok_clearance/cli/verbs/notify.py |
— | 30 | 14 | 1 |
terok_clearance/cli/verbs/serve.py |
— | 9 | 11 | 7 |
terok_clearance/cli/verbs/serve_verdict.py |
— | 9 | 11 | 7 |
terok_clearance/cli/main.py |
— | 23 | 19 | 1 |
terok_clearance/cli/terminal_clearance.py |
— | 112 | 25 | 27 |
terok_clearance/client/ |
3 | 848 | 194 | 31 |
terok_clearance/client/client.py |
— | 172 | 57 | 9 |
terok_clearance/client/subscriber.py |
— | 676 | 137 | 22 |
terok_clearance/domain/ |
2 | 48 | 44 | 11 |
terok_clearance/domain/events.py |
— | 48 | 44 | 11 |
terok_clearance/hub/ |
3 | 442 | 159 | 20 |
terok_clearance/hub/ingester.py |
— | 132 | 39 | 6 |
terok_clearance/hub/server.py |
— | 310 | 120 | 14 |
terok_clearance/notifications/ |
5 | 618 | 220 | 53 |
terok_clearance/notifications/callback.py |
— | 150 | 28 | 6 |
terok_clearance/notifications/desktop.py |
— | 394 | 124 | 29 |
terok_clearance/notifications/factory.py |
— | 21 | 36 | 13 |
terok_clearance/notifications/protocol.py |
— | 53 | 32 | 5 |
terok_clearance/resources/ |
1 | 82 | 1 | 1 |
terok_clearance/runtime/ |
2 | 17 | 20 | 7 |
terok_clearance/runtime/service.py |
— | 17 | 20 | 7 |
terok_clearance/verdict/ |
5 | 295 | 93 | 33 |
terok_clearance/verdict/client.py |
— | 102 | 7 | 2 |
terok_clearance/verdict/interface.py |
— | 31 | 31 | 11 |
terok_clearance/verdict/server.py |
— | 157 | 44 | 14 |
terok_clearance/verdict/socket.py |
— | 5 | 11 | 6 |
terok_clearance/wire/ |
5 | 196 | 136 | 34 |
terok_clearance/wire/errors.py |
— | 59 | 9 | 7 |
terok_clearance/wire/interface.py |
— | 43 | 35 | 5 |
terok_clearance/wire/sanitize.py |
— | 26 | 69 | 8 |
terok_clearance/wire/socket.py |
— | 68 | 23 | 14 |
terok_clearance/__init__.py |
— | 113 | 14 | 2 |
terok_clearance/commands.py |
— | 23 | 14 | 3 |
Architecture¶
Module Dependency Graph¶
graph TD
terok_clearance.wire.errors --> terok_clearance.wire.interface
terok_clearance.notifications.factory --> terok_clearance.notifications.desktop
terok_clearance.hub.server --> terok_clearance.hub.ingester
terok_clearance.hub.server --> terok_clearance.runtime.service
terok_clearance.hub.server --> terok_clearance.verdict.client
terok_clearance.verdict.socket --> terok_clearance.wire.socket
terok_clearance.verdict.server --> terok_clearance.runtime.service
terok_clearance.client.subscriber --> terok_clearance.client.client
terok_clearance.cli.main --> terok_clearance.commands
terok_clearance.cli.verbs.clearance --> terok_clearance.cli.terminal_clearance
terok_clearance
terok_clearance.domain.events
terok_clearance.wire.socket
terok_clearance.wire.interface
terok_clearance.wire.sanitize
terok_clearance.notifications.protocol
terok_clearance.notifications.callback
terok_clearance.notifications.desktop
terok_clearance.hub.ingester
terok_clearance.verdict.interface
terok_clearance.verdict.client
terok_clearance.client.client
terok_clearance.runtime.service
terok_clearance.commands
terok_clearance.cli.terminal_clearance
terok_clearance.cli.verbs.notify
terok_clearance.cli.verbs.serve
terok_clearance.cli.verbs.serve_verdict
Module Boundaries¶
26 modules, 10 dependency edges — all boundaries validated.
Module Summary¶
26 modules (click to expand)
| Module | Deps | Description |
|---|---|---|
terok_clearance |
0 | |
terok_clearance.domain.events |
0 | |
terok_clearance.wire.socket |
0 | |
terok_clearance.wire.interface |
0 | |
terok_clearance.wire.errors |
1 | |
terok_clearance.wire.sanitize |
0 | without having to climb back up to renderer-specific helpers. |
terok_clearance.notifications.protocol |
0 | notification tree; the three concrete backends are infrastructure. |
terok_clearance.notifications.callback |
0 | |
terok_clearance.notifications.desktop |
0 | |
terok_clearance.notifications.factory |
1 | |
terok_clearance.hub.ingester |
0 | Hub — varlink server + reader ingestion + shield exec. |
terok_clearance.hub.server |
3 | |
terok_clearance.verdict.interface |
0 | the hub handles all authz before forwarding a triple here. |
terok_clearance.verdict.socket |
1 | |
terok_clearance.verdict.client |
0 | |
terok_clearance.verdict.server |
1 | |
terok_clearance.client.client |
0 | Client — varlink consumer library. |
terok_clearance.client.subscriber |
1 | |
terok_clearance.runtime.service |
0 | Runtime — deployment helpers. |
terok_clearance.cli.main |
1 | |
terok_clearance.commands |
0 | through importlib at wire time. No intra-package static edge. |
terok_clearance.cli.terminal_clearance |
0 | |
terok_clearance.cli.verbs.notify |
0 | |
terok_clearance.cli.verbs.serve |
0 | |
terok_clearance.cli.verbs.serve_verdict |
0 | |
terok_clearance.cli.verbs.clearance |
1 |
Test Coverage¶
Overall line coverage: 89.5% (1165/1302 statements).
Each rectangle is a source file. Area is proportional to the number of statements; colour encodes the coverage percentage (green = fully covered, red = uncovered). Files are grouped by the first 3 directory levels.
Cognitive Complexity¶
Threshold: 15 (functions above this are listed below)
- Functions analyzed: 135
- Median complexity: 1 · Average: 2.1 · Max: 29
- Within threshold (15): 99% (133/135)
0– 3 │ ██████████████████████████████ 113 (83.7%)
4– 6 │ ████ 15 (11.1%)
7– 9 │ █ 3 ( 2.2%)
10– 12 │ █ 2 ( 1.5%)
13– 15 │ 0 ( 0.0%) ◄ threshold
16– 18 │ 0 ( 0.0%)
19– 21 │ 1 ( 0.7%)
22– 25 │ 0 ( 0.0%)
26+ │ 1 ( 0.7%)
2 functions exceeding threshold:
| Complexity | Function | File |
|---|---|---|
| 29 | ClearanceClient::_run_stream |
src/terok_clearance/client/client.py |
| 21 | EventSubscriber::_on_event |
src/terok_clearance/client/subscriber.py |
Dead Code Analysis¶
No dead code found at 80% confidence threshold.
Docstring Coverage¶
- Needed: 10; Found: 9; Missing: 1; Coverage: 90.0%
- Needed: 16; Found: 15; Missing: 1; Coverage: 93.8%
- Needed: 11; Found: 10; Missing: 1; Coverage: 90.9%
- Needed: 193 - Found: 190 - Missing: 3
- Total coverage: 98.4% - Grade: Excellent
Generated by scc, complexipy, vulture, tach, and docstr-coverage.