aqpxlib 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.
- aqpxlib-0.1.0/LICENSE +28 -0
- aqpxlib-0.1.0/PKG-INFO +46 -0
- aqpxlib-0.1.0/README.md +18 -0
- aqpxlib-0.1.0/pyproject.toml +127 -0
- aqpxlib-0.1.0/src/aqpxlib/__init__.py +8 -0
- aqpxlib-0.1.0/src/aqpxlib/abstract/__init__.py +13 -0
- aqpxlib-0.1.0/src/aqpxlib/abstract/abstract_bus.py +551 -0
- aqpxlib-0.1.0/src/aqpxlib/abstract/abstract_device.py +291 -0
- aqpxlib-0.1.0/src/aqpxlib/abstract/abstract_instance.py +69 -0
- aqpxlib-0.1.0/src/aqpxlib/channels.py +183 -0
- aqpxlib-0.1.0/src/aqpxlib/event.py +25 -0
- aqpxlib-0.1.0/src/aqpxlib/exceptions.py +24 -0
- aqpxlib-0.1.0/src/aqpxlib/i2c/__init__.py +25 -0
- aqpxlib-0.1.0/src/aqpxlib/i2c/i2c_32bit_register_target.py +83 -0
- aqpxlib-0.1.0/src/aqpxlib/i2c/i2c_base_controller.py +301 -0
- aqpxlib-0.1.0/src/aqpxlib/i2c/i2c_bus.py +132 -0
- aqpxlib-0.1.0/src/aqpxlib/i3c/__init__.py +31 -0
- aqpxlib-0.1.0/src/aqpxlib/i3c/ccc.py +9 -0
- aqpxlib-0.1.0/src/aqpxlib/i3c/i3c_32bit_register_target.py +324 -0
- aqpxlib-0.1.0/src/aqpxlib/i3c/i3c_base_controller.py +1618 -0
- aqpxlib-0.1.0/src/aqpxlib/i3c/i3c_bus.py +142 -0
- aqpxlib-0.1.0/src/aqpxlib/i3c/i3c_device_conf.py +6 -0
- aqpxlib-0.1.0/src/aqpxlib/message/.gitignore +1 -0
- aqpxlib-0.1.0/src/aqpxlib/message/__init__.py +1477 -0
- aqpxlib-0.1.0/src/aqpxlib/sessions.py +202 -0
- aqpxlib-0.1.0/src/aqpxlib/spi/__init__.py +25 -0
- aqpxlib-0.1.0/src/aqpxlib/spi/spi_32bit_register_target.py +43 -0
- aqpxlib-0.1.0/src/aqpxlib/spi/spi_base_controller.py +161 -0
- aqpxlib-0.1.0/src/aqpxlib/spi/spi_bus.py +144 -0
- aqpxlib-0.1.0/src/aqpxlib/toplevel.py +167 -0
- aqpxlib-0.1.0/src/aqpxlib/uart/__init__.py +17 -0
- aqpxlib-0.1.0/src/aqpxlib/uart/_uart_message.py +11 -0
- aqpxlib-0.1.0/src/aqpxlib/uart/uart_bus.py +113 -0
- aqpxlib-0.1.0/src/aqpxlib/uart/uart_rx.py +54 -0
- aqpxlib-0.1.0/src/aqpxlib/uart/uart_tx.py +60 -0
aqpxlib-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025, Acute Technology Inc.
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
16
|
+
contributors may be used to endorse or promote products derived from
|
|
17
|
+
this software without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
aqpxlib-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aqpxlib
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Acute Protocol Exerciser Python Libraries
|
|
5
|
+
Keywords: development
|
|
6
|
+
Author: Eric Tsai, Luke Silva, Duke
|
|
7
|
+
Author-email: Eric Tsai <erictsai@acute.com.tw>, Luke Silva <lukes@acute.com.tw>, Duke <duke@acute.com.tw>
|
|
8
|
+
License-Expression: BSD-3-Clause
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering
|
|
12
|
+
Classifier: Topic :: Software Development
|
|
13
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
14
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Science/Research
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Requires-Dist: betterproto==2.0.0b7
|
|
25
|
+
Requires-Dist: pyzmq>=26.2.0
|
|
26
|
+
Requires-Python: >=3.10
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
# Acute Protocol Exerciser Python Libraries (AQPXLIB)
|
|
30
|
+
|
|
31
|
+
[](https://opensource.org/licenses/BSD-3-Clause)
|
|
32
|
+
[](https://pypi.org/project/aqpxlib/)
|
|
33
|
+
|
|
34
|
+
The **Protocol Exerciser Library** is a friendly interface to interact with Acute's Protocol Exerciser instruments.
|
|
35
|
+
|
|
36
|
+
The key features are:
|
|
37
|
+
|
|
38
|
+
* **Friendly**: The library is fully written in Python with comprehensive type hints.
|
|
39
|
+
* **Intuitive**: Actions initiated by these simulated devices are just like real ones.
|
|
40
|
+
* **Easy to use**: Designed to be easy to use and integrate into your own projects.
|
|
41
|
+
|
|
42
|
+
## Supported series
|
|
43
|
+
|
|
44
|
+
| Type | Product Series |
|
|
45
|
+
| ---- | -------------- |
|
|
46
|
+
| Protocol Exerciser | [PX2816B](https://www.acute.com.tw/) |
|
aqpxlib-0.1.0/README.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Acute Protocol Exerciser Python Libraries (AQPXLIB)
|
|
2
|
+
|
|
3
|
+
[](https://opensource.org/licenses/BSD-3-Clause)
|
|
4
|
+
[](https://pypi.org/project/aqpxlib/)
|
|
5
|
+
|
|
6
|
+
The **Protocol Exerciser Library** is a friendly interface to interact with Acute's Protocol Exerciser instruments.
|
|
7
|
+
|
|
8
|
+
The key features are:
|
|
9
|
+
|
|
10
|
+
* **Friendly**: The library is fully written in Python with comprehensive type hints.
|
|
11
|
+
* **Intuitive**: Actions initiated by these simulated devices are just like real ones.
|
|
12
|
+
* **Easy to use**: Designed to be easy to use and integrate into your own projects.
|
|
13
|
+
|
|
14
|
+
## Supported series
|
|
15
|
+
|
|
16
|
+
| Type | Product Series |
|
|
17
|
+
| ---- | -------------- |
|
|
18
|
+
| Protocol Exerciser | [PX2816B](https://www.acute.com.tw/) |
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["uv_build >= 0.9.5, <0.10.0"]
|
|
3
|
+
build-backend = "uv_build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "aqpxlib"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Acute Protocol Exerciser Python Libraries"
|
|
9
|
+
license = "BSD-3-Clause"
|
|
10
|
+
license-files = ["LICENSE"]
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Eric Tsai", email = "erictsai@acute.com.tw" },
|
|
14
|
+
{ name = "Luke Silva", email = "lukes@acute.com.tw" },
|
|
15
|
+
{ name = "Duke", email = "duke@acute.com.tw" },
|
|
16
|
+
]
|
|
17
|
+
keywords = [ "development" ]
|
|
18
|
+
classifiers = [
|
|
19
|
+
"Development Status :: 4 - Beta",
|
|
20
|
+
"Topic :: Scientific/Engineering",
|
|
21
|
+
"Topic :: Software Development",
|
|
22
|
+
"Topic :: Software Development :: Libraries",
|
|
23
|
+
"License :: OSI Approved :: BSD License",
|
|
24
|
+
"Intended Audience :: Developers",
|
|
25
|
+
"Intended Audience :: Science/Research",
|
|
26
|
+
"Operating System :: OS Independent",
|
|
27
|
+
"Programming Language :: Python :: 3",
|
|
28
|
+
"Programming Language :: Python :: 3.10",
|
|
29
|
+
"Programming Language :: Python :: 3.11",
|
|
30
|
+
"Programming Language :: Python :: 3.12",
|
|
31
|
+
"Programming Language :: Python :: 3.13",
|
|
32
|
+
"Programming Language :: Python :: 3.14",
|
|
33
|
+
]
|
|
34
|
+
requires-python = ">=3.10"
|
|
35
|
+
dependencies = [
|
|
36
|
+
"betterproto==2.0.0b7",
|
|
37
|
+
"pyzmq>=26.2.0",
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
[tool.ruff]
|
|
41
|
+
line-length = 120
|
|
42
|
+
target-version = "py310"
|
|
43
|
+
respect-gitignore = true
|
|
44
|
+
src = ["src"]
|
|
45
|
+
exclude = [
|
|
46
|
+
".git",
|
|
47
|
+
"__pycache__",
|
|
48
|
+
".venv",
|
|
49
|
+
"tests",
|
|
50
|
+
"tools",
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
[tool.ruff.lint]
|
|
54
|
+
select = ["ALL"]
|
|
55
|
+
ignore = [
|
|
56
|
+
"ANN002", # Missing type annotation for *{name}
|
|
57
|
+
"ANN003", # Missing type annotation for **{name}
|
|
58
|
+
"ANN201", # Missing return type annotation for public function {name}
|
|
59
|
+
"ANN202", # Missing return type annotation for private function {name}
|
|
60
|
+
"ANN204", # Missing return type annotation for special method {name}
|
|
61
|
+
"ARG002", # Unused method argument: {name}
|
|
62
|
+
"B006", # Do not use mutable data structures for argument defaults
|
|
63
|
+
"B026", # Star-arg unpacking after a keyword argument is strongly discouraged
|
|
64
|
+
"FBT001", # Boolean-typed positional argument in function definition
|
|
65
|
+
"FBT002", # Boolean default positional argument in function definition
|
|
66
|
+
"FIX001", # Line contains FIXME, consider resolving the issue
|
|
67
|
+
"FIX002", # Line contains TODO, consider resolving the issue
|
|
68
|
+
"PLR0913", # Too many arguments in function definition ({c_args} > {max_args})
|
|
69
|
+
"PLR2004", # Magic value used in comparison, consider replacing {value} with a constant variable
|
|
70
|
+
"PLW1641", # Object does not implement __hash__ method
|
|
71
|
+
"S101", # Use of assert detected
|
|
72
|
+
"TD001", # Invalid TODO tag
|
|
73
|
+
"TD002", # Missing author in TODO
|
|
74
|
+
"TD003", # Missing issue link for this TODO
|
|
75
|
+
"TRY003", # Avoid specifying long messages outside the exception class
|
|
76
|
+
"TRY401", # Redundant exception object included in logging.exception call
|
|
77
|
+
]
|
|
78
|
+
|
|
79
|
+
[tool.ruff.format]
|
|
80
|
+
quote-style = "double"
|
|
81
|
+
indent-style = "space"
|
|
82
|
+
skip-magic-trailing-comma = false
|
|
83
|
+
line-ending = "auto"
|
|
84
|
+
|
|
85
|
+
[dependency-groups]
|
|
86
|
+
dev = [
|
|
87
|
+
"betterproto[compiler]==2.0.0b7",
|
|
88
|
+
"grpcio>=1.72.1",
|
|
89
|
+
"grpcio-tools>=1.72.1",
|
|
90
|
+
"mkdocs>=1.6.1",
|
|
91
|
+
"mkdocs-autorefs>=1.4.3",
|
|
92
|
+
"mkdocs-get-deps>=0.2.0",
|
|
93
|
+
"mkdocs-material>=9.6.22",
|
|
94
|
+
"mkdocs-material-extensions>=1.3.1",
|
|
95
|
+
"mkdocstrings>=0.30.1",
|
|
96
|
+
"mkdocstrings-python>=1.18.2",
|
|
97
|
+
"pytest>=8.4.2",
|
|
98
|
+
"ruff>=0.14.2",
|
|
99
|
+
"ty>=0.0.1a33",
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
[tool.ruff.lint.isort]
|
|
103
|
+
known-first-party = ["aqpxlib"]
|
|
104
|
+
|
|
105
|
+
[tool.ruff.lint.pyupgrade]
|
|
106
|
+
keep-runtime-typing = true
|
|
107
|
+
|
|
108
|
+
[tool.ty.src]
|
|
109
|
+
include = [
|
|
110
|
+
"src",
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
[tool.ty.rules]
|
|
114
|
+
# Ignore these rules for now, we will fix them in the future.
|
|
115
|
+
possibly-missing-attribute = "ignore"
|
|
116
|
+
invalid-method-override = "ignore"
|
|
117
|
+
invalid-argument-type = "ignore"
|
|
118
|
+
invalid-return-type = "ignore"
|
|
119
|
+
invalid-assignment = "ignore"
|
|
120
|
+
unresolved-attribute = "ignore"
|
|
121
|
+
parameter-already-assigned = "ignore"
|
|
122
|
+
|
|
123
|
+
[[tool.uv.index]]
|
|
124
|
+
name = "testpypi"
|
|
125
|
+
url = "https://test.pypi.org/simple/"
|
|
126
|
+
publish-url = "https://test.pypi.org/legacy/"
|
|
127
|
+
explicit = true
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Copyright 2025 Acute Technology Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause
|
|
3
|
+
"""Acute Protocol Exerciser Bus Instances."""
|
|
4
|
+
|
|
5
|
+
from aqpxlib.abstract.abstract_bus import PxAbstractBus
|
|
6
|
+
from aqpxlib.abstract.abstract_device import PxAbstractController, PxAbstractDevice, PxAbstractTarget
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"PxAbstractBus",
|
|
10
|
+
"PxAbstractController",
|
|
11
|
+
"PxAbstractDevice",
|
|
12
|
+
"PxAbstractTarget",
|
|
13
|
+
]
|