helia-platforms 0.1.0__tar.gz
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.
- helia_platforms-0.1.0/LICENSE.md +67 -0
- helia_platforms-0.1.0/PKG-INFO +100 -0
- helia_platforms-0.1.0/README.md +81 -0
- helia_platforms-0.1.0/pyproject.toml +100 -0
- helia_platforms-0.1.0/pyproject.toml.orig +72 -0
- helia_platforms-0.1.0/src/helia_platforms/__init__.py +45 -0
- helia_platforms-0.1.0/src/helia_platforms/_build.py +251 -0
- helia_platforms-0.1.0/src/helia_platforms/_check_sources.py +490 -0
- helia_platforms-0.1.0/src/helia_platforms/_digest.py +165 -0
- helia_platforms-0.1.0/src/helia_platforms/_format.py +530 -0
- helia_platforms-0.1.0/src/helia_platforms/_pages.py +395 -0
- helia_platforms-0.1.0/src/helia_platforms/_parse.py +139 -0
- helia_platforms-0.1.0/src/helia_platforms/_provenance.py +327 -0
- helia_platforms-0.1.0/src/helia_platforms/_show.py +639 -0
- helia_platforms-0.1.0/src/helia_platforms/_structural.py +314 -0
- helia_platforms-0.1.0/src/helia_platforms/_tree.py +601 -0
- helia_platforms-0.1.0/src/helia_platforms/_walk.py +82 -0
- helia_platforms-0.1.0/src/helia_platforms/catalog.py +1299 -0
- helia_platforms-0.1.0/src/helia_platforms/cli.py +269 -0
- helia_platforms-0.1.0/src/helia_platforms/data/addons.yaml +96 -0
- helia_platforms-0.1.0/src/helia_platforms/data/ip.yaml +95 -0
- helia_platforms-0.1.0/src/helia_platforms/data/memory_devices.yaml +162 -0
- helia_platforms-0.1.0/src/helia_platforms/data/names.yaml +13 -0
- helia_platforms-0.1.0/src/helia_platforms/data/socs/apollo3.yaml +430 -0
- helia_platforms-0.1.0/src/helia_platforms/data/socs/apollo330P.yaml +660 -0
- helia_platforms-0.1.0/src/helia_platforms/data/socs/apollo3p.yaml +428 -0
- helia_platforms-0.1.0/src/helia_platforms/data/socs/apollo4l.yaml +502 -0
- helia_platforms-0.1.0/src/helia_platforms/data/socs/apollo4p.yaml +647 -0
- helia_platforms-0.1.0/src/helia_platforms/data/socs/apollo510.yaml +449 -0
- helia_platforms-0.1.0/src/helia_platforms/data/socs/apollo510L.yaml +648 -0
- helia_platforms-0.1.0/src/helia_platforms/data/socs/apollo510b.yaml +482 -0
- helia_platforms-0.1.0/src/helia_platforms/data/socs/atomiq110.yaml +673 -0
- helia_platforms-0.1.0/src/helia_platforms/data/sources.yaml +129 -0
- helia_platforms-0.1.0/src/helia_platforms/data/unverified.yaml +52 -0
- helia_platforms-0.1.0/src/helia_platforms/errors.py +53 -0
- helia_platforms-0.1.0/src/helia_platforms/export.py +192 -0
- helia_platforms-0.1.0/src/helia_platforms/model.py +429 -0
- helia_platforms-0.1.0/src/helia_platforms/py.typed +0 -0
- helia_platforms-0.1.0/src/helia_platforms/resolve.py +271 -0
- helia_platforms-0.1.0/src/helia_platforms/schema/__init__.py +167 -0
- helia_platforms-0.1.0/src/helia_platforms/schema/helia-platforms-export-v1.schema.json +5733 -0
- helia_platforms-0.1.0/src/helia_platforms/schema/helia-platforms-v1.schema.json +5637 -0
- helia_platforms-0.1.0/src/helia_platforms/target.py +477 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
Ambiq Apollo SDK License
|
|
2
|
+
|
|
3
|
+
========================
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2026, Ambiq
|
|
6
|
+
|
|
7
|
+
All rights reserved.
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
|
|
11
|
+
of this software and associated documentation files (the “Software”), to use,
|
|
12
|
+
|
|
13
|
+
copy, modify, and distribute the Software **solely** for incorporation into,
|
|
14
|
+
|
|
15
|
+
and execution on, computing platforms that include an Ambiq-manufactured CPU
|
|
16
|
+
|
|
17
|
+
(including but not limited to the Apollo series). Use, reproduction,
|
|
18
|
+
|
|
19
|
+
modification, or distribution of the Software on any CPU not manufactured by
|
|
20
|
+
|
|
21
|
+
Ambiq is strictly prohibited, subject to the following conditions:
|
|
22
|
+
|
|
23
|
+
1. Redistributions of source code must retain the above copyright notice,
|
|
24
|
+
|
|
25
|
+
this list of conditions, and the following disclaimer.
|
|
26
|
+
|
|
27
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
28
|
+
|
|
29
|
+
this list of conditions, and the following disclaimer in the documentation
|
|
30
|
+
|
|
31
|
+
and/or other materials provided with the distribution.
|
|
32
|
+
|
|
33
|
+
3. Neither the name “Ambiq” nor the names of its contributors may be used to
|
|
34
|
+
|
|
35
|
+
endorse or promote products derived from this Software without specific
|
|
36
|
+
|
|
37
|
+
prior written permission.
|
|
38
|
+
|
|
39
|
+
4. **Field-of-Use Restriction.** The Software and any derivative works
|
|
40
|
+
|
|
41
|
+
thereof (in source or binary form) **may only** be executed on a CPU
|
|
42
|
+
|
|
43
|
+
manufactured by Ambiq. Execution on any non-Ambiq CPU, even as part of a
|
|
44
|
+
|
|
45
|
+
multi-CPU system, is expressly forbidden.
|
|
46
|
+
|
|
47
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”
|
|
48
|
+
|
|
49
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
50
|
+
|
|
51
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
52
|
+
|
|
53
|
+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
54
|
+
|
|
55
|
+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
56
|
+
|
|
57
|
+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
58
|
+
|
|
59
|
+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
60
|
+
|
|
61
|
+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
62
|
+
|
|
63
|
+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
64
|
+
|
|
65
|
+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
66
|
+
|
|
67
|
+
POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: helia-platforms
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Shared catalog of Ambiq SoC and board facts (cores, memories, clocks, NPU, debug-probe identifiers) consumed by heliaAOT, helia-profiler and helia-estimator.
|
|
5
|
+
License-File: LICENSE.md
|
|
6
|
+
Classifier: Development Status :: 3 - Alpha
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
13
|
+
Classifier: Typing :: Typed
|
|
14
|
+
Requires-Dist: pyyaml>=6.0
|
|
15
|
+
Requires-Dist: typer>=0.16
|
|
16
|
+
Requires-Python: >=3.11
|
|
17
|
+
Project-URL: Repository, https://github.com/AmbiqAI/helia-platforms
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# helia-platforms
|
|
21
|
+
|
|
22
|
+
`helia-platforms` is the shared catalog of Ambiq SoC and board facts (cores,
|
|
23
|
+
memories, clocks, NPU, debug-probe identifiers) consumed by heliaAOT,
|
|
24
|
+
helia-profiler and helia-estimator. Every value carries a provenance record:
|
|
25
|
+
the datasheet page, SDK file or measurement it came from, and who checked it.
|
|
26
|
+
|
|
27
|
+
- Import name: `helia_platforms`
|
|
28
|
+
- CLI entry point: `helia-platforms`
|
|
29
|
+
|
|
30
|
+
## Status
|
|
31
|
+
|
|
32
|
+
Alpha. The built-in data covers apollo3, apollo3p, apollo4l, apollo4p,
|
|
33
|
+
apollo510, apollo510b, apollo510L, apollo330P and atomiq110, with their parts
|
|
34
|
+
and boards; `helia-platforms list` prints what it holds. The file format, the
|
|
35
|
+
Python API and the CLI may change between 0.x releases.
|
|
36
|
+
|
|
37
|
+
Linker windows, the regions an SDK's linker scripts declare, are not in this
|
|
38
|
+
package. It gives the hardware facts they sit within: physical memory regions,
|
|
39
|
+
boot reservations, image slots and the NVM left for an application
|
|
40
|
+
(`Target.usable_nvm()`).
|
|
41
|
+
|
|
42
|
+
## Install
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
pip install helia-platforms
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
or, in a uv project, `uv add helia-platforms`. Python 3.11 or later.
|
|
49
|
+
|
|
50
|
+
## Use
|
|
51
|
+
|
|
52
|
+
From the CLI:
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
helia-platforms list
|
|
56
|
+
helia-platforms show apollo510_evb # every value with its provenance status
|
|
57
|
+
helia-platforms show apollo510_evb --provenance # and the full record under each row
|
|
58
|
+
helia-platforms show my_board --overlay my_board.yaml
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
From Python:
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
from helia_platforms import resolve
|
|
65
|
+
|
|
66
|
+
target = resolve("apollo510_evb")
|
|
67
|
+
target.soc.id # "apollo510"
|
|
68
|
+
target.jlink_device # "AP510NFA-CBR"
|
|
69
|
+
target.cpu_mhz() # 96, at the default operating point
|
|
70
|
+
target.flash_load_address() # 0x410000
|
|
71
|
+
target.placement_ranges() # {"itcm": (0x0, 0x40000), ...}: base and size per region
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
A private catalog, such as a board of your own, loads over the built-in one
|
|
75
|
+
with `--overlay` on the CLI or `load_overlay` in Python.
|
|
76
|
+
|
|
77
|
+
## Upgrade notes
|
|
78
|
+
|
|
79
|
+
- apollo510b_evb's `jlink_device` is `AP510BFA-CBR`, the Apollo510B ordering
|
|
80
|
+
number, which SEGGER lists as its own J-Link device. SEGGER added it in J-Link
|
|
81
|
+
V8.94 (2025-12-10), so update an older J-Link, or pass the SDK's default
|
|
82
|
+
`AP510NFA-CBR` yourself.
|
|
83
|
+
|
|
84
|
+
## Development
|
|
85
|
+
|
|
86
|
+
Requires [uv](https://docs.astral.sh/uv/).
|
|
87
|
+
|
|
88
|
+
```sh
|
|
89
|
+
uv sync --group dev && uv run pre-commit install && uv run pytest
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
In the repository:
|
|
93
|
+
|
|
94
|
+
- `docs/rfcs/`: design RFCs (the model and API are RFC 0002)
|
|
95
|
+
- `docs/adr/`: architecture decision records
|
|
96
|
+
- `docs/research/`: source inventories
|
|
97
|
+
- `HANDOFF.md`: current state of in-flight work
|
|
98
|
+
|
|
99
|
+
See `CONTRIBUTING.md` to contribute, and report security issues as described
|
|
100
|
+
in `SECURITY.md`.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# helia-platforms
|
|
2
|
+
|
|
3
|
+
`helia-platforms` is the shared catalog of Ambiq SoC and board facts (cores,
|
|
4
|
+
memories, clocks, NPU, debug-probe identifiers) consumed by heliaAOT,
|
|
5
|
+
helia-profiler and helia-estimator. Every value carries a provenance record:
|
|
6
|
+
the datasheet page, SDK file or measurement it came from, and who checked it.
|
|
7
|
+
|
|
8
|
+
- Import name: `helia_platforms`
|
|
9
|
+
- CLI entry point: `helia-platforms`
|
|
10
|
+
|
|
11
|
+
## Status
|
|
12
|
+
|
|
13
|
+
Alpha. The built-in data covers apollo3, apollo3p, apollo4l, apollo4p,
|
|
14
|
+
apollo510, apollo510b, apollo510L, apollo330P and atomiq110, with their parts
|
|
15
|
+
and boards; `helia-platforms list` prints what it holds. The file format, the
|
|
16
|
+
Python API and the CLI may change between 0.x releases.
|
|
17
|
+
|
|
18
|
+
Linker windows, the regions an SDK's linker scripts declare, are not in this
|
|
19
|
+
package. It gives the hardware facts they sit within: physical memory regions,
|
|
20
|
+
boot reservations, image slots and the NVM left for an application
|
|
21
|
+
(`Target.usable_nvm()`).
|
|
22
|
+
|
|
23
|
+
## Install
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
pip install helia-platforms
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
or, in a uv project, `uv add helia-platforms`. Python 3.11 or later.
|
|
30
|
+
|
|
31
|
+
## Use
|
|
32
|
+
|
|
33
|
+
From the CLI:
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
helia-platforms list
|
|
37
|
+
helia-platforms show apollo510_evb # every value with its provenance status
|
|
38
|
+
helia-platforms show apollo510_evb --provenance # and the full record under each row
|
|
39
|
+
helia-platforms show my_board --overlay my_board.yaml
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
From Python:
|
|
43
|
+
|
|
44
|
+
```python
|
|
45
|
+
from helia_platforms import resolve
|
|
46
|
+
|
|
47
|
+
target = resolve("apollo510_evb")
|
|
48
|
+
target.soc.id # "apollo510"
|
|
49
|
+
target.jlink_device # "AP510NFA-CBR"
|
|
50
|
+
target.cpu_mhz() # 96, at the default operating point
|
|
51
|
+
target.flash_load_address() # 0x410000
|
|
52
|
+
target.placement_ranges() # {"itcm": (0x0, 0x40000), ...}: base and size per region
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
A private catalog, such as a board of your own, loads over the built-in one
|
|
56
|
+
with `--overlay` on the CLI or `load_overlay` in Python.
|
|
57
|
+
|
|
58
|
+
## Upgrade notes
|
|
59
|
+
|
|
60
|
+
- apollo510b_evb's `jlink_device` is `AP510BFA-CBR`, the Apollo510B ordering
|
|
61
|
+
number, which SEGGER lists as its own J-Link device. SEGGER added it in J-Link
|
|
62
|
+
V8.94 (2025-12-10), so update an older J-Link, or pass the SDK's default
|
|
63
|
+
`AP510NFA-CBR` yourself.
|
|
64
|
+
|
|
65
|
+
## Development
|
|
66
|
+
|
|
67
|
+
Requires [uv](https://docs.astral.sh/uv/).
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
uv sync --group dev && uv run pre-commit install && uv run pytest
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
In the repository:
|
|
74
|
+
|
|
75
|
+
- `docs/rfcs/`: design RFCs (the model and API are RFC 0002)
|
|
76
|
+
- `docs/adr/`: architecture decision records
|
|
77
|
+
- `docs/research/`: source inventories
|
|
78
|
+
- `HANDOFF.md`: current state of in-flight work
|
|
79
|
+
|
|
80
|
+
See `CONTRIBUTING.md` to contribute, and report security issues as described
|
|
81
|
+
in `SECURITY.md`.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "helia-platforms"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Shared catalog of Ambiq SoC and board facts (cores, memories, clocks, NPU, debug-probe identifiers) consumed by heliaAOT, helia-profiler and helia-estimator."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license-files = ["LICENSE.md"]
|
|
7
|
+
requires-python = ">=3.11"
|
|
8
|
+
dependencies = [
|
|
9
|
+
"pyyaml>=6.0",
|
|
10
|
+
"typer>=0.16",
|
|
11
|
+
]
|
|
12
|
+
classifiers = [
|
|
13
|
+
"Development Status :: 3 - Alpha",
|
|
14
|
+
"Programming Language :: Python :: 3",
|
|
15
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
16
|
+
"Programming Language :: Python :: 3.11",
|
|
17
|
+
"Programming Language :: Python :: 3.12",
|
|
18
|
+
"Programming Language :: Python :: 3.13",
|
|
19
|
+
"Programming Language :: Python :: 3.14",
|
|
20
|
+
"Typing :: Typed",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[project.scripts]
|
|
24
|
+
helia-platforms = "helia_platforms.cli:main"
|
|
25
|
+
|
|
26
|
+
[project.urls]
|
|
27
|
+
Repository = "https://github.com/AmbiqAI/helia-platforms"
|
|
28
|
+
|
|
29
|
+
[build-system]
|
|
30
|
+
requires = ["uv_build>=0.11.26,<0.12.0"]
|
|
31
|
+
build-backend = "uv_build"
|
|
32
|
+
|
|
33
|
+
[dependency-groups]
|
|
34
|
+
dev = [
|
|
35
|
+
"pytest>=8",
|
|
36
|
+
"pytest-cov>=5",
|
|
37
|
+
"ruff>=0.11",
|
|
38
|
+
"ty",
|
|
39
|
+
"pre-commit>=4",
|
|
40
|
+
"jsonschema>=4.23",
|
|
41
|
+
{ include-group = "extract" },
|
|
42
|
+
]
|
|
43
|
+
extract = ["pcpp>=1.30"]
|
|
44
|
+
|
|
45
|
+
[tool.ruff]
|
|
46
|
+
line-length = 100
|
|
47
|
+
target-version = "py311"
|
|
48
|
+
src = [
|
|
49
|
+
"src",
|
|
50
|
+
"tests",
|
|
51
|
+
"scripts",
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
[tool.ruff.lint]
|
|
55
|
+
select = [
|
|
56
|
+
"E",
|
|
57
|
+
"F",
|
|
58
|
+
"I",
|
|
59
|
+
"UP",
|
|
60
|
+
"B",
|
|
61
|
+
"SIM",
|
|
62
|
+
"RUF",
|
|
63
|
+
"PL",
|
|
64
|
+
]
|
|
65
|
+
ignore = [
|
|
66
|
+
"PLR2004",
|
|
67
|
+
"PLR0913",
|
|
68
|
+
]
|
|
69
|
+
|
|
70
|
+
[tool.ruff.lint.per-file-ignores]
|
|
71
|
+
"tests/**" = [
|
|
72
|
+
"PLR2004",
|
|
73
|
+
"S101",
|
|
74
|
+
]
|
|
75
|
+
|
|
76
|
+
[tool.ruff.format]
|
|
77
|
+
quote-style = "double"
|
|
78
|
+
exclude = ["docs/**"]
|
|
79
|
+
|
|
80
|
+
[tool.ty.environment]
|
|
81
|
+
python-version = "3.11"
|
|
82
|
+
extra-paths = ["scripts"]
|
|
83
|
+
|
|
84
|
+
[tool.ty.src]
|
|
85
|
+
include = [
|
|
86
|
+
"src",
|
|
87
|
+
"tests",
|
|
88
|
+
"scripts",
|
|
89
|
+
]
|
|
90
|
+
|
|
91
|
+
[tool.pytest.ini_options]
|
|
92
|
+
testpaths = ["tests"]
|
|
93
|
+
pythonpath = ["scripts"]
|
|
94
|
+
addopts = "-ra -q"
|
|
95
|
+
|
|
96
|
+
[tool.coverage.run]
|
|
97
|
+
source = [
|
|
98
|
+
"helia_platforms",
|
|
99
|
+
"scripts",
|
|
100
|
+
]
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "helia-platforms"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Shared catalog of Ambiq SoC and board facts (cores, memories, clocks, NPU, debug-probe identifiers) consumed by heliaAOT, helia-profiler and helia-estimator."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license-files = ["LICENSE.md"]
|
|
7
|
+
requires-python = ">=3.11"
|
|
8
|
+
dependencies = ["pyyaml>=6.0", "typer>=0.16"]
|
|
9
|
+
classifiers = [
|
|
10
|
+
"Development Status :: 3 - Alpha",
|
|
11
|
+
"Programming Language :: Python :: 3",
|
|
12
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
13
|
+
"Programming Language :: Python :: 3.11",
|
|
14
|
+
"Programming Language :: Python :: 3.12",
|
|
15
|
+
"Programming Language :: Python :: 3.13",
|
|
16
|
+
"Programming Language :: Python :: 3.14",
|
|
17
|
+
"Typing :: Typed",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[project.scripts]
|
|
21
|
+
helia-platforms = "helia_platforms.cli:main"
|
|
22
|
+
|
|
23
|
+
[project.urls]
|
|
24
|
+
Repository = "https://github.com/AmbiqAI/helia-platforms"
|
|
25
|
+
|
|
26
|
+
[build-system]
|
|
27
|
+
requires = ["uv_build>=0.11.26,<0.12.0"]
|
|
28
|
+
build-backend = "uv_build"
|
|
29
|
+
|
|
30
|
+
[dependency-groups]
|
|
31
|
+
dev = [
|
|
32
|
+
"pytest>=8",
|
|
33
|
+
"pytest-cov>=5",
|
|
34
|
+
"ruff>=0.11",
|
|
35
|
+
"ty",
|
|
36
|
+
"pre-commit>=4",
|
|
37
|
+
"jsonschema>=4.23",
|
|
38
|
+
{ include-group = "extract" },
|
|
39
|
+
]
|
|
40
|
+
# The snapshot extractor's dependencies (ADR 0006), outside the wheel's runtime ones.
|
|
41
|
+
extract = ["pcpp>=1.30"]
|
|
42
|
+
|
|
43
|
+
[tool.ruff]
|
|
44
|
+
line-length = 100
|
|
45
|
+
target-version = "py311"
|
|
46
|
+
src = ["src", "tests", "scripts"]
|
|
47
|
+
|
|
48
|
+
[tool.ruff.lint]
|
|
49
|
+
select = ["E", "F", "I", "UP", "B", "SIM", "RUF", "PL"]
|
|
50
|
+
ignore = ["PLR2004", "PLR0913"]
|
|
51
|
+
|
|
52
|
+
[tool.ruff.lint.per-file-ignores]
|
|
53
|
+
"tests/**" = ["PLR2004", "S101"]
|
|
54
|
+
|
|
55
|
+
[tool.ruff.format]
|
|
56
|
+
quote-style = "double"
|
|
57
|
+
exclude = ["docs/**"]
|
|
58
|
+
|
|
59
|
+
[tool.ty.environment]
|
|
60
|
+
python-version = "3.11"
|
|
61
|
+
extra-paths = ["scripts"]
|
|
62
|
+
|
|
63
|
+
[tool.ty.src]
|
|
64
|
+
include = ["src", "tests", "scripts"]
|
|
65
|
+
|
|
66
|
+
[tool.pytest.ini_options]
|
|
67
|
+
testpaths = ["tests"]
|
|
68
|
+
pythonpath = ["scripts"]
|
|
69
|
+
addopts = "-ra -q"
|
|
70
|
+
|
|
71
|
+
[tool.coverage.run]
|
|
72
|
+
source = ["helia_platforms", "scripts"]
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""Shared catalog of Ambiq SoC and board facts."""
|
|
2
|
+
|
|
3
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
4
|
+
|
|
5
|
+
try:
|
|
6
|
+
__version__ = version("helia-platforms")
|
|
7
|
+
except PackageNotFoundError:
|
|
8
|
+
__version__ = "0.1.0"
|
|
9
|
+
|
|
10
|
+
# Imported after __version__, which catalog reads at import.
|
|
11
|
+
from helia_platforms.catalog import (
|
|
12
|
+
Catalog,
|
|
13
|
+
CatalogIdentity,
|
|
14
|
+
SourceIdentity,
|
|
15
|
+
builtin,
|
|
16
|
+
load_overlay,
|
|
17
|
+
)
|
|
18
|
+
from helia_platforms.errors import (
|
|
19
|
+
AmbiguousPlatform,
|
|
20
|
+
FormatError,
|
|
21
|
+
PlatformError,
|
|
22
|
+
PlatformWarning,
|
|
23
|
+
UnknownPlatform,
|
|
24
|
+
)
|
|
25
|
+
from helia_platforms.resolve import resolve, resolve_board, resolve_soc
|
|
26
|
+
from helia_platforms.target import IsaFeatures, Target
|
|
27
|
+
|
|
28
|
+
__all__ = [
|
|
29
|
+
"AmbiguousPlatform",
|
|
30
|
+
"Catalog",
|
|
31
|
+
"CatalogIdentity",
|
|
32
|
+
"FormatError",
|
|
33
|
+
"IsaFeatures",
|
|
34
|
+
"PlatformError",
|
|
35
|
+
"PlatformWarning",
|
|
36
|
+
"SourceIdentity",
|
|
37
|
+
"Target",
|
|
38
|
+
"UnknownPlatform",
|
|
39
|
+
"__version__",
|
|
40
|
+
"builtin",
|
|
41
|
+
"load_overlay",
|
|
42
|
+
"resolve",
|
|
43
|
+
"resolve_board",
|
|
44
|
+
"resolve_soc",
|
|
45
|
+
]
|