wandelbots-nova 2.8.2__tar.gz → 2.8.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.
Files changed (348) hide show
  1. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/PKG-INFO +3 -2
  2. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/program/runner.py +7 -11
  3. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/pyproject.toml +4 -2
  4. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/runner.py +0 -6
  5. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_builtins.py +3 -3
  6. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_examples.py +7 -3
  7. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_motion.py +6 -21
  8. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_run_twice.py +4 -2
  9. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_runner.py +19 -13
  10. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_runtime.py +16 -3
  11. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/utils/pose.py +1 -0
  12. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/.gitignore +0 -0
  13. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/LICENSE +0 -0
  14. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/README.md +0 -0
  15. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/__init__.py +0 -0
  16. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/actions/__init__.py +0 -0
  17. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/actions/base.py +0 -0
  18. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/actions/container.py +0 -0
  19. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/actions/io.py +0 -0
  20. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/actions/mock.py +0 -0
  21. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/actions/motions.py +0 -0
  22. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/actions/trajectory_builder.py +0 -0
  23. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/api.py +0 -0
  24. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/auth/__init__.py +0 -0
  25. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/auth/auth_config.py +0 -0
  26. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/auth/authorization.py +0 -0
  27. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/cell/__init__.py +0 -0
  28. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/cell/cell.py +0 -0
  29. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/cell/controllers.py +0 -0
  30. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/cell/robot_cell.py +0 -0
  31. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/cell/simulation.py +0 -0
  32. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/__init__.py +0 -0
  33. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/controller.py +0 -0
  34. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/env_handler.py +0 -0
  35. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/exceptions.py +0 -0
  36. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/gateway.py +0 -0
  37. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/io.py +0 -0
  38. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/logging.py +0 -0
  39. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/motion_group.py +0 -0
  40. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/movement_controller.py +0 -0
  41. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/core/nova.py +0 -0
  42. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/events/__init__.py +0 -0
  43. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/events/nats.py +0 -0
  44. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/extentions/__init__.py +0 -0
  45. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/extentions/opcua/__init__.py +0 -0
  46. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/extentions/opcua/client.py +0 -0
  47. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/extentions/opcua/functions.py +0 -0
  48. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/program/__init__.py +0 -0
  49. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/program/exceptions.py +0 -0
  50. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/program/function.py +0 -0
  51. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/program/store.py +0 -0
  52. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/program/utils.py +0 -0
  53. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/types/__init__.py +0 -0
  54. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/types/collision_scene.py +0 -0
  55. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/types/motion_settings.py +0 -0
  56. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/types/pose.py +0 -0
  57. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/types/state.py +0 -0
  58. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/types/vector3d.py +0 -0
  59. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/utils.py +0 -0
  60. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/version.py +0 -0
  61. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/viewers/__init__.py +0 -0
  62. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/viewers/base.py +0 -0
  63. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/viewers/manager.py +0 -0
  64. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/viewers/protocol.py +0 -0
  65. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/viewers/rerun.py +0 -0
  66. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova/viewers/utils.py +0 -0
  67. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/LICENSE +0 -0
  68. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/README.md +0 -0
  69. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/__init__.py +0 -0
  70. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/README.md +0 -0
  71. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/benchmark_base.py +0 -0
  72. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/dataset/README.md +0 -0
  73. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/dataset/demo_set.yaml +0 -0
  74. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/dataset/mb_set.yaml +0 -0
  75. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/dataset/mpinets_set.yaml +0 -0
  76. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/datasets.py +0 -0
  77. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/log_successful_planning.py +0 -0
  78. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/robometrics_helper.py +0 -0
  79. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/run_collision_free_benchmark.py +0 -0
  80. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/run_collision_free_magma.py +0 -0
  81. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/benchmark/run_ptp_benchmark.py +0 -0
  82. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/blueprint.py +0 -0
  83. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/collision_scene.py +0 -0
  84. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/colors.py +0 -0
  85. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/consts.py +0 -0
  86. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/conversion_helpers.py +0 -0
  87. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/dh_robot.py +0 -0
  88. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/example_data/Welding_Benchmark_USA_01.stl +0 -0
  89. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/example_data/bin_everything_05.ply +0 -0
  90. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/example_data/colliders.json +0 -0
  91. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/example_data/source.md +0 -0
  92. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/example_data/tool.stl +0 -0
  93. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/example_data/yaskawa_ar1440_rif_with_safety_zones.json +0 -0
  94. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/collison_world.py +0 -0
  95. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/import_ply.py +0 -0
  96. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/reachability_check.py +0 -0
  97. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/robocore.py +0 -0
  98. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/stream_robot.py +0 -0
  99. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/use_nova_rerun_bridge.py +0 -0
  100. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/visualize_tool.py +0 -0
  101. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/wait_action.py +0 -0
  102. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/welding_example.py +0 -0
  103. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/yaskawa-ar1440-16-mounting.json +0 -0
  104. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/examples/yaskawa-ar1440-with-external-axis.json +0 -0
  105. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/helper_scripts/README.md +0 -0
  106. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/helper_scripts/__init__.py +0 -0
  107. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/helper_scripts/code_server_helpers.py +0 -0
  108. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/helper_scripts/download_models.py +0 -0
  109. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/helper_scripts/plan_with_collisions.py +0 -0
  110. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/hull_visualizer.py +0 -0
  111. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/minimal_example/.gitignore +0 -0
  112. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/minimal_example/README.md +0 -0
  113. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/minimal_example/main.py +0 -0
  114. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/minimal_example/poetry.toml +0 -0
  115. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/minimal_example/pyproject.toml +0 -0
  116. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/minimal_example/ruff.toml +0 -0
  117. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/minimal_example/uv.lock +0 -0
  118. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/motion_recorder.py +0 -0
  119. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/motion_storage.py +0 -0
  120. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge.py +0 -0
  121. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/.dockerignore +0 -0
  122. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/.nova +0 -0
  123. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/Dockerfile +0 -0
  124. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/app.yaml +0 -0
  125. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/build.sh +0 -0
  126. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/data/README.md +0 -0
  127. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/deployment.yaml +0 -0
  128. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/ingress.yaml +0 -0
  129. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/kustomization.yaml +0 -0
  130. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/namespace.yaml +0 -0
  131. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.conf +0 -0
  132. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.http.conf.template +0 -0
  133. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/skaffold.yaml +0 -0
  134. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/start.sh +0 -0
  135. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/nova_rerun_bridge_app/static/app_icon.png +0 -0
  136. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/polling/populate.py +0 -0
  137. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/.dockerignore +0 -0
  138. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/.nova +0 -0
  139. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/Dockerfile +0 -0
  140. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/app.yaml +0 -0
  141. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/build.sh +0 -0
  142. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/k8s/deployment.yaml +0 -0
  143. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/k8s/ingress.yaml +0 -0
  144. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/k8s/kustomization.yaml +0 -0
  145. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/k8s/namespace.yaml +0 -0
  146. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/nginx.conf +0 -0
  147. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/nginx.http.conf.template +0 -0
  148. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/skaffold.yaml +0 -0
  149. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/start.sh +0 -0
  150. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/rerun_app/static/app_icon.png +0 -0
  151. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/robot_visualizer.py +0 -0
  152. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/safety_zones.py +0 -0
  153. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/stream_state.py +0 -0
  154. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/nova_rerun_bridge/trajectory.py +0 -0
  155. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/novax/__init__.py +0 -0
  156. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/novax/api/__init__.py +0 -0
  157. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/novax/api/dependencies.py +0 -0
  158. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/novax/api/programs.py +0 -0
  159. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/novax/novax.py +0 -0
  160. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/novax/program_manager.py +0 -0
  161. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/tests/nova_rerun_bridge/test_blueprint.py +0 -0
  162. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/tests/nova_rerun_bridge/test_log_motion.py +0 -0
  163. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/tests/nova_rerun_bridge/test_nova_rerun_bridge.py +0 -0
  164. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/tests/nova_rerun_bridge/test_trajectory.py +0 -0
  165. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/tests/novax/api/test_programs.py +0 -0
  166. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/tests/novax/conftest.py +0 -0
  167. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/tests/novax/serve.py +0 -0
  168. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/tests/novax/test_novax.py +0 -0
  169. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/tests/novax/test_program_manager.py +0 -0
  170. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/CHANGELOG.md +0 -0
  171. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/README.md +0 -0
  172. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/__init__.py +0 -0
  173. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/__main__.py +0 -0
  174. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/antlrvisitor.py +0 -0
  175. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/__init__.py +0 -0
  176. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/array.py +0 -0
  177. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/assoc.py +0 -0
  178. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/controller.py +0 -0
  179. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/fetch.py +0 -0
  180. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/fs.py +0 -0
  181. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/math.py +0 -0
  182. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/pose.py +0 -0
  183. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/string.py +0 -0
  184. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins/wait.py +0 -0
  185. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/builtins.ws +0 -0
  186. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/cli.py +0 -0
  187. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/datatypes.py +0 -0
  188. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/and_or.json +0 -0
  189. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/and_or.ws +0 -0
  190. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/array.config +0 -0
  191. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/array.json +0 -0
  192. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/array.ws +0 -0
  193. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/assignment.json +0 -0
  194. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/assignment.ws +0 -0
  195. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/async_write.json +0 -0
  196. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/async_write.ws +0 -0
  197. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/blending.json +0 -0
  198. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/blending.ws +0 -0
  199. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/bool_negation.json +0 -0
  200. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/bool_negation.ws +0 -0
  201. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/builtins.json +0 -0
  202. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/builtins.ws +0 -0
  203. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/comments.json +0 -0
  204. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/comments.ws +0 -0
  205. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/context.json +0 -0
  206. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/context.ws +0 -0
  207. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/controller.cell.json +0 -0
  208. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/controller.json +0 -0
  209. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/controller.ws +0 -0
  210. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/coordinate_systems.json +0 -0
  211. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/coordinate_systems.ws +0 -0
  212. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/default.cell.json +0 -0
  213. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/default.json +0 -0
  214. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/default.ws +0 -0
  215. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/edge_pattern.json +0 -0
  216. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/edge_pattern.ws +0 -0
  217. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/edge_pattern_line.json +0 -0
  218. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/edge_pattern_line.ws +0 -0
  219. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/edge_pattern_manhattan.json +0 -0
  220. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/edge_pattern_manhattan.ws +0 -0
  221. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/empty.json +0 -0
  222. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/empty.ws +0 -0
  223. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/expressions.json +0 -0
  224. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/expressions.ws +0 -0
  225. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/fetch.json +0 -0
  226. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/fetch.ws +0 -0
  227. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/find_edge_from_4_poses.json +0 -0
  228. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/find_edge_from_4_poses.ws +0 -0
  229. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/frame.json +0 -0
  230. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/frame.ws +0 -0
  231. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/frame2.json +0 -0
  232. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/frame2.ws +0 -0
  233. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/frame3.cell.json +0 -0
  234. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/frame3.json +0 -0
  235. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/frame3.ws +0 -0
  236. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/function.json +0 -0
  237. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/function.ws +0 -0
  238. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/functional_pose.json +0 -0
  239. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/functional_pose.ws +0 -0
  240. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/get_pose.json +0 -0
  241. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/get_pose.ws +0 -0
  242. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/ifelse.json +0 -0
  243. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/ifelse.ws +0 -0
  244. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/interpolation.json +0 -0
  245. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/interpolation.ws +0 -0
  246. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/interrupt.json +0 -0
  247. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/interrupt.ws +0 -0
  248. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/io.json +0 -0
  249. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/io.ws +0 -0
  250. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/loops.json +0 -0
  251. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/loops.ws +0 -0
  252. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/move.json +0 -0
  253. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/move.ws +0 -0
  254. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/move_via_expression.json +0 -0
  255. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/move_via_expression.ws +0 -0
  256. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/move_with_velocity.json +0 -0
  257. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/move_with_velocity.ws +0 -0
  258. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/multiple_robots.cell.json +0 -0
  259. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/multiple_robots.json +0 -0
  260. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/multiple_robots.ws +0 -0
  261. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/multiple_robots2.cell.json +0 -0
  262. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/multiple_robots2.json +0 -0
  263. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/multiple_robots2.ws +0 -0
  264. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/multiple_robots3.cell.json +0 -0
  265. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/multiple_robots3.json +0 -0
  266. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/multiple_robots3.ws +0 -0
  267. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/not.json +0 -0
  268. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/not.ws +0 -0
  269. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/operator_precedence.json +0 -0
  270. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/operator_precedence.ws +0 -0
  271. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/pose.json +0 -0
  272. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/pose.ws +0 -0
  273. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/poses2.json +0 -0
  274. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/poses2.ws +0 -0
  275. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/print.json +0 -0
  276. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/print.ws +0 -0
  277. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/record.json +0 -0
  278. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/record.ws +0 -0
  279. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/scope.json +0 -0
  280. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/scope.ws +0 -0
  281. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/spline.json +0 -0
  282. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/spline.ws +0 -0
  283. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/switch.json +0 -0
  284. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/switch.ws +0 -0
  285. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/tcps.cell.json +0 -0
  286. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/tcps.json +0 -0
  287. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/tcps.ws +0 -0
  288. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/tower_of_hanoi.cell.json +0 -0
  289. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/tower_of_hanoi.json +0 -0
  290. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/tower_of_hanoi.ws +0 -0
  291. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/try.json +0 -0
  292. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/try.ws +0 -0
  293. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/vision_move.json +0 -0
  294. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/vision_move.ws +0 -0
  295. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wait.config +0 -0
  296. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wait.json +0 -0
  297. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wait.ws +0 -0
  298. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wandelchat2.json +0 -0
  299. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wandelchat2.ws +0 -0
  300. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wandelchat3.json +0 -0
  301. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wandelchat3.ws +0 -0
  302. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/whitespaces.json +0 -0
  303. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/whitespaces.ws +0 -0
  304. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wp393.json +0 -0
  305. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wp393.ws +0 -0
  306. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wp469.json +0 -0
  307. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples/wp469.ws +0 -0
  308. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/examples.py +0 -0
  309. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/exception.py +0 -0
  310. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/ffi.py +0 -0
  311. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/ffi_loader.py +0 -0
  312. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/frames.py +0 -0
  313. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/WandelscriptLexerBase.py +0 -0
  314. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/__init__.py +0 -0
  315. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptLexer.g4 +0 -0
  316. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptLexer.interp +0 -0
  317. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptLexer.py +0 -0
  318. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptLexer.tokens +0 -0
  319. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptParser.g4 +0 -0
  320. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptParser.interp +0 -0
  321. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptParser.py +0 -0
  322. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptParser.tokens +0 -0
  323. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptParserListener.py +0 -0
  324. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/grammar/wandelscriptParserVisitor.py +0 -0
  325. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/metamodel.py +0 -0
  326. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/migration.py +0 -0
  327. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/models.py +0 -0
  328. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/motions.py +0 -0
  329. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/operators.py +0 -0
  330. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/runtime.py +0 -0
  331. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/scripts/generate_parser.sh +0 -0
  332. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/__init__.py +0 -0
  333. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_executor.py +0 -0
  334. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_ffi.py +0 -0
  335. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_migration.py +0 -0
  336. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_move.py +0 -0
  337. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_multirobot.py +0 -0
  338. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_parser.py +0 -0
  339. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_programs.py +0 -0
  340. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_simulation.py +0 -0
  341. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_stepwise.py +0 -0
  342. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_store.py +0 -0
  343. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_two_step_execution.py +0 -0
  344. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/tests/test_types.py +0 -0
  345. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/utils/__init__.py +0 -0
  346. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/utils/runtime.py +0 -0
  347. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/utils/serializer.py +0 -0
  348. {wandelbots_nova-2.8.2 → wandelbots_nova-2.8.4}/wandelscript/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wandelbots-nova
