litearm-python 1.2.0__tar.gz → 1.2.1__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.
- {litearm_python-1.2.0/src/litearm_python.egg-info → litearm_python-1.2.1}/PKG-INFO +2 -2
- litearm_python-1.2.1/pyproject.toml +27 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/__init__.py +1 -1
- {litearm_python-1.2.0 → litearm_python-1.2.1/src/litearm_python.egg-info}/PKG-INFO +2 -2
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm_python.egg-info/SOURCES.txt +1 -0
- litearm_python-1.2.1/tests/test_package_metadata.py +28 -0
- litearm_python-1.2.0/pyproject.toml +0 -33
- {litearm_python-1.2.0 → litearm_python-1.2.1}/LICENSE +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/README.md +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/setup.cfg +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/__main__.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/_protocol.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/_rot.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/arm.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/cart.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/diagnostics.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/errors.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/log.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/model.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/params.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/payload.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/py.typed +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/state.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/testing.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/tool.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm/transport.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm_python.egg-info/dependency_links.txt +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm_python.egg-info/entry_points.txt +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm_python.egg-info/requires.txt +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm_python.egg-info/top_level.txt +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_ack_echo.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_arm_offline.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_banner.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_capability.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_cart_errors.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_cart_protocol.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_cart_queue.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_cart_wait.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_cli.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_dfu.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_diagnostics.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_doc_examples.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_error_codes.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_error_hierarchy.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_ff_io.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_fork_guard.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_frame_ownership.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_full_coverage.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_home.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_ik_bench.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_license.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_lifecycle.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_live.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_log.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_model.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_msg.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_offline.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_params.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_payload.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_protocol_crc.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_protocol_sync.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_public_api.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_request_and_get.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_silent_noops.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_status_layout.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_teardown.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_tool_offset.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_transport.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_transport_injection.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_transport_threadsafe.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_zero_g.py +0 -0
- {litearm_python-1.2.0 → litearm_python-1.2.1}/tests/test_zero_g_cart_guard.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: litearm-python
|
|
3
|
-
Version: 1.2.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 1.2.1
|
|
4
|
+
Summary: Python SDK for the LiteArm robotic arm
|
|
5
5
|
License: MIT
|
|
6
6
|
Requires-Python: >=3.9
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "litearm-python"
|
|
7
|
+
version = "1.2.1"
|
|
8
|
+
description = "Python SDK for the LiteArm robotic arm"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
dependencies = ["pyserial>=3.4"]
|
|
13
|
+
|
|
14
|
+
[project.optional-dependencies]
|
|
15
|
+
dev = ["pytest>=7"]
|
|
16
|
+
|
|
17
|
+
[project.scripts]
|
|
18
|
+
litearm-python = "litearm.arm:main"
|
|
19
|
+
|
|
20
|
+
[tool.pytest.ini_options]
|
|
21
|
+
testpaths = ["tests"]
|
|
22
|
+
|
|
23
|
+
[tool.setuptools.packages.find]
|
|
24
|
+
where = ["src"]
|
|
25
|
+
|
|
26
|
+
[tool.setuptools.package-data]
|
|
27
|
+
litearm = ["py.typed"]
|
|
@@ -92,7 +92,7 @@ from litearm.state import JointState, RobotState
|
|
|
92
92
|
from litearm.tool import TcpOffset
|
|
93
93
|
from litearm.transport import find_cdc_port
|
|
94
94
|
|
|
95
|
-
__version__ = "1.2.
|
|
95
|
+
__version__ = "1.2.1"
|
|
96
96
|
|
|
97
97
|
__all__ = [
|
|
98
98
|
"Arm", "Msg", "LicenseInfo", "RobotState", "JointState", "find_cdc_port", "main",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: litearm-python
|
|
3
|
-
Version: 1.2.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 1.2.1
|
|
4
|
+
Summary: Python SDK for the LiteArm robotic arm
|
|
5
5
|
License: MIT
|
|
6
6
|
Requires-Python: >=3.9
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"""Packaging metadata —— PyPI 把 `[project].description` 当作项目副标题展示。
|
|
2
|
+
|
|
3
|
+
副标题会直接出现在 PyPI 项目页和搜索结果里, 所以它必须是英文; 这条用例把
|
|
4
|
+
"别再把中文写回 description" 变成可检查的门禁。
|
|
5
|
+
"""
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import re
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
PYPROJECT = Path(__file__).resolve().parents[1] / "pyproject.toml"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _project_description() -> str:
|
|
15
|
+
text = PYPROJECT.read_text(encoding="utf-8")
|
|
16
|
+
match = re.search(r'^description\s*=\s*"([^"]*)"\s*$', text, re.MULTILINE)
|
|
17
|
+
assert match is not None, "pyproject.toml has no [project].description"
|
|
18
|
+
return match.group(1)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def test_pypi_subtitle_is_english():
|
|
22
|
+
"""PyPI 副标题 (Summary) 必须是英文, 不能是中文。"""
|
|
23
|
+
description = _project_description()
|
|
24
|
+
assert description, "[project].description must not be empty"
|
|
25
|
+
assert description.isascii(), (
|
|
26
|
+
"PyPI shows [project].description as the project subtitle; "
|
|
27
|
+
f"write it in English: {description!r}"
|
|
28
|
+
)
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["setuptools>=61"]
|
|
3
|
-
build-backend = "setuptools.build_meta"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "litearm-python"
|
|
7
|
-
version = "1.2.0"
|
|
8
|
-
description = "LiteArm STM32 直连后端 —— 薄协议 SDK (固件承担 S曲线/IK/动力学/控制律)"
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.9"
|
|
11
|
-
license = { text = "MIT" }
|
|
12
|
-
dependencies = ["pyserial>=3.4"]
|
|
13
|
-
# 唯一依赖是 pyserial —— 刻意不引 numpy:
|
|
14
|
-
# 运动学(FK/JAC/IK)全问固件 (`CMD_GET_TCP 0x43` / `CMD_GET_IK 0x42`), 笛卡尔规划
|
|
15
|
-
# (`move_l`/`move_c`/`move_path`) 也全在固件里 —— 不引模型, 也就不会和固件模型漂移。
|
|
16
|
-
# PC 侧只用 `math` (`_rot.py` 的位姿形态归一化与到位姿态判据)。
|
|
17
|
-
# 重型计算本来就在固件里, PC 侧用不上 numpy 的向量化。
|
|
18
|
-
|
|
19
|
-
[project.optional-dependencies]
|
|
20
|
-
dev = ["pytest>=7"]
|
|
21
|
-
|
|
22
|
-
[project.scripts]
|
|
23
|
-
litearm-python = "litearm.arm:main"
|
|
24
|
-
|
|
25
|
-
[tool.pytest.ini_options]
|
|
26
|
-
# 只跑本包的套件; old/ 是上游参照副本 (自带会 error 的用例), 不该被收集
|
|
27
|
-
testpaths = ["tests"]
|
|
28
|
-
|
|
29
|
-
[tool.setuptools.packages.find]
|
|
30
|
-
where = ["src"]
|
|
31
|
-
|
|
32
|
-
[tool.setuptools.package-data]
|
|
33
|
-
litearm = ["py.typed"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{litearm_python-1.2.0 → litearm_python-1.2.1}/src/litearm_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|