|
1 | | -[build-system] |
2 | | -requires = ["setuptools>=61.0"] |
3 | | -build-backend = "setuptools.build_meta" |
4 | | - |
5 | | -[project] |
6 | | -name = "parol6" |
7 | | -version = "0.2.2" |
8 | | -description = "Python library for controlling PAROL6 robot arms" |
9 | | - |
10 | | -requires-python = ">=3.11" |
11 | | -dependencies = [ |
12 | | - # pinokin: Pinocchio-based FK/IK bindings |
13 | | - # https://github.com/Jepson2k/pinokin/releases/tag/v0.1.5 |
14 | | - |
15 | | - # macOS ARM64 (Apple Silicon) |
16 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp311-cp311-macosx_15_0_arm64.whl ; python_version == '3.11' and platform_system == 'Darwin' and platform_machine == 'arm64'", |
17 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp312-cp312-macosx_15_0_arm64.whl ; python_version == '3.12' and platform_system == 'Darwin' and platform_machine == 'arm64'", |
18 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp313-cp313-macosx_15_0_arm64.whl ; python_version == '3.13' and platform_system == 'Darwin' and platform_machine == 'arm64'", |
19 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp314-cp314-macosx_15_0_arm64.whl ; python_version == '3.14' and platform_system == 'Darwin' and platform_machine == 'arm64'", |
20 | | - |
21 | | - # Windows AMD64 |
22 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp311-cp311-win_amd64.whl ; python_version == '3.11' and platform_system == 'Windows' and platform_machine == 'AMD64'", |
23 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp312-cp312-win_amd64.whl ; python_version == '3.12' and platform_system == 'Windows' and platform_machine == 'AMD64'", |
24 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp313-cp313-win_amd64.whl ; python_version == '3.13' and platform_system == 'Windows' and platform_machine == 'AMD64'", |
25 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp314-cp314-win_amd64.whl ; python_version == '3.14' and platform_system == 'Windows' and platform_machine == 'AMD64'", |
26 | | - |
27 | | - # Linux x86_64 |
28 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp311-cp311-manylinux_2_39_x86_64.whl ; python_version == '3.11' and platform_system == 'Linux' and platform_machine == 'x86_64'", |
29 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp312-cp312-manylinux_2_39_x86_64.whl ; python_version == '3.12' and platform_system == 'Linux' and platform_machine == 'x86_64'", |
30 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp313-cp313-manylinux_2_39_x86_64.whl ; python_version == '3.13' and platform_system == 'Linux' and platform_machine == 'x86_64'", |
31 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp314-cp314-manylinux_2_39_x86_64.whl ; python_version == '3.14' and platform_system == 'Linux' and platform_machine == 'x86_64'", |
32 | | - |
33 | | - # Linux aarch64 (ARM64) |
34 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp311-cp311-manylinux_2_39_aarch64.whl ; python_version == '3.11' and platform_system == 'Linux' and platform_machine == 'aarch64'", |
35 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp312-cp312-manylinux_2_39_aarch64.whl ; python_version == '3.12' and platform_system == 'Linux' and platform_machine == 'aarch64'", |
36 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp313-cp313-manylinux_2_39_aarch64.whl ; python_version == '3.13' and platform_system == 'Linux' and platform_machine == 'aarch64'", |
37 | | - "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp314-cp314-manylinux_2_39_aarch64.whl ; python_version == '3.14' and platform_system == 'Linux' and platform_machine == 'aarch64'", |
38 | | - |
39 | | - "pyserial>=3.4", |
40 | | - "scipy>=1.11.4", |
41 | | - "ruckig>=0.12.2", |
42 | | - "toppra>=0.6.3", |
43 | | - "interpolatepy>=2.0.0", |
44 | | - "numpy>=2.0", |
45 | | - "numba>=0.59", |
46 | | - "psutil>=5.9", |
47 | | - "msgspec>=0.18", |
48 | | - "ormsgpack>=1.4.0", |
49 | | - "waldoctl @ git+https://github.com/Jepson2k/waldoctl.git@v0.2.0", |
50 | | -] |
51 | | - |
52 | | -[tool.setuptools.packages.find] |
53 | | -include = ["parol6*"] |
54 | | - |
55 | | -[project.optional-dependencies] |
56 | | -dev = [ |
57 | | - "ruff", |
58 | | - "ty", |
59 | | - "pytest", |
60 | | - "pytest-asyncio", |
61 | | - "pytest-timeout", |
62 | | - "pre-commit", |
63 | | - "trimesh", |
64 | | - "fast-simplification", |
65 | | - "rtree", |
66 | | - "scipy-stubs", |
67 | | - "types-pyserial", |
68 | | -] |
69 | | - |
70 | | -[project.scripts] |
71 | | -parol6-server = "parol6.cli.server:main_entry" |
72 | | - |
73 | | -[project.entry-points."waldoctl.robots"] |
74 | | -parol6 = "parol6.robot:Robot" |
75 | | - |
76 | | -[tool.pytest.ini_options] |
77 | | -testpaths = ["tests"] |
78 | | -python_files = ["test_*.py"] |
79 | | -python_classes = ["Test*"] |
80 | | -python_functions = ["test_*"] |
81 | | -addopts = [ |
82 | | - "--strict-markers", |
83 | | - "--strict-config", |
84 | | - "-ra", |
85 | | - "--junitxml=test-results.xml", |
86 | | -] |
87 | | -timeout = 45 |
88 | | -timeout_method = "thread" |
89 | | -markers = [ |
90 | | - "unit: Unit tests that test individual components in isolation", |
91 | | - "integration: Integration tests that test component interactions with FAKE_SERIAL", |
92 | | - "e2e: End-to-end tests that exercise complete workflows", |
93 | | - "examples: Standalone example scripts (binds port 5001, run with `pytest -m examples`)", |
94 | | -] |
95 | | -log_cli = false |
96 | | -log_level = "DEBUG" |
97 | | -filterwarnings = [ |
98 | | - "ignore::DeprecationWarning", |
99 | | - "ignore::PendingDeprecationWarning", |
100 | | -] |
101 | | - |
102 | | -[tool.ty] |
103 | | -# Dynamic Command union (built at import time from tagged structs) |
104 | | -# generates invalid-type-form in all files that reference it. |
105 | | -[[tool.ty.overrides]] |
106 | | -include = [ |
107 | | - "parol6/protocol/wire.py", |
108 | | - "parol6/commands/base.py", |
109 | | - "parol6/server/command_registry.py", |
110 | | - "parol6/server/command_executor.py", |
111 | | -] |
112 | | -[tool.ty.overrides.rules] |
113 | | -invalid-type-form = "ignore" |
114 | | - |
115 | | -[tool.setuptools] |
116 | | -include-package-data = true |
117 | | - |
118 | | -[tool.setuptools.package-data] |
119 | | -parol6 = ["urdf_model/**"] |
120 | | - |
121 | | -# Release tooling: `tbump <new_version>` edits pyproject.toml, commits, tags |
122 | | -# and pushes (main + tag) in one shot. Install with `pip install tbump`. |
123 | | -[tool.tbump] |
124 | | -github_url = "https://github.com/Jepson2k/PAROL6-python-API" |
125 | | - |
126 | | -[tool.tbump.version] |
127 | | -current = "0.2.2" |
128 | | -regex = '''(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)''' |
129 | | - |
130 | | -[tool.tbump.git] |
131 | | -message_template = "bump version to {new_version}" |
132 | | -tag_template = "v{new_version}" |
133 | | - |
134 | | -[[tool.tbump.file]] |
135 | | -src = "pyproject.toml" |
136 | | -search = 'version = "{current_version}"' |
| 1 | +[build-system] |
| 2 | +requires = ["setuptools>=61.0"] |
| 3 | +build-backend = "setuptools.build_meta" |
| 4 | + |
| 5 | +[project] |
| 6 | +name = "parol6" |
| 7 | +version = "0.2.3" |
| 8 | +description = "Python library for controlling PAROL6 robot arms" |
| 9 | + |
| 10 | +requires-python = ">=3.11" |
| 11 | +dependencies = [ |
| 12 | + # pinokin: Pinocchio-based FK/IK bindings |
| 13 | + # https://github.com/Jepson2k/pinokin/releases/tag/v0.1.5 |
| 14 | + |
| 15 | + # macOS ARM64 (Apple Silicon) |
| 16 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp311-cp311-macosx_15_0_arm64.whl ; python_version == '3.11' and platform_system == 'Darwin' and platform_machine == 'arm64'", |
| 17 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp312-cp312-macosx_15_0_arm64.whl ; python_version == '3.12' and platform_system == 'Darwin' and platform_machine == 'arm64'", |
| 18 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp313-cp313-macosx_15_0_arm64.whl ; python_version == '3.13' and platform_system == 'Darwin' and platform_machine == 'arm64'", |
| 19 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp314-cp314-macosx_15_0_arm64.whl ; python_version == '3.14' and platform_system == 'Darwin' and platform_machine == 'arm64'", |
| 20 | + |
| 21 | + # Windows AMD64 |
| 22 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp311-cp311-win_amd64.whl ; python_version == '3.11' and platform_system == 'Windows' and platform_machine == 'AMD64'", |
| 23 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp312-cp312-win_amd64.whl ; python_version == '3.12' and platform_system == 'Windows' and platform_machine == 'AMD64'", |
| 24 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp313-cp313-win_amd64.whl ; python_version == '3.13' and platform_system == 'Windows' and platform_machine == 'AMD64'", |
| 25 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp314-cp314-win_amd64.whl ; python_version == '3.14' and platform_system == 'Windows' and platform_machine == 'AMD64'", |
| 26 | + |
| 27 | + # Linux x86_64 |
| 28 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp311-cp311-manylinux_2_39_x86_64.whl ; python_version == '3.11' and platform_system == 'Linux' and platform_machine == 'x86_64'", |
| 29 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp312-cp312-manylinux_2_39_x86_64.whl ; python_version == '3.12' and platform_system == 'Linux' and platform_machine == 'x86_64'", |
| 30 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp313-cp313-manylinux_2_39_x86_64.whl ; python_version == '3.13' and platform_system == 'Linux' and platform_machine == 'x86_64'", |
| 31 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp314-cp314-manylinux_2_39_x86_64.whl ; python_version == '3.14' and platform_system == 'Linux' and platform_machine == 'x86_64'", |
| 32 | + |
| 33 | + # Linux aarch64 (ARM64) |
| 34 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp311-cp311-manylinux_2_39_aarch64.whl ; python_version == '3.11' and platform_system == 'Linux' and platform_machine == 'aarch64'", |
| 35 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp312-cp312-manylinux_2_39_aarch64.whl ; python_version == '3.12' and platform_system == 'Linux' and platform_machine == 'aarch64'", |
| 36 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp313-cp313-manylinux_2_39_aarch64.whl ; python_version == '3.13' and platform_system == 'Linux' and platform_machine == 'aarch64'", |
| 37 | + "pinokin @ https://github.com/Jepson2k/pinokin/releases/download/v0.1.5/pinokin-0.1.5-cp314-cp314-manylinux_2_39_aarch64.whl ; python_version == '3.14' and platform_system == 'Linux' and platform_machine == 'aarch64'", |
| 38 | + |
| 39 | + "pyserial>=3.4", |
| 40 | + "scipy>=1.11.4", |
| 41 | + "ruckig>=0.12.2", |
| 42 | + "toppra>=0.6.3", |
| 43 | + "interpolatepy>=2.0.0", |
| 44 | + "numpy>=2.0", |
| 45 | + "numba>=0.59", |
| 46 | + "psutil>=5.9", |
| 47 | + "msgspec>=0.18", |
| 48 | + "ormsgpack>=1.4.0", |
| 49 | + "waldoctl @ git+https://github.com/Jepson2k/waldoctl.git@v0.2.0", |
| 50 | +] |
| 51 | + |
| 52 | +[tool.setuptools.packages.find] |
| 53 | +include = ["parol6*"] |
| 54 | + |
| 55 | +[project.optional-dependencies] |
| 56 | +dev = [ |
| 57 | + "ruff", |
| 58 | + "ty", |
| 59 | + "pytest", |
| 60 | + "pytest-asyncio", |
| 61 | + "pytest-timeout", |
| 62 | + "pre-commit", |
| 63 | + "trimesh", |
| 64 | + "fast-simplification", |
| 65 | + "rtree", |
| 66 | + "scipy-stubs", |
| 67 | + "types-pyserial", |
| 68 | +] |
| 69 | + |
| 70 | +[project.scripts] |
| 71 | +parol6-server = "parol6.cli.server:main_entry" |
| 72 | + |
| 73 | +[project.entry-points."waldoctl.robots"] |
| 74 | +parol6 = "parol6.robot:Robot" |
| 75 | + |
| 76 | +[tool.pytest.ini_options] |
| 77 | +testpaths = ["tests"] |
| 78 | +python_files = ["test_*.py"] |
| 79 | +python_classes = ["Test*"] |
| 80 | +python_functions = ["test_*"] |
| 81 | +addopts = [ |
| 82 | + "--strict-markers", |
| 83 | + "--strict-config", |
| 84 | + "-ra", |
| 85 | + "--junitxml=test-results.xml", |
| 86 | +] |
| 87 | +timeout = 45 |
| 88 | +timeout_method = "thread" |
| 89 | +markers = [ |
| 90 | + "unit: Unit tests that test individual components in isolation", |
| 91 | + "integration: Integration tests that test component interactions with FAKE_SERIAL", |
| 92 | + "e2e: End-to-end tests that exercise complete workflows", |
| 93 | + "examples: Standalone example scripts (binds port 5001, run with `pytest -m examples`)", |
| 94 | +] |
| 95 | +log_cli = false |
| 96 | +log_level = "DEBUG" |
| 97 | +filterwarnings = [ |
| 98 | + "ignore::DeprecationWarning", |
| 99 | + "ignore::PendingDeprecationWarning", |
| 100 | +] |
| 101 | + |
| 102 | +[tool.ty] |
| 103 | +# Dynamic Command union (built at import time from tagged structs) |
| 104 | +# generates invalid-type-form in all files that reference it. |
| 105 | +[[tool.ty.overrides]] |
| 106 | +include = [ |
| 107 | + "parol6/protocol/wire.py", |
| 108 | + "parol6/commands/base.py", |
| 109 | + "parol6/server/command_registry.py", |
| 110 | + "parol6/server/command_executor.py", |
| 111 | +] |
| 112 | +[tool.ty.overrides.rules] |
| 113 | +invalid-type-form = "ignore" |
| 114 | + |
| 115 | +[tool.setuptools] |
| 116 | +include-package-data = true |
| 117 | + |
| 118 | +[tool.setuptools.package-data] |
| 119 | +parol6 = ["urdf_model/**"] |
| 120 | + |
| 121 | +# Release tooling: `tbump <new_version>` edits pyproject.toml, commits, tags |
| 122 | +# and pushes (main + tag) in one shot. Install with `pip install tbump`. |
| 123 | +[tool.tbump] |
| 124 | +github_url = "https://github.com/Jepson2k/PAROL6-python-API" |
| 125 | + |
| 126 | +[tool.tbump.version] |
| 127 | +current = "0.2.3" |
| 128 | +regex = '''(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)''' |
| 129 | + |
| 130 | +[tool.tbump.git] |
| 131 | +message_template = "bump version to {new_version}" |
| 132 | +tag_template = "v{new_version}" |
| 133 | + |
| 134 | +[[tool.tbump.file]] |
| 135 | +src = "pyproject.toml" |
| 136 | +search = 'version = "{current_version}"' |
0 commit comments