3
- Version: 2.8.2
3
+ Version: 2.8.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>
@@ -42,7 +42,8 @@ Requires-Dist: aiostream<0.7,>=0.6.1; extra == 'wandelscript'
42
42
  Requires-Dist: antlr4-python3-runtime==4.13.1; extra == 'wandelscript'
43
43
  Requires-Dist: dotenv; extra == 'wandelscript'
44
44
  Requires-Dist: geometricalgebra<0.2,>=0.1.3; extra == 'wandelscript'
45
- Requires-Dist: typer[all]<0.16,>=0.12; extra == 'wandelscript'
45
+ Requires-Dist: numpy>=1.1.19; extra == 'wandelscript'
46
+ Requires-Dist: typer[all]<0.17,>=0.12; extra == 'wandelscript'
46
47
  Description-Content-Type: text/markdown
47
48
 
48
49
  # wandelbots-nova (Python SDK)
@@ -35,13 +35,13 @@ class ExecutionContext:
35
35
  # Maps the motion group id to the list of recorded motion lists
36
36
  # Each motion list is a path the was planned separately
37
37
  motion_group_recordings: list[list[MotionState]]
38
- output: dict
38
+ output_data: dict[str, Any]
39
39
 
40
40
  def __init__(self, robot_cell: RobotCell, stop_event: anyio.Event):
