kicad-returnpath 0.1.0__py3-none-any.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.
- kicad_returnpath-0.1.0.dist-info/METADATA +50 -0
- kicad_returnpath-0.1.0.dist-info/RECORD +19 -0
- kicad_returnpath-0.1.0.dist-info/WHEEL +4 -0
- kicad_returnpath-0.1.0.dist-info/entry_points.txt +2 -0
- kicad_returnpath-0.1.0.dist-info/licenses/LICENSE +674 -0
- returnpath/__init__.py +10 -0
- returnpath/cli.py +321 -0
- returnpath/config.py +399 -0
- returnpath/detector.py +504 -0
- returnpath/engine.py +94 -0
- returnpath/kicad_plugin/__init__.py +18 -0
- returnpath/kicad_plugin/panel.py +118 -0
- returnpath/kicad_plugin/panel_window.py +160 -0
- returnpath/kicad_plugin/plugin.py +326 -0
- returnpath/kicad_plugin/surfaces.py +137 -0
- returnpath/parser.py +354 -0
- returnpath/report.py +384 -0
- returnpath/stackup.py +146 -0
- returnpath/waivers.py +363 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kicad-returnpath
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Geometric current-return-path checker for KiCad PCBs (split-crossing / plane-edge / return-via)
|
|
5
|
+
Author: Ciro Caputo Viglione
|
|
6
|
+
License-Expression: GPL-3.0-or-later
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Keywords: drc,eda,kicad,pcb,return-path,signal-integrity
|
|
9
|
+
Requires-Python: >=3.10
|
|
10
|
+
Requires-Dist: kicad-core
|
|
11
|
+
Requires-Dist: shapely>=2.0
|
|
12
|
+
Requires-Dist: tomli>=2.0; python_version < '3.11'
|
|
13
|
+
Provides-Extra: dev
|
|
14
|
+
Requires-Dist: mypy>=1.8; extra == 'dev'
|
|
15
|
+
Requires-Dist: pytest-cov>=4; extra == 'dev'
|
|
16
|
+
Requires-Dist: pytest>=7; extra == 'dev'
|
|
17
|
+
Requires-Dist: ruff>=0.6; extra == 'dev'
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# kicad-returnpath
|
|
21
|
+
|
|
22
|
+
A geometric **current-return-path checker** for KiCad PCBs. It parses a
|
|
23
|
+
`.kicad_pcb`, identifies the reference plane under each routed signal trace, and
|
|
24
|
+
reports where the return path is broken — a plane void the trace crosses
|
|
25
|
+
(*split-crossing*), degraded, or unreferenced.
|
|
26
|
+
|
|
27
|
+
CLI-first and headless (CI-friendly); a thin in-KiCad IPC layer is planned on top.
|
|
28
|
+
Full design: [`docs/return-path-checker-v1-spec.md`](../../docs/return-path-checker-v1-spec.md).
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
return-path check BOARD.kicad_pcb
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Exits `0` (clean), `1` (finding at or above `--fail-on`, default `error`), or `2`
|
|
35
|
+
(bad args / unreadable board).
|
|
36
|
+
|
|
37
|
+
## Walking skeleton (this build)
|
|
38
|
+
|
|
39
|
+
The first end-to-end slice: parse a real **KiCad-10** board (file version
|
|
40
|
+
`20260206`), detect **split-crossing** findings with the *both-ends-on-plane*
|
|
41
|
+
interior predicate (§4.4), and print a grouped, severity-iconed text report.
|
|
42
|
+
|
|
43
|
+
The parser honours the §3 contract — nets are **name-based** everywhere
|
|
44
|
+
(`(net "GND")`, no net numbers, no zone `net_name` child) and a single zone can
|
|
45
|
+
**span multiple layers** (the reference plane is selected per `filled_polygon`
|
|
46
|
+
layer). A pre-KiCad-10 board (numeric nets / `net_name` child) is **rejected**
|
|
47
|
+
rather than silently passed — the exact failure mode the real-board retest surfaced.
|
|
48
|
+
|
|
49
|
+
Built on the shared [`kicad-core`](../kicad-core) S-expression parser and Shapely.
|
|
50
|
+
Licensed GPL-3.0-or-later.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
returnpath/__init__.py,sha256=xfoZ19E6S0cemKJqdWcz7ZwE8PPgO0urYE9iCxkaD_4,518
|
|
2
|
+
returnpath/cli.py,sha256=IQonIzA85i_O1MFPxfvG3NHhuZgnTC6eRvARE9Fev3k,10423
|
|
3
|
+
returnpath/config.py,sha256=FVSHC2izHHf6H9vqb-ay-3lqyE7gR20vERPjD7vmVHo,15977
|
|
4
|
+
returnpath/detector.py,sha256=A37qiOh7KvGOR99jC2FnYTrGAOSLIIeap_uVg-mH5xs,21142
|
|
5
|
+
returnpath/engine.py,sha256=od44WkQBtMB-_QdAcROvdI9o14D_MiOd-tUbPyOGp6Y,4238
|
|
6
|
+
returnpath/parser.py,sha256=Qmkthj6DvFWqAfDpZFeOhZo6OvM0PfA8vLyShshjGVs,14589
|
|
7
|
+
returnpath/report.py,sha256=5ww5tWEjuqulxg7jaSI9gQozY9Gxzv_SvW36I72d2tM,15196
|
|
8
|
+
returnpath/stackup.py,sha256=hXEd9o6jJ6cccCnZm-Ep7h4lDwyBEI86TYWdyJ819RI,6220
|
|
9
|
+
returnpath/waivers.py,sha256=HBvQWBTaBle9kGdWyAv6yGzIYd4CHPyg_zLTlDLEa9Q,14568
|
|
10
|
+
returnpath/kicad_plugin/__init__.py,sha256=vBLa__lcRJTx94RjI5LC4pbHufshKfeWCYdSukKoQ90,755
|
|
11
|
+
returnpath/kicad_plugin/panel.py,sha256=NkWZ6wIDqMwC7zbe41-y07fCVCgPJ4InAglLxtoKkJY,5602
|
|
12
|
+
returnpath/kicad_plugin/panel_window.py,sha256=ybaZfc-4X17Lmt5_q81ISBnse3qRhh9M5K3EeNHTrJw,7604
|
|
13
|
+
returnpath/kicad_plugin/plugin.py,sha256=OWchJVkLcp3wT5vw2WE6IGk6uidTVzt_RMWAQ1YeOHk,14176
|
|
14
|
+
returnpath/kicad_plugin/surfaces.py,sha256=vaXNdQEHcbUzIAxOFgCCwHKLnZXA41RVdxF0F5tVmv4,5731
|
|
15
|
+
kicad_returnpath-0.1.0.dist-info/METADATA,sha256=5IWRRZgJeNgKokF3mJlGKJ1Acj38q_pqK-5rXBkzxOU,2078
|
|
16
|
+
kicad_returnpath-0.1.0.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
17
|
+
kicad_returnpath-0.1.0.dist-info/entry_points.txt,sha256=PUTXlNP5AeNzf3ybx6GVv6YkK7zUC404dxlhnOW_ZaI,52
|
|
18
|
+
kicad_returnpath-0.1.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
19
|
+
kicad_returnpath-0.1.0.dist-info/RECORD,,
|