antioch-py 1.9.7__tar.gz → 2.0.3__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.

Potentially problematic release.


This version of antioch-py might be problematic. Click here for more details.

Files changed (109) hide show
  1. antioch_py-2.0.3/MANIFEST.in +3 -0
  2. antioch_py-2.0.3/PKG-INFO +96 -0
  3. antioch_py-2.0.3/README.md +32 -0
  4. antioch_py-2.0.3/README.pypi.md +60 -0
  5. antioch_py-2.0.3/antioch_py.egg-info/PKG-INFO +96 -0
  6. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch_py.egg-info/SOURCES.txt +2 -0
  7. {antioch_py-1.9.7 → antioch_py-2.0.3}/pyproject.toml +28 -3
  8. antioch_py-1.9.7/PKG-INFO +0 -24
  9. antioch_py-1.9.7/README.md +0 -213
  10. antioch_py-1.9.7/antioch_py.egg-info/PKG-INFO +0 -24
  11. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/__init__.py +0 -0
  12. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/message.py +0 -0
  13. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/module/__init__.py +0 -0
  14. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/module/clock.py +0 -0
  15. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/module/execution.py +0 -0
  16. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/module/input.py +0 -0
  17. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/module/module.py +0 -0
  18. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/module/node.py +0 -0
  19. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/module/token.py +0 -0
  20. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/__init__.py +0 -0
  21. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/ark.py +0 -0
  22. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/asset.py +0 -0
  23. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/error.py +0 -0
  24. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/record.py +0 -0
  25. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/scene.py +0 -0
  26. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/session.py +0 -0
  27. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/task.py +0 -0
  28. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/__init__.py +0 -0
  29. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/animation.py +0 -0
  30. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/articulation.py +0 -0
  31. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/basis_curve.py +0 -0
  32. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/camera.py +0 -0
  33. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/collision.py +0 -0
  34. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/geometry.py +0 -0
  35. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/ground_plane.py +0 -0
  36. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/imu.py +0 -0
  37. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/joint.py +0 -0
  38. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/light.py +0 -0
  39. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/pir_sensor.py +0 -0
  40. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/radar.py +0 -0
  41. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/rigid_body.py +0 -0
  42. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch/session/views/xform.py +0 -0
  43. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch_py.egg-info/dependency_links.txt +0 -0
  44. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch_py.egg-info/entry_points.txt +0 -0
  45. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch_py.egg-info/requires.txt +0 -0
  46. {antioch_py-1.9.7 → antioch_py-2.0.3}/antioch_py.egg-info/top_level.txt +0 -0
  47. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/__init__.py +0 -0
  48. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/ark/__init__.py +0 -0
  49. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/ark/ark.py +0 -0
  50. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/ark/hardware.py +0 -0
  51. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/ark/kinematics.py +0 -0
  52. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/ark/module.py +0 -0
  53. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/ark/node.py +0 -0
  54. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/ark/scheduler.py +0 -0
  55. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/ark/sim.py +0 -0
  56. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/assets/__init__.py +0 -0
  57. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/constants.py +0 -0
  58. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/core/__init__.py +0 -0
  59. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/core/agent.py +0 -0
  60. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/core/auth.py +0 -0
  61. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/core/registry.py +0 -0
  62. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/core/task.py +0 -0
  63. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/__init__.py +0 -0
  64. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/annotation.py +0 -0
  65. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/array.py +0 -0
  66. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/base.py +0 -0
  67. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/camera.py +0 -0
  68. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/color.py +0 -0
  69. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/frame.py +0 -0
  70. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/image.py +0 -0
  71. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/imu.py +0 -0
  72. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/joint.py +0 -0
  73. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/log.py +0 -0
  74. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/pir.py +0 -0
  75. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/point.py +0 -0
  76. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/point_cloud.py +0 -0
  77. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/pose.py +0 -0
  78. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/quaternion.py +0 -0
  79. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/radar.py +0 -0
  80. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/types.py +0 -0
  81. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/message/vector.py +0 -0
  82. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/rome/__init__.py +0 -0
  83. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/rome/client.py +0 -0
  84. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/rome/error.py +0 -0
  85. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/__init__.py +0 -0
  86. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/environment.py +0 -0
  87. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/sim.py +0 -0
  88. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/__init__.py +0 -0
  89. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/animation.py +0 -0
  90. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/articulation.py +0 -0
  91. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/basis_curve.py +0 -0
  92. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/camera.py +0 -0
  93. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/collision.py +0 -0
  94. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/geometry.py +0 -0
  95. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/ground_plane.py +0 -0
  96. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/imu.py +0 -0
  97. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/joint.py +0 -0
  98. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/light.py +0 -0
  99. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/pir_sensor.py +0 -0
  100. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/radar.py +0 -0
  101. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/rigid_body.py +0 -0
  102. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/viewport.py +0 -0
  103. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/session/views/xform.py +0 -0
  104. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/utils/__init__.py +0 -0
  105. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/utils/comms.py +0 -0
  106. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/utils/logger.py +0 -0
  107. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/utils/time.py +0 -0
  108. {antioch_py-1.9.7 → antioch_py-2.0.3}/common/utils/usd.py +0 -0
  109. {antioch_py-1.9.7 → antioch_py-2.0.3}/setup.cfg +0 -0