41
41
  self._robot_cell = robot_cell
42
42
  self._stop_event = stop_event
43
43
  self.motion_group_recordings = []
44
- self.output_data: dict[str, Any] = {}
44
+ self.output_data = {}
45
45
 
46
46
  @property
47
47
  def robot_cell(self) -> RobotCell:
@@ -73,6 +73,7 @@ class ProgramRun(BaseModel):
73
73
  start_time: dt.datetime | None = Field(None, description="Start time of the program run")
74
74
  end_time: dt.datetime | None = Field(None, description="End time of the program run")
75
75
  input_data: dict[str, Any] | None = Field(None, description="Input of the program run")
76
+ output_data: dict[str, Any] | None = Field(None, description="Output of the program run")
76
77
 
77
78
 
78
79
  class ProgramRunner(ABC):
@@ -83,18 +84,13 @@ class ProgramRunner(ABC):
83
84
  """
84
85
 
85
86
  def __init__(
86
- self,
87
- program_id: str,
88
- args: dict[str, Any],
89
- robot_cell_override: RobotCell | None = None,
90
- simulate: bool = False,
87
+ self, program_id: str, args: dict[str, Any], robot_cell_override: RobotCell | None = None
91
88
  ):
92
89
  """
93
90
  Args:
94
91
  program_id (str): The unique identifier of the program.
