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.
Files changed (35) hide show
  1. aqpxlib-0.1.0/LICENSE +28 -0
  2. aqpxlib-0.1.0/PKG-INFO +46 -0
  3. aqpxlib-0.1.0/README.md +18 -0
  4. aqpxlib-0.1.0/pyproject.toml +127 -0
  5. aqpxlib-0.1.0/src/aqpxlib/__init__.py +8 -0
  6. aqpxlib-0.1.0/src/aqpxlib/abstract/__init__.py +13 -0
  7. aqpxlib-0.1.0/src/aqpxlib/abstract/abstract_bus.py +551 -0
  8. aqpxlib-0.1.0/src/aqpxlib/abstract/abstract_device.py +291 -0
  9. aqpxlib-0.1.0/src/aqpxlib/abstract/abstract_instance.py +69 -0
  10. aqpxlib-0.1.0/src/aqpxlib/channels.py +183 -0
  11. aqpxlib-0.1.0/src/aqpxlib/event.py +25 -0
  12. aqpxlib-0.1.0/src/aqpxlib/exceptions.py +24 -0
  13. aqpxlib-0.1.0/src/aqpxlib/i2c/__init__.py +25 -0
  14. aqpxlib-0.1.0/src/aqpxlib/i2c/i2c_32bit_register_target.py +83 -0
  15. aqpxlib-0.1.0/src/aqpxlib/i2c/i2c_base_controller.py +301 -0
  16. aqpxlib-0.1.0/src/aqpxlib/i2c/i2c_bus.py +132 -0
  17. aqpxlib-0.1.0/src/aqpxlib/i3c/__init__.py +31 -0
  18. aqpxlib-0.1.0/src/aqpxlib/i3c/ccc.py +9 -0
  19. aqpxlib-0.1.0/src/aqpxlib/i3c/i3c_32bit_register_target.py +324 -0
  20. aqpxlib-0.1.0/src/aqpxlib/i3c/i3c_base_controller.py +1618 -0
  21. aqpxlib-0.1.0/src/aqpxlib/i3c/i3c_bus.py +142 -0
  22. aqpxlib-0.1.0/src/aqpxlib/i3c/i3c_device_conf.py +6 -0
  23. aqpxlib-0.1.0/src/aqpxlib/message/.gitignore +1 -0
  24. aqpxlib-0.1.0/src/aqpxlib/message/__init__.py +1477 -0
  25. aqpxlib-0.1.0/src/aqpxlib/sessions.py +202 -0
  26. aqpxlib-0.1.0/src/aqpxlib/spi/__init__.py +25 -0
  27. aqpxlib-0.1.0/src/aqpxlib/spi/spi_32bit_register_target.py +43 -0
  28. aqpxlib-0.1.0/src/aqpxlib/spi/spi_base_controller.py +161 -0
  29. aqpxlib-0.1.0/src/aqpxlib/spi/spi_bus.py +144 -0
  30. aqpxlib-0.1.0/src/aqpxlib/toplevel.py +167 -0
  31. aqpxlib-0.1.0/src/aqpxlib/uart/__init__.py +17 -0
  32. aqpxlib-0.1.0/src/aqpxlib/uart/_uart_message.py +11 -0
  33. aqpxlib-0.1.0/src/aqpxlib/uart/uart_bus.py +113 -0
  34. aqpxlib-0.1.0/src/aqpxlib/uart/uart_rx.py +54 -0
  35. 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
+ [![License](https://img.shields.io/badge/License-BSD_3--Clause-orange.svg)](https://opensource.org/licenses/BSD-3-Clause)
32
+ [![PyPI](https://img.shields.io/pypi/v/aqpxlib)](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/) |
@@ -0,0 +1,18 @@
1
+ # Acute Protocol Exerciser Python Libraries (AQPXLIB)
2
+
3
+ [![License](https://img.shields.io/badge/License-BSD_3--Clause-orange.svg)](https://opensource.org/licenses/BSD-3-Clause)
4
+ [![PyPI](https://img.shields.io/pypi/v/aqpxlib)](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,8 @@
1
+ # Copyright 2025 Acute Technology Inc. All rights reserved.
2
+ # SPDX-License-Identifier: BSD-3-Clause
3
+ """Acute Protocol Exerciser Library."""
4
+
5
+ from .toplevel import AqProtocolExerciser
6
+
7
+ __version__ = "0.0.1"
8
+ __all__ = ["AqProtocolExerciser"]
@@ -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
+ ]