@@ -0,0 +1,3 @@
1
+ include README.pypi.md
2
+ include LICENSE
3
+
@@ -0,0 +1,96 @@
1
+ Metadata-Version: 2.4
2
+ Name: antioch-py
3
+ Version: 2.0.3
4
+ Summary: The Antioch Python SDK
5
+ Author-email: Antioch Robotics <support@antioch.dev>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://antioch.com
8
+ Keywords: robotics,simulation,middleware,sdk
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Requires-Python: <3.13,>=3.12
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: click>=8.0.0
18
+ Requires-Dist: click>=8.3.0
19
+ Requires-Dist: eclipse-zenoh>=1.5.0
20
+ Requires-Dist: google-cloud-artifact-registry>=1.16.1
21
+ Requires-Dist: httpx>=0.27.0
22
+ Requires-Dist: loguru>=0.7.3
23
+ Requires-Dist: msgpack==1.1.1
24
+ Requires-Dist: msgpack>=1.1.1
25
+ Requires-Dist: numpy==1.26.0
26
+ Requires-Dist: ormsgpack>=1.6.0
27
+ Requires-Dist: pydantic>=2.11.6
28
+ Requires-Dist: pydantic>=2.11.7
29
+ Requires-Dist: python-on-whales>=0.78.0
30
+ Requires-Dist: pyyaml>=6.0.2
31
+ Requires-Dist: requests>=2.32.0
32
+ Requires-Dist: scipy==1.15.3
33
+ Requires-Dist: sortedcontainers-stubs>=2.4.3
34
+ Requires-Dist: sortedcontainers>=2.4.0
35
+ Requires-Dist: tqdm>=4.67.1
36
+
37
+ # antioch-py
38
+
39
+ Python SDK for the [Antioch](https://antioch.com) robotics simulation platform.
40
+
41
+ ## Overview
42
+
43
+ The antioch-py package provides two main components:
44
+
45
+ ### Module SDK (`antioch.module`)
46
+
47
+ Build robotics software modules in Python. The Module SDK is designed to be installed inside your module's Dockerfile, giving you access to the Antioch runtime for processing sensor data, controlling actuators, and communicating with other modules.
48
+
49
+ ```python
50
+ from antioch.module import Module, Image, JointTargets
51
+
52
+ class MyController(Module):
53
+ def execute(self, image: Image) -> JointTargets:
54
+ # Your control logic here
55
+ ...
56
+ ```
57
+
58
+ ### Session SDK (`antioch.session`)
59
+
60
+ Build and orchestrate simulation sessions programmatically. The Session SDK lets you create scenes, spawn robots, configure sensors, and run tasks from Python scripts or notebooks.
61
+
62
+ ```python
63
+ from antioch.session import Session, Scene, Articulation
64
+
65
+ async with Session() as session:
66
+ scene = await session.create_scene()
67
+ robot = await scene.spawn(Articulation, usd_path="robot.usd")
68
+ await scene.play()
69
+ ```
70
+
71
+ ## Installation
72
+
73
+ ```bash
74
+ pip install antioch-py
75
+ ```
76
+
77
+ ### Docker (for modules)
78
+
79
+ ```dockerfile
80
+ FROM python:3.12-slim
81
+
82
+ RUN pip install antioch-py
83
+
84
+ COPY . /app
85
+ WORKDIR /app
86
+
87
+ CMD ["python", "main.py"]
88
+ ```
89
+
90
+ ## Documentation
91
+
92
+ Visit [antioch.com](https://antioch.com) for full documentation and examples.
93
+
94
+ ## License
95
+
96
+ MIT
@@ -0,0 +1,32 @@
1
+ # Antioch Python
2
+
3
+ Python client library for the Antioch middleware platform.
4
+
5
+ ## Installation
6
+
7
+ Authenticate your local environment with GCP via the Google Cloud CLI:
8
+
9
+ ```bash
10
+ gcloud auth login # Login to Google Cloud
11
+ gcloud config set project proof-of-concept-staging-9072 # Set the correct project
12
+ gcloud auth application-default login # Create app credentials
13
+ ```
14
+
15
+ This project uses [uv](https://github.com/astral-sh/uv), a fast Python package and project manager. Install it and set up authentication:
16
+
17
+ ```bash
18
+ # Install uv
19
+ curl -LsSf https://astral.sh/uv/install.sh | sh
20
+
21
+ # Install keyring authentication globally for uv
22
+ uv tool install keyring --with keyrings.google-artifactregistry-auth
23
+
24
+ # Install all default groups in one step
25
+ uv sync
26
+ ```
27
+
28
+ Install the pre-commit hooks to auto-run `uv sync` and `ruff format` on Git commit:
29
+
30
+ ```bash
31
+ uv run pre-commit install
32
+ ```
@@ -0,0 +1,60 @@
1
+ # antioch-py
2
+
3
+ Python SDK for the [Antioch](https://antioch.com) robotics simulation platform.
4
+
5
+ ## Overview
6
+
7
+ The antioch-py package provides two main components:
8
+
9
+ ### Module SDK (`antioch.module`)
10
+
11
+ Build robotics software modules in Python. The Module SDK is designed to be installed inside your module's Dockerfile, giving you access to the Antioch runtime for processing sensor data, controlling actuators, and communicating with other modules.
12
+
13
+ ```python
14
+ from antioch.module import Module, Image, JointTargets
15
+
16
+ class MyController(Module):
17
+ def execute(self, image: Image) -> JointTargets:
18
+ # Your control logic here
19
+ ...
20
+ ```
21
+
22
+ ### Session SDK (`antioch.session`)
23
+
24
+ Build and orchestrate simulation sessions programmatically. The Session SDK lets you create scenes, spawn robots, configure sensors, and run tasks from Python scripts or notebooks.
25
+
26
+ ```python
27
+ from antioch.session import Session, Scene, Articulation
28
+
29
+ async with Session() as session:
30
+ scene = await session.create_scene()
31
+ robot = await scene.spawn(Articulation, usd_path="robot.usd")
32
+ await scene.play()
33
+ ```
34
+
35
+ ## Installation
36
+
37
+ ```bash
38
+ pip install antioch-py
39
+ ```
40
+
41
+ ### Docker (for modules)
42
+
43
+ ```dockerfile
44
+ FROM python:3.12-slim
45
+
46
+ RUN pip install antioch-py
47
+
48
+ COPY . /app
49
+ WORKDIR /app
50
+
51
+ CMD ["python", "main.py"]
52
+ ```
53
+
54
+ ## Documentation
55
+
56
+ Visit [antioch.com](https://antioch.com) for full documentation and examples.
57
+
58
+ ## License
59
+
60
+ MIT
@@ -0,0 +1,96 @@
1
+ Metadata-Version: 2.4
2
+ Name: antioch-py
3
+ Version: 2.0.3
4
+ Summary: The Antioch Python SDK
5
+ Author-email: Antioch Robotics <support@antioch.dev>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://antioch.com
8
+ Keywords: robotics,simulation,middleware,sdk
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Requires-Python: <3.13,>=3.12
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: click>=8.0.0
18
+ Requires-Dist: click>=8.3.0
19
+ Requires-Dist: eclipse-zenoh>=1.5.0
20
+ Requires-Dist: google-cloud-artifact-registry>=1.16.1
21
+ Requires-Dist: httpx>=0.27.0
22
+ Requires-Dist: loguru>=0.7.3
23
+ Requires-Dist: msgpack==1.1.1
24
+ Requires-Dist: msgpack>=1.1.1
25
+ Requires-Dist: numpy==1.26.0
26
+ Requires-Dist: ormsgpack>=1.6.0
27
+ Requires-Dist: pydantic>=2.11.6
28
+ Requires-Dist: pydantic>=2.11.7
29
+ Requires-Dist: python-on-whales>=0.78.0
30
+ Requires-Dist: pyyaml>=6.0.2
31
+ Requires-Dist: requests>=2.32.0
32
+ Requires-Dist: scipy==1.15.3
33
+ Requires-Dist: sortedcontainers-stubs>=2.4.3
34
+ Requires-Dist: sortedcontainers>=2.4.0
35
+ Requires-Dist: tqdm>=4.67.1
36
+
37
+ # antioch-py
38
+
39
+ Python SDK for the [Antioch](https://antioch.com) robotics simulation platform.
40
+
41
+ ## Overview
42
+
43
+ The antioch-py package provides two main components:
44
+
45
+ ### Module SDK (`antioch.module`)
46
+
47
+ Build robotics software modules in Python. The Module SDK is designed to be installed inside your module's Dockerfile, giving you access to the Antioch runtime for processing sensor data, controlling actuators, and communicating with other modules.
48
+
49
+ ```python
50
+ from antioch.module import Module, Image, JointTargets
51
+
52
+ class MyController(Module):
53
+ def execute(self, image: Image) -> JointTargets:
54
+ # Your control logic here
55
+ ...
56
+ ```
57
+
58
+ ### Session SDK (`antioch.session`)
59
+
60
+ Build and orchestrate simulation sessions programmatically. The Session SDK lets you create scenes, spawn robots, configure sensors, and run tasks from Python scripts or notebooks.
61
+
62
+ ```python
63
+ from antioch.session import Session, Scene, Articulation
64
+
65
+ async with Session() as session:
66
+ scene = await session.create_scene()
67
+ robot = await scene.spawn(Articulation, usd_path="robot.usd")
68
+ await scene.play()
69
+ ```
70
+
71
+ ## Installation
72
+
73
+ ```bash
74
+ pip install antioch-py
75
+ ```
76
+
77
+ ### Docker (for modules)
78
+
79
+ ```dockerfile
80
+ FROM python:3.12-slim
81
+
82
+ RUN pip install antioch-py
83
+
84
+ COPY . /app
85
+ WORKDIR /app
86
+
87
+ CMD ["python", "main.py"]
88
+ ```
89
+
90
+ ## Documentation
91
+
92
+ Visit [antioch.com](https://antioch.com) for full documentation and examples.
93
+
94
+ ## License
95
+
96
+ MIT
@@ -1,4 +1,6 @@
1
+ MANIFEST.in
1
2
  README.md
3
+ README.pypi.md
2
4
  pyproject.toml
3
5
  antioch/__init__.py
4
6
  antioch/message.py
@@ -1,8 +1,27 @@
1
1
  [project]
2
2
  name = "antioch-py"
3
- version = "1.9.7"
4
- description = "Python implementation of the Antioch middleware for distributed systems"
5
- requires-python = ">=3.12"
3
+ version = "2.0.3"
4
+ description = "The Antioch Python SDK"
5
+ readme = "README.pypi.md"
6
+ license = "MIT"
7
+ requires-python = ">=3.12,<3.13"
8
+ authors = [
9
+ { name = "Antioch Robotics", email = "support@antioch.dev" },
10
+ ]
11
+ keywords = [
12
+ "robotics",
13
+ "simulation",
14
+ "middleware",
15
+ "sdk",
16
+ ]
17
+ classifiers = [
18
+ "Development Status :: 4 - Beta",
19
+ "Intended Audience :: Developers",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.12",
22
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
23
+ "Topic :: Software Development :: Libraries :: Python Modules",
24
+ ]
6
25
  dependencies = [
7
26
  "click>=8.0.0",
8
27
  "click>=8.3.0",
@@ -25,6 +44,9 @@ dependencies = [
25
44
  "tqdm>=4.67.1",
26
45
  ]
27
46
 
47
+ [project.urls]
48
+ Homepage = "https://antioch.com"
49
+
28
50
  [project.scripts]
29
51
  schedule_viz = "scripts.schedule_viz:main"
30
52
 
@@ -56,6 +78,9 @@ requires = [
56
78
  ]
57
79
  build-backend = "setuptools.build_meta"
58
80
 
81
+ [tool.setuptools]
82
+ include-package-data = true
83
+
59
84
  [tool.setuptools.packages.find]
60
85
  where = [
61
86
  ".",
antioch_py-1.9.7/PKG-INFO DELETED
@@ -1,24 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: antioch-py
3
- Version: 1.9.7
4
- Summary: Python implementation of the Antioch middleware for distributed systems
5
- Requires-Python: >=3.12
6
- Requires-Dist: click>=8.0.0
7
- Requires-Dist: click>=8.3.0
8
- Requires-Dist: eclipse-zenoh>=1.5.0
9
- Requires-Dist: google-cloud-artifact-registry>=1.16.1
10
- Requires-Dist: httpx>=0.27.0
11
- Requires-Dist: loguru>=0.7.3
12
- Requires-Dist: msgpack==1.1.1
13
- Requires-Dist: msgpack>=1.1.1
14
- Requires-Dist: numpy==1.26.0
15
- Requires-Dist: ormsgpack>=1.6.0
16
- Requires-Dist: pydantic>=2.11.6
17
- Requires-Dist: pydantic>=2.11.7
18
- Requires-Dist: python-on-whales>=0.78.0
19
- Requires-Dist: pyyaml>=6.0.2
20
- Requires-Dist: requests>=2.32.0
21
- Requires-Dist: scipy==1.15.3
22
- Requires-Dist: sortedcontainers-stubs>=2.4.3
23
- Requires-Dist: sortedcontainers>=2.4.0
24
- Requires-Dist: tqdm>=4.67.1
@@ -1,213 +0,0 @@
1
- # Antioch Python
2
-
3
- Python client library for the Antioch middleware platform.
4
-
5
- ## Installation
6
-
7
- Authenticate your local environment with GCP via the Google Cloud CLI:
8
-
9
- ```bash
10
- gcloud auth login # Login to Google Cloud
11
- gcloud config set project proof-of-concept-staging-9072 # Set the correct project
12
- gcloud auth application-default login # Create app credentials
13
- ```
14
-
15
- This project uses [uv](https://github.com/astral-sh/uv), a fast Python package and project manager. Install it and set up authentication:
16
-
17
- ```bash
18
- # Install uv
19
- curl -LsSf https://astral.sh/uv/install.sh | sh
20
-
21
- # Install keyring authentication globally for uv
22
- uv tool install keyring --with keyrings.google-artifactregistry-auth
23
-
24
- # Install all default groups in one step
25
- uv sync
26
- ```
27
-
28
- Install the pre-commit hooks to auto-run `uv sync` and `ruff format` on Git commit:
29
-
30
- ```bash
31
- uv run pre-commit install
32
- ```
33
-
34
- ## Usage
35
-
36
- The Antioch Python client builds both Docker images that can be used and a Python package.
37
-
38
- ## Docker Images
39
-
40
- We have 2 Docker images currently
41
-
42
- ### Standard Image (`antioch-py:latest`)
43
-
44
- - Base: `python:3.12-slim`
45
- - Sidecar binary at `/usr/local/bin/sidecar`
46
- - antioch-py package pre-installed
47
- - Python 3.12 virtual environment with pip
48
- - Runs as root for maximum compatibility
49
-
50
- Build locally using
51
-
52
- ```
53
- ./build-image.sh
54
- ```
55
-
56
- ### ROS Image (`antioch-py-ros:latest`)
57
-
58
- - Base: `osrf/ros:jazzy-desktop`
59
- - All features of the standard image
60
- - Full ROS 2 Jazzy desktop environment
61
- - ROS 2 Python packages and tools pre-installed
62
- - Ideal for robotics applications requiring ROS integration
63
-
64
- NOTE: not included in cloudbuild currently
65
-
66
- Build locally using
67
-
68
- ```
69
- ./build-image.sh --variant ros-jazzy
70
- ```
71
-
72
- ### Usage
73
-
74
- For standard Python modules:
75
-
76
- ```dockerfile
77
- FROM antioch-py:latest
78
-
79
- # Install any additional packages you need
80
- RUN pip install opencv-python-headless numpy
81
-
82
- # Copy your module entrypoint
83
- # The sidecar will automatically run your module.py file
84
- COPY module.py .
85
- ```
86
-
87
- For ROS-enabled modules:
88
-
89
- ```dockerfile
90
- FROM antioch-py-ros:latest
91
-
92
- # Install ROS-specific packages if needed
93
- RUN apt-get update && apt-get install -y ros-jazzy-cv-bridge
94
-
95
- # You will probably need to source your ROS modules / install
96
- # To ensure your ROS environment is available to your module, source the ROS setup script before running the sidecar.
97
- # For example, you can add the following to your Dockerfile:
98
- RUN echo "source /opt/ros/jazzy/setup.bash" >> /etc/profile.d/ros.sh
99
- SHELL ["/bin/bash", "-c"]
100
-
101
- # If you have a custom ROS workspace, source its setup script as well:
102
- # RUN echo "source /workspace/install/setup.bash" >> /etc/profile.d/ros.sh
103
-
104
- # The sidecar will automatically run your module.py file in the ROS environment.
105
- COPY module.py .
106
- ```
107
-
108
- ## Testing Modules
109
-
110
- Antioch provides a test framework for testing modules in isolation without requiring a full deployment. The `ModuleTestHarness` runs your module in a separate process and communicates with it using the standard Antioch protocol.
111
-
112
- ### Basic Example
113
-
114
- ```python
115
- from antioch.module import Module, NodeExecution
116
- from antioch.module.test import ModuleTestHarness, TestNode, TestInput, TestOutput
117
- from common.message import Message
118
-
119
- # Define your message types
120
- class InputData(Message):
121
- _type = "input_data"
122
- value: int
123
-
124
- class OutputData(Message):
125
- _type = "output_data"
126
- result: int
127
-
128
- # Create your module
129
- class MyModule(Module):
130
- def init(self):
131
- self.add_node("process", self.process)
132
-
133
- def process(self, exec: NodeExecution):
134
- data = exec.input("data").data(InputData)
135
- if data:
136
- exec.output("result").set(OutputData(result=data.value * 2))
137
-
138
- def cleanup(self):
139
- pass
140
-
141
- # Test your module
142
- def test_my_module():
143
- with ModuleTestHarness(MyModule) as harness:
144
- # Configure the module
145
- harness.configure(
146
- module_name="my-module",
147
- nodes=[
148
- TestNode(
149
- name="process",
150
- budget=50, # 50ms time budget
151
- inputs=[TestInput(name="data", message_type="input_data")],
152
- outputs=[TestOutput(name="result", message_type="output_data")],
153
- )
154
- ],
155
- )
156
-
157
- # Execute the node
158
- result = harness.execute(
159
- "process",
160
- inputs={"data": InputData(value=21)},
161
- )
162
-
163
- # Check the output
164
- output = result.output("result", OutputData)
165
- assert output.result == 42
166
- ```
167
-
168
- The test framework handles module lifecycle, message serialization, and provides helpful error messages for common issues like budget overruns.
169
-
170
- ### Testing Modules with Hardware
171
-
172
- For modules that use hardware (cameras, IMUs, actuator groups), provide mock hardware data:
173
-
174
- ```python
175
- from antioch.module import Module, NodeExecution
176
- from antioch.module.test import ModuleTestHarness
177
- from antioch.message import Image, ImageEncoding
178
-
179
- class CameraModule(Module):
180
- def init(self):
181
- self.add_node("process_frame", self.process_frame)
182
- self.camera = self.get_rgb_camera("my_camera")
183
-
184
- def process_frame(self, exec: NodeExecution):
185
- frame = self.camera.get_frame()
186
- # Process frame...
187
- exec.output("processed").set(...)
188
-
189
- def test_camera_module():
190
- with ModuleTestHarness(CameraModule, module_yaml_path="tests/camera.yaml") as harness:
191
- # Execute node with mock camera data
192
- result = harness.execute_node(
193
- node_name="process_frame",
194
- hardware_data={
195
- "my_camera": Image(
196
- width=640,
197
- height=480,
198
- encoding=ImageEncoding.RGB8,
199
- data=b"mock_rgb_data",
200
- )
201
- }
202
- )
203
-
204
- # Verify outputs
205
- processed = result.output("processed", ProcessedData)
206
- assert processed is not None
207
-
208
- # For actuator groups, you can also verify hardware writes
209
- # write = result.get_hardware_write("my_actuator_group")
210
- ```
211
-
212
- The test harness automatically mocks the Sim RPC layer, so hardware reads and writes
213
- work exactly as they would in production, but without requiring Isaac Sim to be running.
@@ -1,24 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: antioch-py
3
- Version: 1.9.7
4
- Summary: Python implementation of the Antioch middleware for distributed systems
5
- Requires-Python: >=3.12
6
- Requires-Dist: click>=8.0.0
7
- Requires-Dist: click>=8.3.0
8
- Requires-Dist: eclipse-zenoh>=1.5.0
9
- Requires-Dist: google-cloud-artifact-registry>=1.16.1
10
- Requires-Dist: httpx>=0.27.0
11
- Requires-Dist: loguru>=0.7.3
12
- Requires-Dist: msgpack==1.1.1
13
- Requires-Dist: msgpack>=1.1.1
14
- Requires-Dist: numpy==1.26.0
15
- Requires-Dist: ormsgpack>=1.6.0
16
- Requires-Dist: pydantic>=2.11.6
17
- Requires-Dist: pydantic>=2.11.7
18
- Requires-Dist: python-on-whales>=0.78.0
19
- Requires-Dist: pyyaml>=6.0.2
20
- Requires-Dist: requests>=2.32.0
21
- Requires-Dist: scipy==1.15.3
22
- Requires-Dist: sortedcontainers-stubs>=2.4.3
23
- Requires-Dist: sortedcontainers>=2.4.0
24
- Requires-Dist: tqdm>=4.67.1
File without changes
File without changes
File without changes