95
92
  args (dict[str, Any]): The arguments to pass to the program.
96
93
  robot_cell_override (RobotCell | None, optional): The robot cell to use for the program. Defaults to None.
97
- simulate (bool, optional): If True, the program will be simulated and not connect to NOVA. Used for testing. Defaults to False.
98
94
  """
99
95
  self._run_id = str(uuid.uuid4())
100
96
  self._program_id = program_id
@@ -111,6 +107,7 @@ class ProgramRunner(ABC):
111
107
  start_time=None,
112
108
  end_time=None,
113
109
  input_data=args,
110
+ output_data={},
114
111
  )
115
112
  self._thread: threading.Thread | None = None
116
113
  self._stop_event: threading.Event | None = None
@@ -375,9 +372,8 @@ class ProgramRunner(ABC):
375
372
  f"Program {self.program_id} run {self.run_id} completed successfully"
376
373
  )
377
374
  finally:
378
- # write path to output
379
- # self._program_run.execution_results = execution_context.motion_group_recordings
380
- # self._program_run.output_data = execution_context.output_data
375
+ # program output data
376
+ self._program_run.output_data = execution_context.output_data
381
377
 
382
378
  logger.info(
383
379
  f"Program {self.program_id} run {self.run_id} finished. Run teardown routine..."
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "wandelbots-nova"
3
- version = "2.8.2"
3
+ version = "2.8.4"
4
4
  description = "Official Python SDK for the Wandelbots Nova"
5
5
  authors = [
6
6
  { name = "Wandelbots GmbH" },
@@ -58,7 +58,8 @@ wandelscript = [
58
58
  "antlr4-python3-runtime==4.13.1",
59
59
  "dotenv",
60
60
  "geometricalgebra>=0.1.3,<0.2",
61
- "typer[all]>=0.12,<0.16",
61
+ "typer[all]>=0.12,<0.17",
62
+ "numpy>=1.1.19",
62
63
  ]
63
64
  novax = [
64
65
  "fastapi>=0.115.6",
@@ -111,6 +112,7 @@ junit_family = "xunit2"
111
112
  norecursedirs = "develop .ipynb_checkpoints .venv .tox *.egg"
112
113
  testpaths = """
