wandelbots-nova 2.7.2__tar.gz → 2.7.4__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.
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/PKG-INFO +2 -2
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/novax/novax.py +1 -9
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/novax/program_manager.py +2 -121
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/pyproject.toml +2 -3
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/tests/novax/test_program_manager.py +0 -23
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/__init__.py +2 -1
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/runner.py +39 -0
- wandelbots_nova-2.7.2/tests/novax/test_program_sources.py +0 -103
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/.gitignore +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/LICENSE +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/README.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/actions/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/actions/base.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/actions/container.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/actions/io.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/actions/mock.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/actions/motions.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/actions/trajectory_builder.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/api.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/auth/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/auth/auth_config.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/auth/authorization.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/cell/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/cell/cell.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/cell/controllers.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/cell/robot_cell.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/cell/simulation.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/controller.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/env_handler.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/exceptions.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/gateway.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/io.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/logging.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/motion_group.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/movement_controller.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/core/nova.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/events/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/events/nats.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/extentions/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/extentions/opcua/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/extentions/opcua/client.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/extentions/opcua/functions.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/program/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/program/exceptions.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/program/function.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/program/runner.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/program/store.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/program/utils.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/types/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/types/collision_scene.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/types/motion_settings.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/types/pose.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/types/state.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/types/vector3d.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/utils.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/version.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/viewers/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/viewers/base.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/viewers/manager.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/viewers/protocol.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/viewers/rerun.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova/viewers/utils.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/LICENSE +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/README.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/README.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/benchmark_base.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/dataset/README.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/dataset/demo_set.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/dataset/mb_set.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/dataset/mpinets_set.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/datasets.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/log_successful_planning.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/robometrics_helper.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/run_collision_free_benchmark.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/run_collision_free_magma.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/run_ptp_benchmark.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/blueprint.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/collision_scene.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/colors.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/consts.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/conversion_helpers.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/dh_robot.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/example_data/Welding_Benchmark_USA_01.stl +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/example_data/bin_everything_05.ply +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/example_data/colliders.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/example_data/source.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/example_data/tool.stl +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/example_data/yaskawa_ar1440_rif_with_safety_zones.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/collison_world.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/import_ply.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/reachability_check.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/robocore.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/stream_robot.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/use_nova_rerun_bridge.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/visualize_tool.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/wait_action.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/welding_example.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/yaskawa-ar1440-16-mounting.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/yaskawa-ar1440-with-external-axis.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/helper_scripts/README.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/helper_scripts/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/helper_scripts/code_server_helpers.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/helper_scripts/download_models.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/helper_scripts/plan_with_collisions.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/hull_visualizer.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/minimal_example/.gitignore +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/minimal_example/README.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/minimal_example/main.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/minimal_example/poetry.toml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/minimal_example/pyproject.toml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/minimal_example/ruff.toml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/minimal_example/uv.lock +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/motion_recorder.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/motion_storage.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/.dockerignore +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/.nova +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/Dockerfile +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/app.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/build.sh +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/data/README.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/deployment.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/ingress.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/kustomization.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/namespace.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.conf +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.http.conf.template +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/skaffold.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/start.sh +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/nova_rerun_bridge_app/static/app_icon.png +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/polling/populate.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/.dockerignore +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/.nova +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/Dockerfile +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/app.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/build.sh +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/k8s/deployment.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/k8s/ingress.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/k8s/kustomization.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/k8s/namespace.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/nginx.conf +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/nginx.http.conf.template +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/skaffold.yaml +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/start.sh +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/rerun_app/static/app_icon.png +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/robot_visualizer.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/safety_zones.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/stream_state.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/trajectory.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/novax/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/novax/api/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/novax/api/dependencies.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/novax/api/programs.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/tests/nova_rerun_bridge/test_blueprint.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/tests/nova_rerun_bridge/test_log_motion.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/tests/nova_rerun_bridge/test_nova_rerun_bridge.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/tests/nova_rerun_bridge/test_trajectory.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/tests/novax/api/test_programs.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/tests/novax/conftest.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/tests/novax/serve.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/tests/novax/test_novax.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/CHANGELOG.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/README.md +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/__main__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/antlrvisitor.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/array.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/assoc.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/controller.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/fetch.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/fs.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/math.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/pose.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/string.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins/wait.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/builtins.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/cli.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/datatypes.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/and_or.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/and_or.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/array.config +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/array.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/array.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/assignment.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/assignment.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/async_write.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/async_write.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/blending.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/blending.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/bool_negation.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/bool_negation.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/builtins.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/builtins.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/comments.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/comments.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/context.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/context.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/controller.cell.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/controller.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/controller.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/coordinate_systems.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/coordinate_systems.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/default.cell.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/default.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/default.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/edge_pattern.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/edge_pattern.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/edge_pattern_line.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/edge_pattern_line.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/edge_pattern_manhattan.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/edge_pattern_manhattan.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/empty.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/empty.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/expressions.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/expressions.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/fetch.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/fetch.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/find_edge_from_4_poses.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/find_edge_from_4_poses.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/frame.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/frame.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/frame2.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/frame2.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/frame3.cell.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/frame3.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/frame3.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/function.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/function.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/functional_pose.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/functional_pose.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/get_pose.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/get_pose.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/ifelse.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/ifelse.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/interpolation.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/interpolation.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/interrupt.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/interrupt.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/io.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/io.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/loops.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/loops.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/move.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/move.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/move_via_expression.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/move_via_expression.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/move_with_velocity.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/move_with_velocity.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/multiple_robots.cell.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/multiple_robots.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/multiple_robots.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/multiple_robots2.cell.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/multiple_robots2.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/multiple_robots2.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/multiple_robots3.cell.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/multiple_robots3.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/multiple_robots3.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/not.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/not.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/operator_precedence.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/operator_precedence.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/pose.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/pose.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/poses2.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/poses2.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/print.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/print.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/record.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/record.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/scope.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/scope.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/spline.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/spline.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/switch.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/switch.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/tcps.cell.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/tcps.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/tcps.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/tower_of_hanoi.cell.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/tower_of_hanoi.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/tower_of_hanoi.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/try.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/try.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/vision_move.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/vision_move.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wait.config +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wait.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wait.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wandelchat2.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wandelchat2.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wandelchat3.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wandelchat3.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/whitespaces.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/whitespaces.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wp393.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wp393.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wp469.json +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples/wp469.ws +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/examples.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/exception.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/ffi.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/ffi_loader.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/frames.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/WandelscriptLexerBase.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptLexer.g4 +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptLexer.interp +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptLexer.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptLexer.tokens +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptParser.g4 +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptParser.interp +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptParser.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptParser.tokens +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptParserListener.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/grammar/wandelscriptParserVisitor.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/metamodel.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/migration.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/models.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/motions.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/operators.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/runtime.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/scripts/generate_parser.sh +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_builtins.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_examples.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_executor.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_ffi.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_migration.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_motion.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_move.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_multirobot.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_parser.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_programs.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_run_twice.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_runner.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_runtime.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_simulation.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_stepwise.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_store.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_two_step_execution.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/tests/test_types.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/utils/__init__.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/utils/pose.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/utils/runtime.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/utils/serializer.py +0 -0
- {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/wandelscript/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wandelbots-nova
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.4
|
|
4
4
|
Summary: Official Python SDK for the Wandelbots Nova
|
|
5
5
|
Author: Wandelbots GmbH
|
|
6
6
|
Author-email: Christoph Biering <christoph.biering@wandelbots.com>, Mahsum Demir <mahsum.demir@wandelbots.com>, Dirk Sonnemann <dirk.sonnemann@wandelbots.com>, Andreas Langenhagen <andreas.langenhagen@wandelbots.com>, Stefan Wagner <stefan.wagner@wandelbots.com>, André Kühnert <andre.kuhnert@wandelbots.com>
|
|
@@ -15,7 +15,7 @@ Requires-Dist: docstring-parser>=0.16.0
|
|
|
15
15
|
Requires-Dist: exceptiongroup>=1.2.2
|
|
16
16
|
Requires-Dist: httpx<0.29,>=0.28.0
|
|
17
17
|
Requires-Dist: loguru<0.8,>=0.7.2
|
|
18
|
-
Requires-Dist: nats-py[jetstream]
|
|
18
|
+
Requires-Dist: nats-py[jetstream]>=2.11.0
|
|
19
19
|
Requires-Dist: numpy>1.1.19
|
|
20
20
|
Requires-Dist: pydantic<3,>=2.11.4
|
|
21
21
|
Requires-Dist: python-decouple~=3.8
|
|
@@ -9,7 +9,7 @@ from nova.core.logging import logger
|
|
|
9
9
|
from nova.program.function import Program
|
|
10
10
|
from nova.program.store import Program as StoreProgram
|
|
11
11
|
from nova.program.store import ProgramStore
|
|
12
|
-
from novax.program_manager import ProgramDetails, ProgramManager
|
|
12
|
+
from novax.program_manager import ProgramDetails, ProgramManager
|
|
13
13
|
|
|
14
14
|
# Read BASE_PATH environment variable and extract app name
|
|
15
15
|
_BASE_PATH = config("BASE_PATH", default="/default/novax")
|
|
@@ -34,14 +34,6 @@ class Novax:
|
|
|
34
34
|
"""Get the program manager instance"""
|
|
35
35
|
return self._program_manager
|
|
36
36
|
|
|
37
|
-
def register_program_source(self, program_source: ProgramSource) -> None:
|
|
38
|
-
"""Register a program source"""
|
|
39
|
-
self._program_manager.register_program_source(program_source)
|
|
40
|
-
|
|
41
|
-
def deregister_program_source(self, program_source: ProgramSource) -> None:
|
|
42
|
-
"""Deregister a program source"""
|
|
43
|
-
self._program_manager.deregister_program_source(program_source)
|
|
44
|
-
|
|
45
37
|
def register_program(self, program: Program) -> str:
|
|
46
38
|
"""
|
|
47
39
|
Register a function or wandelscript file as a program.
|
|
@@ -1,37 +1,12 @@
|
|
|
1
1
|
import datetime as dt
|
|
2
2
|
import inspect
|
|
3
|
-
from
|
|
4
|
-
from typing import Any, AsyncIterator, Optional, Protocol
|
|
3
|
+
from typing import Any, Optional
|
|
5
4
|
|
|
6
|
-
from loguru import logger
|
|
7
5
|
from pydantic import BaseModel
|
|
8
6
|
|
|
9
|
-
import nova
|
|
10
|
-
from nova import Nova
|
|
11
7
|
from nova.cell.robot_cell import RobotCell
|
|
12
8
|
from nova.program.function import Program, ProgramPreconditions
|
|
13
9
|
from nova.program.runner import ExecutionContext, ProgramRun, ProgramRunner
|
|
14
|
-
from wandelscript.ffi_loader import load_foreign_functions
|
|
15
|
-
|
|
16
|
-
try:
|
|
17
|
-
import wandelscript
|
|
18
|
-
|
|
19
|
-
WANDELSCRIPT_AVAILABLE = True
|
|
20
|
-
except ImportError:
|
|
21
|
-
WANDELSCRIPT_AVAILABLE = False
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class ProgramSource(Protocol):
|
|
25
|
-
"""Protocol for program sources that can be registered with ProgramManager"""
|
|
26
|
-
|
|
27
|
-
def get_programs(self, program_manager: "ProgramManager") -> AsyncIterator[Program]:
|
|
28
|
-
"""
|
|
29
|
-
Discover and yield all programs from this source.
|
|
30
|
-
|
|
31
|
-
Yields:
|
|
32
|
-
Program: A Program object (decorated with @nova.program)
|
|
33
|
-
"""
|
|
34
|
-
...
|
|
35
10
|
|
|
36
11
|
|
|
37
12
|
class NovaxProgramRunner(ProgramRunner):
|
|
@@ -84,7 +59,6 @@ class ProgramManager:
|
|
|
84
59
|
self._programs: dict[str, ProgramDetails] = {}
|
|
85
60
|
self._program_functions: dict[str, Program] = {}
|
|
86
61
|
self._runner: NovaxProgramRunner | None = None
|
|
87
|
-
self._program_sources: list[ProgramSource] = []
|
|
88
62
|
self._robot_cell_override: RobotCell | None = robot_cell_override
|
|
89
63
|
|
|
90
64
|
def has_program(self, program_id: str) -> bool:
|
|
@@ -98,25 +72,6 @@ class ProgramManager:
|
|
|
98
72
|
def running_program(self) -> Optional[str]:
|
|
99
73
|
return self._runner.program_id if self.is_any_program_running and self._runner else None
|
|
100
74
|
|
|
101
|
-
def register_program_source(self, program_source: ProgramSource) -> None:
|
|
102
|
-
"""
|
|
103
|
-
Register a program source with the program manager.
|
|
104
|
-
|
|
105
|
-
Args:
|
|
106
|
-
program_source: The program source to register
|
|
107
|
-
"""
|
|
108
|
-
self._program_sources.append(program_source)
|
|
109
|
-
|
|
110
|
-
def deregister_program_source(self, program_source: ProgramSource) -> None:
|
|
111
|
-
"""
|
|
112
|
-
Deregister a program source from the program manager.
|
|
113
|
-
|
|
114
|
-
Args:
|
|
115
|
-
program_source: The program source to deregister
|
|
116
|
-
"""
|
|
117
|
-
if program_source in self._program_sources:
|
|
118
|
-
self._program_sources.remove(program_source)
|
|
119
|
-
|
|
120
75
|
def register_program(self, program: Program) -> str:
|
|
121
76
|
"""
|
|
122
77
|
Register a function as a program.
|
|
@@ -161,9 +116,6 @@ class ProgramManager:
|
|
|
161
116
|
|
|
162
117
|
async def get_programs(self) -> dict[str, ProgramDetails]:
|
|
163
118
|
"""Get all registered programs"""
|
|
164
|
-
for program_source in self._program_sources:
|
|
165
|
-
async for program in program_source.get_programs(self):
|
|
166
|
-
self.register_program(program)
|
|
167
119
|
return self._programs.copy()
|
|
168
120
|
|
|
169
121
|
async def get_program(self, program_id: str) -> Optional[ProgramDetails]:
|
|
@@ -171,11 +123,7 @@ class ProgramManager:
|
|
|
171
123
|
return self._programs.get(program_id)
|
|
172
124
|
|
|
173
125
|
async def start_program(
|
|
174
|
-
self,
|
|
175
|
-
program_id: str,
|
|
176
|
-
parameters: dict[str, Any] | None = None,
|
|
177
|
-
sync: bool = False,
|
|
178
|
-
simulate: bool = False,
|
|
126
|
+
self, program_id: str, parameters: dict[str, Any] | None = None, sync: bool = False
|
|
179
127
|
) -> ProgramRun:
|
|
180
128
|
"""Start a registered program with given parameters"""
|
|
181
129
|
if self.is_any_program_running:
|
|
@@ -203,70 +151,3 @@ class ProgramManager:
|
|
|
203
151
|
|
|
204
152
|
self._runner.stop(sync=True)
|
|
205
153
|
self._runner = None
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
# Example implementations of ProgramSource
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
class WandelscriptProgramSource:
|
|
212
|
-
def __init__(self, scan_paths: list[Path], foreign_functions_paths: list[Path] | None = None):
|
|
213
|
-
"""
|
|
214
|
-
Initialize the WandelscriptProgramSource with a list of paths to scan.
|
|
215
|
-
|
|
216
|
-
Args:
|
|
217
|
-
scan_paths: List of paths to scan for .ws files. Can be individual files or directories.
|
|
218
|
-
foreign_functions: Optional dictionary of foreign functions to attach to all programs.
|
|
219
|
-
"""
|
|
220
|
-
self.scan_paths = scan_paths
|
|
221
|
-
self.foreign_functions = (
|
|
222
|
-
load_foreign_functions(foreign_functions_paths) if foreign_functions_paths else {}
|
|
223
|
-
)
|
|
224
|
-
|
|
225
|
-
async def get_programs(self, program_manager: "ProgramManager") -> AsyncIterator[Program]:
|
|
226
|
-
"""Discover and yield programs from filesystem"""
|
|
227
|
-
for path in self.scan_paths:
|
|
228
|
-
if not path.exists():
|
|
229
|
-
logger.warning(f"Path does not exist: {path}")
|
|
230
|
-
continue
|
|
231
|
-
|
|
232
|
-
if path.is_file():
|
|
233
|
-
# Single file
|
|
234
|
-
if path.suffix == ".ws":
|
|
235
|
-
yield self._create_wandelscript_program(path)
|
|
236
|
-
elif path.is_dir():
|
|
237
|
-
# Directory - scan for .ws files
|
|
238
|
-
for file_path in path.glob("*.ws"):
|
|
239
|
-
yield self._create_wandelscript_program(file_path)
|
|
240
|
-
|
|
241
|
-
def _create_wandelscript_program(self, path: Path) -> Program:
|
|
242
|
-
"""Create a nova.program wrapper for a wandelscript file"""
|
|
243
|
-
if not WANDELSCRIPT_AVAILABLE:
|
|
244
|
-
raise ImportError(
|
|
245
|
-
f"Cannot register wandelscript file {path}: wandelscript package is not installed. "
|
|
246
|
-
"Please install it with 'pip install wandelscript' or 'uv add wandelscript'"
|
|
247
|
-
)
|
|
248
|
-
|
|
249
|
-
# Create program ID from filename
|
|
250
|
-
program_id = path.stem
|
|
251
|
-
logger.info(f"Creating wandelscript program: {program_id}")
|
|
252
|
-
|
|
253
|
-
# Create a wrapper function
|
|
254
|
-
@nova.program(id=program_id)
|
|
255
|
-
async def wandelscript_wrapper():
|
|
256
|
-
async with Nova() as nova:
|
|
257
|
-
robot_cell = await nova.cell().get_robot_cell()
|
|
258
|
-
# Read the file content
|
|
259
|
-
with open(path) as f:
|
|
260
|
-
program_content = f.read()
|
|
261
|
-
|
|
262
|
-
result = wandelscript.run(
|
|
263
|
-
program_id=program_id,
|
|
264
|
-
program=program_content,
|
|
265
|
-
# TODO: Also pass args
|
|
266
|
-
args={},
|
|
267
|
-
foreign_functions=self.foreign_functions,
|
|
268
|
-
robot_cell_override=robot_cell,
|
|
269
|
-
)
|
|
270
|
-
return result
|
|
271
|
-
|
|
272
|
-
return wandelscript_wrapper
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "wandelbots-nova"
|
|
3
|
-
version = "2.7.
|
|
3
|
+
version = "2.7.4"
|
|
4
4
|
description = "Official Python SDK for the Wandelbots Nova"
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Wandelbots GmbH" },
|
|
@@ -28,8 +28,7 @@ dependencies = [
|
|
|
28
28
|
"asyncua>=1.1.5,<2",
|
|
29
29
|
"docstring-parser>=0.16.0",
|
|
30
30
|
"exceptiongroup>=1.2.2",
|
|
31
|
-
|
|
32
|
-
"nats-py[jetstream]==2.10.0",
|
|
31
|
+
"nats-py[jetstream]>=2.11.0",
|
|
33
32
|
"blinker>=1.9.0",
|
|
34
33
|
]
|
|
35
34
|
|
|
@@ -229,26 +229,3 @@ async def test_get_program():
|
|
|
229
229
|
# Test getting non-existent program
|
|
230
230
|
non_existent = await manager.get_program("nonexistent")
|
|
231
231
|
assert non_existent is None
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
@pytest.mark.asyncio
|
|
235
|
-
async def test_program_source_integration():
|
|
236
|
-
"""Test integration with program sources"""
|
|
237
|
-
manager = ProgramManager(robot_cell_override=SimulatedRobotCell())
|
|
238
|
-
|
|
239
|
-
# Create a simple program source
|
|
240
|
-
class SimpleProgramSource:
|
|
241
|
-
async def get_programs(self, program_manager):
|
|
242
|
-
yield simple_program
|
|
243
|
-
yield parameterized_program
|
|
244
|
-
|
|
245
|
-
# Register the program source
|
|
246
|
-
source = SimpleProgramSource()
|
|
247
|
-
manager.register_program_source(source)
|
|
248
|
-
|
|
249
|
-
# Get programs (this should trigger source discovery)
|
|
250
|
-
programs = await manager.get_programs()
|
|
251
|
-
|
|
252
|
-
# Verify programs from source are registered
|
|
253
|
-
assert "simple_program_test" in programs
|
|
254
|
-
assert "parameterized_program" in programs
|
|
@@ -14,7 +14,7 @@ Vector3d(x=0.0, y=1.0, z=5.0)
|
|
|
14
14
|
import wandelscript.antlrvisitor # load Program.from_code # noqa: F401
|
|
15
15
|
from wandelscript import builtins, motions
|
|
16
16
|
from wandelscript.metamodel import Program, register_builtin_func
|
|
17
|
-
from wandelscript.runner import ProgramRunner, run
|
|
17
|
+
from wandelscript.runner import ProgramRunner, create_wandelscript_program, run
|
|
18
18
|
from wandelscript.runtime import Store
|
|
19
19
|
from wandelscript.version import version
|
|
20
20
|
|
|
@@ -34,4 +34,5 @@ __all__ = [
|
|
|
34
34
|
"register_builtin_func",
|
|
35
35
|
"motions",
|
|
36
36
|
"builtins",
|
|
37
|
+
"create_wandelscript_program",
|
|
37
38
|
]
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
1
3
|
from loguru import logger
|
|
2
4
|
|
|
5
|
+
import nova
|
|
6
|
+
from nova import Nova
|
|
3
7
|
from nova.cell.robot_cell import RobotCell
|
|
8
|
+
from nova.program import Program
|
|
4
9
|
from nova.program import ProgramRunner as NovaProgramRunner
|
|
5
10
|
from nova.program.runner import ExecutionContext as NovaExecutionContext
|
|
6
11
|
from nova.program.runner import ProgramRun
|
|
7
12
|
from wandelscript.datatypes import ElementType
|
|
8
13
|
from wandelscript.ffi import ForeignFunction
|
|
14
|
+
from wandelscript.ffi_loader import load_foreign_functions
|
|
9
15
|
from wandelscript.metamodel import Program as WandelscriptProgram
|
|
10
16
|
from wandelscript.runtime import ExecutionContext
|
|
11
17
|
|
|
@@ -97,3 +103,36 @@ def run(
|
|
|
97
103
|
)
|
|
98
104
|
runner.start(sync=True)
|
|
99
105
|
return runner
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def create_wandelscript_program(
|
|
109
|
+
program_id: str,
|
|
110
|
+
code: str,
|
|
111
|
+
args: dict[str, ElementType] = {},
|
|
112
|
+
foreign_functions_paths: list[Path] | None = None,
|
|
113
|
+
default_robot: str | None = None,
|
|
114
|
+
default_tcp: str | None = None,
|
|
115
|
+
) -> Program:
|
|
116
|
+
logger.info(f"Creating wandelscript program: {program_id}")
|
|
117
|
+
foreign_functions = (
|
|
118
|
+
load_foreign_functions(foreign_functions_paths) if foreign_functions_paths else {}
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
@nova.program(id=program_id)
|
|
122
|
+
async def wandelscript_wrapper():
|
|
123
|
+
async with Nova() as nova:
|
|
124
|
+
robot_cell = await nova.cell().get_robot_cell()
|
|
125
|
+
|
|
126
|
+
# TODO: Don't create another runner here, just execute the program
|
|
127
|
+
result = run(
|
|
128
|
+
program_id=program_id,
|
|
129
|
+
program=code,
|
|
130
|
+
args=args,
|
|
131
|
+
foreign_functions=foreign_functions,
|
|
132
|
+
robot_cell_override=robot_cell,
|
|
133
|
+
default_robot=default_robot,
|
|
134
|
+
default_tcp=default_tcp,
|
|
135
|
+
)
|
|
136
|
+
return result
|
|
137
|
+
|
|
138
|
+
return wandelscript_wrapper
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
from pathlib import Path
|
|
3
|
-
from typing import AsyncIterator
|
|
4
|
-
|
|
5
|
-
import pytest
|
|
6
|
-
|
|
7
|
-
import nova
|
|
8
|
-
from novax import Novax
|
|
9
|
-
from novax.program_manager import ProgramManager, WandelscriptProgramSource
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@nova.program(id="simple_program")
|
|
13
|
-
async def simple_program(number_of_steps: int = 30):
|
|
14
|
-
print("Hello World!")
|
|
15
|
-
|
|
16
|
-
for i in range(number_of_steps):
|
|
17
|
-
print(f"Step: {i}")
|
|
18
|
-
await asyncio.sleep(1)
|
|
19
|
-
|
|
20
|
-
print("Finished Hello World!")
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
@pytest.fixture
|
|
24
|
-
def wandelscript_source():
|
|
25
|
-
return WandelscriptProgramSource(
|
|
26
|
-
scan_paths=[Path("./examples/wandelscript_ffi.ws")],
|
|
27
|
-
foreign_functions_paths=[Path("./examples/wandelscript_ffi.py")],
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
@pytest.fixture
|
|
32
|
-
def novax_with_program_sources(wandelscript_source):
|
|
33
|
-
"""Example using the new protocol-based approach"""
|
|
34
|
-
# Create a standard program manager
|
|
35
|
-
program_manager = ProgramManager()
|
|
36
|
-
|
|
37
|
-
# Register program sources instead of using inheritance
|
|
38
|
-
program_manager.register_program_source(wandelscript_source)
|
|
39
|
-
|
|
40
|
-
novax = Novax(program_manager_override=program_manager)
|
|
41
|
-
app = novax.create_app()
|
|
42
|
-
novax.include_programs_router(app)
|
|
43
|
-
|
|
44
|
-
# Register Python programs (existing functionality)
|
|
45
|
-
novax.register_program(simple_program)
|
|
46
|
-
return app
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
def test_register_program_source(wandelscript_source):
|
|
50
|
-
"""Test registering a program source with the program manager"""
|
|
51
|
-
program_manager = ProgramManager()
|
|
52
|
-
program_manager.register_program_source(wandelscript_source)
|
|
53
|
-
|
|
54
|
-
# Verify the source was registered
|
|
55
|
-
assert len(program_manager._program_sources) == 1
|
|
56
|
-
assert wandelscript_source in program_manager._program_sources
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
def test_deregister_program_source(wandelscript_source):
|
|
60
|
-
"""Test unregistering a program source"""
|
|
61
|
-
program_manager = ProgramManager()
|
|
62
|
-
program_manager.register_program_source(wandelscript_source)
|
|
63
|
-
|
|
64
|
-
# Verify registration
|
|
65
|
-
assert wandelscript_source in program_manager._program_sources
|
|
66
|
-
|
|
67
|
-
# Unregister
|
|
68
|
-
program_manager.deregister_program_source(wandelscript_source)
|
|
69
|
-
|
|
70
|
-
# Verify unregistration
|
|
71
|
-
assert wandelscript_source not in program_manager._program_sources
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
@pytest.mark.asyncio
|
|
75
|
-
async def test_discover_programs_from_source(wandelscript_source):
|
|
76
|
-
"""Test that programs are discovered and registered from a source"""
|
|
77
|
-
program_manager = ProgramManager()
|
|
78
|
-
program_manager.register_program_source(wandelscript_source)
|
|
79
|
-
|
|
80
|
-
# Verify programs were registered
|
|
81
|
-
programs = await program_manager.get_programs()
|
|
82
|
-
assert "wandelscript_ffi" in programs
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
@pytest.mark.asyncio
|
|
86
|
-
async def test_multiple_program_sources(wandelscript_source):
|
|
87
|
-
"""Test using multiple program sources"""
|
|
88
|
-
from novax.program_manager import Program, ProgramSource
|
|
89
|
-
|
|
90
|
-
class TestProgramSource(ProgramSource):
|
|
91
|
-
async def get_programs(self, program_manager: ProgramManager) -> AsyncIterator[Program]:
|
|
92
|
-
yield simple_program
|
|
93
|
-
|
|
94
|
-
program_manager = ProgramManager()
|
|
95
|
-
|
|
96
|
-
# Register both sources
|
|
97
|
-
program_manager.register_program_source(TestProgramSource())
|
|
98
|
-
program_manager.register_program_source(wandelscript_source)
|
|
99
|
-
|
|
100
|
-
# Verify programs from both sources were registered
|
|
101
|
-
programs = await program_manager.get_programs()
|
|
102
|
-
assert "simple_program" in programs
|
|
103
|
-
assert "wandelscript_ffi" in programs
|
|
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
|
|
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
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/benchmark_base.py
RENAMED
|
File without changes
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/dataset/README.md
RENAMED
|
File without changes
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/dataset/demo_set.yaml
RENAMED
|
File without changes
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/dataset/mb_set.yaml
RENAMED
|
File without changes
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/dataset/mpinets_set.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/robometrics_helper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/benchmark/run_ptp_benchmark.py
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
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/example_data/bin_everything_05.ply
RENAMED
|
File without changes
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/example_data/colliders.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wandelbots_nova-2.7.2 → wandelbots_nova-2.7.4}/nova_rerun_bridge/examples/collison_world.py
RENAMED
|
File without changes
|
|
File without changes
|