simulo 0.22.0__tar.gz → 0.23.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.
- {simulo-0.22.0/src/simulo.egg-info → simulo-0.23.0}/PKG-INFO +6 -4
- {simulo-0.22.0 → simulo-0.23.0}/PYPI.md +3 -2
- {simulo-0.22.0 → simulo-0.23.0}/pyproject.toml +11 -2
- simulo-0.23.0/src/simulo/_client/_secure_downloads.py +889 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/cli.py +276 -34
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/jobs_api.py +12 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/submit_api.py +126 -74
- simulo-0.23.0/src/simulo/_client/view_fragment.py +21 -0
- {simulo-0.22.0 → simulo-0.23.0/src/simulo.egg-info}/PKG-INFO +6 -4
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo.egg-info/SOURCES.txt +2 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo.egg-info/requires.txt +2 -1
- {simulo-0.22.0 → simulo-0.23.0}/MANIFEST.in +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/setup.cfg +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/__init__.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/__init__.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/_entrypoint.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/_mounts.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/_runner.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/app.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/asset.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/asset_api.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/asset_package.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/asset_pins.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/builtin_aliases.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/bundle.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/cancel_api.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/config.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/credentials.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/discovery.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/export_api.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/export_bundle.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/facades.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/http.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/identity_api.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/learning.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/login.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/mode.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/outputs.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/packaging.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/preflight_api.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/preflight_render.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/registry.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/runtime.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/runtime_display.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/seed_ref.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/stub.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/templates/__init__.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/templates/inference/app.py.tmpl +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/templates/inference/simuloignore.tmpl +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/templates/scenario/app.py.tmpl +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/templates/scenario/simuloignore.tmpl +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/templates/training/app.py.tmpl +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/templates/training/simuloignore.tmpl +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/view_session_api.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/_client/volume.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/callbacks.py +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo/py.typed +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo.egg-info/dependency_links.txt +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo.egg-info/entry_points.txt +0 -0
- {simulo-0.22.0 → simulo-0.23.0}/src/simulo.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: simulo
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.23.0
|
|
4
4
|
Summary: Simulo SDK and CLI — define robotics simulation and training apps in Python and run them on the Simulo cloud.
|
|
5
5
|
Author-email: Simulo Team <team@simulo.ai>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
15
15
|
Classifier: Typing :: Typed
|
|
16
16
|
Requires-Python: >=3.11
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
|
-
Requires-Dist: simulo-interfaces<0.
|
|
18
|
+
Requires-Dist: simulo-interfaces<0.18,>=0.17.0
|
|
19
19
|
Requires-Dist: mcap<2,>=1.3
|
|
20
20
|
Requires-Dist: defusedxml>=0.7.1
|
|
21
21
|
Requires-Dist: usd-core<27,>=25.5
|
|
@@ -28,6 +28,7 @@ Requires-Dist: ruff==0.15.21; extra == "dev"
|
|
|
28
28
|
Requires-Dist: mypy==2.3.0; extra == "dev"
|
|
29
29
|
Requires-Dist: types-defusedxml==0.7.0.20260504; extra == "dev"
|
|
30
30
|
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
31
|
+
Requires-Dist: pytest-timeout==2.4.0; extra == "dev"
|
|
31
32
|
Requires-Dist: build>=1.2; extra == "dev"
|
|
32
33
|
Requires-Dist: twine>=5.1; extra == "dev"
|
|
33
34
|
Requires-Dist: setuptools>=68; extra == "dev"
|
|
@@ -103,8 +104,9 @@ Without logging in, `simulo run` packages the app locally without submitting it.
|
|
|
103
104
|
|
|
104
105
|
Every cloud submit is fresh — running the same command twice trains twice, never a silent
|
|
105
106
|
no-op. To continue training from an earlier job's checkpoint instead, pass
|
|
106
|
-
`--from <job-ref>[:best|:latest]`.
|
|
107
|
-
|
|
107
|
+
`--from <job-ref>[:best|:latest]`. `<job-ref>` is a full job id, matched by exact equality;
|
|
108
|
+
an unambiguous prefix (`>=4` characters, Git-style) works too, but only for the legacy UUID
|
|
109
|
+
form some jobs from before friendly identifiers still carry.
|
|
108
110
|
|
|
109
111
|
## Monitor jobs and retrieve results
|
|
110
112
|
|
|
@@ -64,8 +64,9 @@ Without logging in, `simulo run` packages the app locally without submitting it.
|
|
|
64
64
|
|
|
65
65
|
Every cloud submit is fresh — running the same command twice trains twice, never a silent
|
|
66
66
|
no-op. To continue training from an earlier job's checkpoint instead, pass
|
|
67
|
-
`--from <job-ref>[:best|:latest]`.
|
|
68
|
-
|
|
67
|
+
`--from <job-ref>[:best|:latest]`. `<job-ref>` is a full job id, matched by exact equality;
|
|
68
|
+
an unambiguous prefix (`>=4` characters, Git-style) works too, but only for the legacy UUID
|
|
69
|
+
form some jobs from before friendly identifiers still carry.
|
|
69
70
|
|
|
70
71
|
## Monitor jobs and retrieve results
|
|
71
72
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "simulo"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.23.0"
|
|
8
8
|
description = "Simulo SDK and CLI — define robotics simulation and training apps in Python and run them on the Simulo cloud."
|
|
9
9
|
readme = "PYPI.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -26,7 +26,7 @@ classifiers = [
|
|
|
26
26
|
# mcap: used by `simulo recordings` to read back a downloaded recording and
|
|
27
27
|
# verify it (message count) — MIT-licensed, deps only lz4+zstandard.
|
|
28
28
|
dependencies = [
|
|
29
|
-
"simulo-interfaces>=0.
|
|
29
|
+
"simulo-interfaces>=0.17.0,<0.18",
|
|
30
30
|
"mcap>=1.3,<2",
|
|
31
31
|
# Hardened XML parsing for URDF ingestion (USD Asset Catalogs, PR-12 fix
|
|
32
32
|
# loop 2, security NIT): stdlib xml.etree.ElementTree relies on
|
|
@@ -68,6 +68,8 @@ assets = ["usd-core>=25.5,<27"]
|
|
|
68
68
|
# declared RUNTIME dependency of this package (asset_package.py parses URDF with
|
|
69
69
|
# it), so without the stubs mypy reported `Library stubs not installed` and —
|
|
70
70
|
# worse — silently skipped type-checking every call into it.
|
|
71
|
+
# `pytest-timeout` is pinned EXACT because it enforces the suite's hang bound;
|
|
72
|
+
# changing the plugin under an unchanged timeout would change that guard's behavior.
|
|
71
73
|
dev = [
|
|
72
74
|
"black==26.5.1",
|
|
73
75
|
"isort==8.0.1",
|
|
@@ -75,6 +77,7 @@ dev = [
|
|
|
75
77
|
"mypy==2.3.0",
|
|
76
78
|
"types-defusedxml==0.7.0.20260504",
|
|
77
79
|
"pytest>=8.2",
|
|
80
|
+
"pytest-timeout==2.4.0",
|
|
78
81
|
"build>=1.2",
|
|
79
82
|
"twine>=5.1",
|
|
80
83
|
# setuptools/wheel: `tests/test_create_wheel_packaging.py` builds a real wheel with
|
|
@@ -140,6 +143,12 @@ ignore_missing_imports = true
|
|
|
140
143
|
[tool.pytest.ini_options]
|
|
141
144
|
testpaths = ["tests"]
|
|
142
145
|
addopts = "--import-mode=importlib"
|
|
146
|
+
# A healthy hosted leg spent 36s before pytest and 63s in pytest, leaving roughly
|
|
147
|
+
# 864s of its 15-minute job budget. Fourteen 60s hangs added to the healthy suite
|
|
148
|
+
# would exhaust that budget and turn a red failure back into a cancelled job; the
|
|
149
|
+
# observed race hung two tests, so 60s bounds it with room. Do not raise this value
|
|
150
|
+
# without recomputing the job-budget ceiling from current hosted timings.
|
|
151
|
+
timeout = 60
|
|
143
152
|
markers = [
|
|
144
153
|
"isaac: requires NVIDIA Isaac Sim / IsaacLab (skipped on dev machines and in PR CI)",
|
|
145
154
|
"gpu: requires a CUDA GPU (skipped on dev machines and in PR CI)",
|