113
114
  nova
115
+ wandelscript
114
116
  tests
115
117
  """
116
118
  markers = """
@@ -8,7 +8,6 @@ from nova.cell.robot_cell import RobotCell
8
8
  from nova.program import Program
9
9
  from nova.program import ProgramRunner as NovaProgramRunner
10
10
  from nova.program.runner import ExecutionContext as NovaExecutionContext
11
- from nova.program.runner import ProgramRun
12
11
  from wandelscript.datatypes import ElementType
13
12
  from wandelscript.ffi import ForeignFunction
14
13
  from wandelscript.ffi_loader import load_foreign_functions
@@ -16,11 +15,6 @@ from wandelscript.metamodel import Program as WandelscriptProgram
16
15
  from wandelscript.runtime import ExecutionContext
17
16
 
18
17
 
19
- # TODO: how to return this in the end?
20
- class WandelscriptProgramRun(ProgramRun):
21
- store: dict
22
-
23
-
24
18
  class ProgramRunner(NovaProgramRunner):
25
19
  """Provides functionalities to manage a single program execution"""
26
20
 
@@ -28,11 +28,11 @@ print(a)
28
28
  """
29
29
  robot_cell = SimulatedRobotCell()
30
30
  if exception is None:
31
- runner = wandelscript.run(code, robot_cell_override=robot_cell)
31
+ runner = wandelscript.run(program_id="test", program=code, robot_cell_override=robot_cell)
32
32
  assert runner.state is ProgramRunState.COMPLETED
33
33
  else:
34
34
  with pytest.raises(exception):
35
- wandelscript.run(code, robot_cell_override=robot_cell)
35
+ wandelscript.run(program_id="test", program=code, robot_cell_override=robot_cell)
36
36
 
37
37
 
38
38
  @pytest.mark.parametrize(
@@ -53,7 +53,7 @@ new_pose = assoc(pose, {index}, 42)
53
53
  """
