Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

vention-sim-grpc-py-sdk

Generated Python gRPC clients for the Vention simulation protos (physics/** and vention/simulation/** under proto/), published from this repo.

Install

pip install vention-sim-grpc-py-sdk

This also installs vention-grpc-py-sdk, which ships the vention.robots, vention.io_modules, vention.machine_motion, vention.motors, vention.vision, and google.type messages the simulation protos embed.

Use

import grpc

from vention.robots.v1.joint_trajectory_point_pb2 import JointTrajectoryPoint
from vention_sim import SIMULATION_SHA, VENTION_PROTOS_SHA, __version__
from vention_sim.simulation.v1.sim_robot_driver_commands_pb2 import StartTrajectoryRequest
from vention_sim.simulation.v4.scene.scene_management_service_pb2_grpc import SceneManagementServiceStub

channel = grpc.insecure_channel("localhost:50055")
scene = SceneManagementServiceStub(channel)
request = StartTrajectoryRequest(points=[JointTrajectoryPoint()])
print(f"built from simulation@{SIMULATION_SHA} and vention-protos@{VENTION_PROTOS_SHA}")

Import root

The modules live under vention_sim: a proto at vention/simulation/v1/x.proto is vention_sim.simulation.v1.x_pb2, and one at physics/v3/x.proto is vention_sim.physics.v3.x_pb2. Only the Python import path differs from protoc's default. The proto packages (vention.simulation.*, physics.*), file names, gRPC method paths and Any type URLs are unchanged, so a vention-grpc-py-sdk message drops straight into a simulation request and reflection sees the same types as every other language.

protoc would otherwise place the stubs at vention.simulation.*, inside the vention package that vention-grpc-py-sdk owns. Two distributions sharing a regular package only work while both unpack into the same site-packages; editable installs and any layout with more than one root on sys.path lose one of them. Giving this package its own import root removes the shared directory, so it works in every layout and never depends on how vention-grpc-py-sdk is laid out.

One package per proto source

The simulation protos import vention-protos files, and both packages have to coexist in one environment. Python leaves no good way to ship two copies of the same generated module: two distributions writing the same path overwrite each other in site-packages, and protobuf registers every message in a process-global pool that rejects duplicates. So this package ships only the simulation-owned stubs and takes the shared ones from vention-grpc-py-sdk, the same way grpcio-status takes google.rpc from googleapis-common-protos.

The dependency is an exact pin on the vention-grpc-py-sdk release generated from the vention-protos commit pinned in proto/package.json (config.protos.tag). That package only ever patch-bumps, so its version says nothing about compatibility; the pin is what guarantees the two stub sets agree. Upgrading one means upgrading the other, and pip refuses combinations that were never generated together.

Versions

Releases publish on every push to main that touches proto/** or python-sdk/**, as the next patch after the latest release on PyPI. Pull requests touching those paths publish a X.Y.Z.dev<run_id> build and comment the install command on the PR; pip ignores dev releases unless the version is spelled out.

vention_sim._source records what a wheel was built from: SIMULATION_SHA, VENTION_PROTOS_SHA, VENTION_GRPC_PY_SDK_VERSION, and __version__.

Contributing

Nothing in python-sdk/src is committed; CI regenerates it from proto/ before publishing. To reproduce the CI build locally:

npm ci                                   # buf comes from the proto workspace
python3 -m venv .venv && source .venv/bin/activate
python python-sdk/scripts/ci_python_package.py

The script exports the vendored vention-protos at the pinned commit (SSH access to VentionCo/vention-protos required), generates the stubs with buf.gen.yaml, moves them under vention_sim and rewrites their imports and module names to match, resolves the matching vention-grpc-py-sdk release from PyPI, builds the wheel, installs it, and then checks: the SDK's PROTOS_SHA equals the pin, every generated module imports, the proto package, file name and Any type URL of a sim message are unchanged while its __module__ is under vention_sim, a vention-grpc-py-sdk message embeds into a sim request and survives serialization and pickling, and both import orders work.

hatch_build.py turns the resolved SDK release into the exact dependency pin at build time.

publish-python-sdk.yml runs the same script and uploads with the org's PyPI token.

Metadata

Release files for vention-sim-grpc-py-sdk 0.1.0.dev33918000868

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vention-sim-grpc-py-sdk 0.1.0.dev33918000868
File Size Uploaded Provenance Actions
vention_sim_grpc_py_sdk-0.1.0.dev33918000868.tar.gz 30.6 kB Without provenance Details for vention_sim_grpc_py_sdk-0.1.0.dev33918000868.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for vention-sim-grpc-py-sdk 0.1.0.dev33918000868
File Interpreter ABI Platform Actions
vention_sim_grpc_py_sdk-0.1.0.dev33918000868-py3-none-any.whl Python 3 none any Details for vention_sim_grpc_py_sdk-0.1.0.dev33918000868-py3-none-any.whl

Total release size: 115.2 kB

Release files / vention_sim_grpc_py_sdk-0.1.0.dev33918000868.tar.gz

Download URL vention_sim_grpc_py_sdk-0.1.0.dev33918000868.tar.gz
Size 30.6 kB
Tags Source
SHA-256 checksum
How to use checksums
44460255780d93afbf37e2ff2a286e6790d4eb1887dc88e4359e200c7e7866f2
BLAKE2b-256 checksum
How to use checksums
f9810af4bd9eaa9a8110356ebe14bb92368ddf6b915cd6ebaebcad01358e85e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / vention_sim_grpc_py_sdk-0.1.0.dev33918000868-py3-none-any.whl

Download URL vention_sim_grpc_py_sdk-0.1.0.dev33918000868-py3-none-any.whl
Size 84.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0fbf12612918d3af75a72257b258fe1f93583b6bd033d3bfbd4d00e39dcb38f3
BLAKE2b-256 checksum
How to use checksums
b7d9e213ce943134634d8c13edd450757bf85ef41da7daa6e8b40e75754eacda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Security for vention-sim-grpc-py-sdk 0.1.0.dev33918000868

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page