54
54
  robot_cell = SimulatedRobotCell()
55
55
  with pytest.raises(exception):
56
- runner = wandelscript.run(code, robot_cell_override=robot_cell)
56
+ runner = wandelscript.run(program_id="test", program=code, robot_cell_override=robot_cell)
57
57
  assert runner.state is ProgramRunState.FAILED
58
58
 
59
59
 
@@ -74,9 +74,13 @@ def test_example(example_name):
74
74
  logger.info(f"Running example {example_name}...")
75
75
  program, data, config = EXAMPLES[example_name]
76
76
  robot_cell = _robot_cell_from_configuration(config)
77
- runner = wandelscript.run(program, robot_cell_override=robot_cell, default_tcp="Flange")
78
- store = runner.program_run.result
79
- print(store)
77
+ runner = wandelscript.run(
78
+ program_id=example_name,
79
+ program=program,
80
+ robot_cell_override=robot_cell,
81
+ default_tcp="Flange",
82
+ )
83
+ store = runner.program_run.output_data
80
84
  for key, expected in data.items():
81
85
  if isinstance(expected, list):
82
86
  expected = tuple(tuple(v) if isinstance(v, list) else v for v in expected)
@@ -29,33 +29,16 @@ move frame("tool") to (2, 2, 0)
29
29
  )
30
30
  with pytest.raises(ProgramRuntimeError):
31
31
  wandelscript.run(
32
- code,
32
+ program_id="test",
33
+ program=code,
33
34
  robot_cell_override=SimulatedRobotCell(controller=controller),
34
35
  default_robot="0@controller",
35
36
  )
36
37
 
37
38
 
38
- def test_simple_motion():
39
- code = """
40
- move via ptp() to (0, 0, 10, 0, 0, 0)
41
- move via line() to (0, 10, 10, 0, 0, 0)
42
- sync
43
- """
44
- cell = get_robot_cell()
45
- runner = wandelscript.run(
46
- code, robot_cell_override=cell, default_robot="0@controller", default_tcp="Flange"
47
- )
48
- assert len(runner.program_run.execution_results) == 1
49
- first_pose = runner.program_run.execution_results[-1][0].state.pose
50
- last_pose = runner.program_run.execution_results[-1][-1].state.pose
51
- # The first position will be at the origin because the simulated robot assumes it as the default initial position
52
- assert np.allclose(first_pose.to_tuple(), (0, 0, 0, 0, 0, 0))
53
- assert np.allclose(last_pose.to_tuple(), (0, 10, 10, 0, 0, 0))
54
-
55
-
56
39
  def test_no_robot():
57
40
  code = """print("hello world")"""
58
- wandelscript.run(code, robot_cell_override=RobotCell())
41
+ wandelscript.run(program_id="test", program=code, robot_cell_override=RobotCell())
59
42
 
60
43
 
61
44
  def test_motion_type_p2p_line():
@@ -77,7 +60,9 @@ move via ptp() to (23, 0, 626, 0, 0, 0)
77
60
  ]
78
61
 
79
62
  cell = get_robot_cell()
80
- runner = wandelscript.run(code, robot_cell_override=cell, default_tcp="Flange")
63
+ runner = wandelscript.run(
64
+ program_id="test", program=code, robot_cell_override=cell, default_tcp="Flange"
65
+ )
81
66
 
82
67
  record_of_commands = runner.execution_context.robot_cell.get_motion_group(
83
68
  "0@controller"
@@ -21,8 +21,10 @@ print("print something")
21
21
  move via line() to (0, 100, 400, 0, pi, 0)
22
22
  """
23
23
  for i in range(2):
24
- runner = run(code, robot_cell_override=robot_cell, default_tcp="Flange")
25
- assert runner.program_run.result["a"] == 9
24
+ runner = run(
25
+ program_id="test", program=code, robot_cell_override=robot_cell, default_tcp="Flange"
26
+ )
27
+ assert runner.program_run.output_data["a"] == 9
26
28
  assert runner.program_run.state is ProgramRunState.COMPLETED
27
29
  assert "print something" in runner.program_run.logs
28
30
  assert not isinstance(sys.stdout, Tee)
@@ -1,7 +1,6 @@
1
1
  import asyncio
2
2
  import sys
3
3
  import time
4
- import uuid
5
4
  from datetime import datetime
6
5
  from typing import Any
7
6
 
@@ -80,14 +79,15 @@ move via line() to home :: (0, 100, 0, 0, 0, 0)
80
79
  }
81
80
 
82
81
  runner = run(
83
- code,
82
+ program_id="test",
83
+ program=code,
84
84
  args={},
85
85
  robot_cell_override=SimulatedRobotCell(),
86
86
  default_robot="0@controller",
87
87
  default_tcp="Flange",
88
88
  foreign_functions=foreign_functions,
89
89
  )
90
- store = runner.program_run.result
90
+ store = runner.program_run.output_data
91
91
  assert "home" in store
92
92
  assert store["a"] == 9
93
93
  assert runner.program_run.state is ProgramRunState.COMPLETED
@@ -114,7 +114,8 @@ print(a)
114
114
  """
115
115
 
116
116
  runner = run(
117
- code,
117
+ program_id="test",
118
+ program=code,
118
119
  args={},
119
120
  robot_cell_override=SimulatedRobotCell(),
120
121
  default_robot="0@controller",
@@ -126,8 +127,11 @@ print(a)
126
127
 
127
128
 
128
129
  def test_program_runner():
129
- program_runner = ProgramRunner(program="move via p2p() to [100, 0, 300, 0, pi, 0]", args={})
130
- assert uuid.UUID(str(program_runner.id)) is not None
130
+ program_runner = ProgramRunner(
131
+ program_id="test", program="move via p2p() to [100, 0, 300, 0, pi, 0]", args={}
132
+ )
133
+ assert program_runner.program_run.run is not None
134
+ assert program_runner.program_run.program is not None
131
135
  assert program_runner.state is ProgramRunState.PREPARING
132
136
 
133
137
 
@@ -152,6 +156,7 @@ print(read(controller[0], "pose"))
152
156
  move via line() to (0, 100, 300, 0, pi, 0)
153
157
  """
154
158
  program_runner = ProgramRunner(
159
+ program_id="test",
155
160
  program=code,
156
161
  args={},
157
162
  robot_cell_override=SimulatedRobotCell(),
@@ -175,12 +180,8 @@ move via line() to (0, 100, 300, 0, pi, 0)
175
180
  # It should not be possible to start the runner after the runner was completed
176
181
  with pytest.raises(RuntimeError):
177
182
  program_runner.start(sync=True)
178
- # Check path
179
- assert len(program_runner.program_run.execution_results) > 0
180
- last_state = program_runner.program_run.execution_results[-1][-1]
181
- assert np.allclose(last_state.state.pose.to_tuple(), (0, 100, 300, 0, np.pi, 0))
182
183
  # Check store
183
- store = program_runner.program_run.result
184
+ store = program_runner.program_run.output_data
184
185
  assert np.allclose(
185
186
  tuple(store["home"]["position"]) + tuple(store["home"]["orientation"]),
186
187
  (0, 0, 400, 0, np.pi, 0),
@@ -210,6 +211,7 @@ move via p2p() to home
210
211
  )
211
212
  def test_program_runner_stop(code):
212
213
  program_runner = ProgramRunner(
214
+ program_id="test",
213
215
  program=code,
214
216
  args={},
215
217
  robot_cell_override=SimulatedRobotCell(),
@@ -247,7 +249,9 @@ move via p2p() to mispelled_var
247
249
  )
248
250
  def test_program_runner_failed(code, exception):
249
251
  with pytest.raises(exception):
250
- runner = run(code, args={}, robot_cell_override=SimulatedRobotCell())
252
+ runner = run(
253
+ program_id="test", program=code, args={}, robot_cell_override=SimulatedRobotCell()
254
+ )
251
255
  assert runner.program_run.state is ProgramRunState.FAILED
252
256
  assert runner.program_run.error is not None
253
257
  assert runner.program_run.traceback is not None
@@ -263,5 +267,7 @@ wait 4000
263
267
  move via p2p() to home :: (0, 0, 100)
264
268
  """
265
269
  with pytest.raises(Exception):
266
- runner = run(code, args={}, robot_cell_override=raising_robot_cell)
270
+ runner = run(
271
+ program_id="test", program=code, args={}, robot_cell_override=raising_robot_cell
272
+ )
267
273
  assert runner.program_run.state is ProgramRunState.FAILED
@@ -47,7 +47,13 @@ debug()
47
47
  """
48
48
 
49
49
  robot_cell = SimulatedRobotCell()
50
- run(code, robot_cell_override=robot_cell, default_robot="0@controller", default_tcp="Flange")
50
+ run(
51
+ program_id="test",
52
+ program=code,
53
+ robot_cell_override=robot_cell,
54
+ default_robot="0@controller",
55
+ default_tcp="Flange",
56
+ )
51
57
  assert test_a == 1
52
58
 
53
59
 
@@ -104,9 +110,16 @@ def test_robot_code_execution(code, num_robots, expected_exception):
104
110
  )
105
111
  if expected_exception:
106
112
  with pytest.raises(expected_exception):
107
- run(code, robot_cell_override=robot_cell, default_tcp="Flange")
113
+ run(
114
+ program_id="test",
115
+ program=code,
116
+ robot_cell_override=robot_cell,
117
+ default_tcp="Flange",
118
+ )
108
119
  else:
109
- result = run(code, robot_cell_override=robot_cell, default_tcp="Flange")
120
+ result = run(
121
+ program_id="test", program=code, robot_cell_override=robot_cell, default_tcp="Flange"
122
+ )
110
123
  assert result is not None
111
124
 
112
125
 
@@ -13,6 +13,7 @@ def pose_to_versor(pose: Pose) -> cga3d.Vector:
13
13
  The versor
14
14
 
15
15
  Examples:
16
+ >>> import numpy as np
16
17
  >>> p = Pose((0, 0, 5, 0, 0, 1))
17
18
  >>> assert np.allclose(pose_to_versor(p).to_pos_and_rot_vector(), [0, 0, 5, 0, 0, 1])
18
19
  """
File without changes