wandelbots-nova 2.7.2__tar.gz → 2.7.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/PKG-INFO +1 -1
  2. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/novax/novax.py +1 -9
  3. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/novax/program_manager.py +2 -121
  4. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/pyproject.toml +1 -1
  5. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/tests/novax/test_program_manager.py +0 -23
  6. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/__init__.py +2 -1
  7. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/runner.py +39 -0
  8. wandelbots_nova-2.7.2/tests/novax/test_program_sources.py +0 -103
  9. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/.gitignore +0 -0
  10. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/LICENSE +0 -0
  11. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/README.md +0 -0
  12. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/__init__.py +0 -0
  13. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/actions/__init__.py +0 -0
  14. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/actions/base.py +0 -0
  15. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/actions/container.py +0 -0
  16. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/actions/io.py +0 -0
  17. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/actions/mock.py +0 -0
  18. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/actions/motions.py +0 -0
  19. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/actions/trajectory_builder.py +0 -0
  20. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/api.py +0 -0
  21. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/auth/__init__.py +0 -0
  22. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/auth/auth_config.py +0 -0
  23. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/auth/authorization.py +0 -0
  24. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/cell/__init__.py +0 -0
  25. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/cell/cell.py +0 -0
  26. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/cell/controllers.py +0 -0
  27. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/cell/robot_cell.py +0 -0
  28. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/cell/simulation.py +0 -0
  29. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/__init__.py +0 -0
  30. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/controller.py +0 -0
  31. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/env_handler.py +0 -0
  32. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/exceptions.py +0 -0
  33. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/gateway.py +0 -0
  34. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/io.py +0 -0
  35. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/logging.py +0 -0
  36. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/motion_group.py +0 -0
  37. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/movement_controller.py +0 -0
  38. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/core/nova.py +0 -0
  39. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/events/__init__.py +0 -0
  40. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/events/nats.py +0 -0
  41. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/extentions/__init__.py +0 -0
  42. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/extentions/opcua/__init__.py +0 -0
  43. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/extentions/opcua/client.py +0 -0
  44. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/extentions/opcua/functions.py +0 -0
  45. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/program/__init__.py +0 -0
  46. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/program/exceptions.py +0 -0
  47. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/program/function.py +0 -0
  48. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/program/runner.py +0 -0
  49. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/program/store.py +0 -0
  50. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/program/utils.py +0 -0
  51. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/types/__init__.py +0 -0
  52. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/types/collision_scene.py +0 -0
  53. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/types/motion_settings.py +0 -0
  54. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/types/pose.py +0 -0
  55. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/types/state.py +0 -0
  56. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/types/vector3d.py +0 -0
  57. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/utils.py +0 -0
  58. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/version.py +0 -0
  59. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/viewers/__init__.py +0 -0
  60. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/viewers/base.py +0 -0
  61. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/viewers/manager.py +0 -0
  62. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/viewers/protocol.py +0 -0
  63. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/viewers/rerun.py +0 -0
  64. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova/viewers/utils.py +0 -0
  65. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/LICENSE +0 -0
  66. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/README.md +0 -0
  67. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/__init__.py +0 -0
  68. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/README.md +0 -0
  69. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/benchmark_base.py +0 -0
  70. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/dataset/README.md +0 -0
  71. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/dataset/demo_set.yaml +0 -0
  72. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/dataset/mb_set.yaml +0 -0
  73. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/dataset/mpinets_set.yaml +0 -0
  74. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/datasets.py +0 -0
  75. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/log_successful_planning.py +0 -0
  76. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/robometrics_helper.py +0 -0
  77. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/run_collision_free_benchmark.py +0 -0
  78. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/run_collision_free_magma.py +0 -0
  79. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/benchmark/run_ptp_benchmark.py +0 -0
  80. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/blueprint.py +0 -0
  81. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/collision_scene.py +0 -0
  82. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/colors.py +0 -0
  83. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/consts.py +0 -0
  84. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/conversion_helpers.py +0 -0
  85. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/dh_robot.py +0 -0
  86. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/example_data/Welding_Benchmark_USA_01.stl +0 -0
  87. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/example_data/bin_everything_05.ply +0 -0
  88. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/example_data/colliders.json +0 -0
  89. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/example_data/source.md +0 -0
  90. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/example_data/tool.stl +0 -0
  91. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/example_data/yaskawa_ar1440_rif_with_safety_zones.json +0 -0
  92. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/collison_world.py +0 -0
  93. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/import_ply.py +0 -0
  94. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/reachability_check.py +0 -0
  95. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/robocore.py +0 -0
  96. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/stream_robot.py +0 -0
  97. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/use_nova_rerun_bridge.py +0 -0
  98. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/visualize_tool.py +0 -0
  99. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/wait_action.py +0 -0
  100. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/welding_example.py +0 -0
  101. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/yaskawa-ar1440-16-mounting.json +0 -0
  102. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/examples/yaskawa-ar1440-with-external-axis.json +0 -0
  103. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/helper_scripts/README.md +0 -0
  104. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/helper_scripts/__init__.py +0 -0
  105. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/helper_scripts/code_server_helpers.py +0 -0
  106. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/helper_scripts/download_models.py +0 -0
  107. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/helper_scripts/plan_with_collisions.py +0 -0
  108. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/hull_visualizer.py +0 -0
  109. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/minimal_example/.gitignore +0 -0
  110. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/minimal_example/README.md +0 -0
  111. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/minimal_example/main.py +0 -0
  112. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/minimal_example/poetry.toml +0 -0
  113. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/minimal_example/pyproject.toml +0 -0
  114. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/minimal_example/ruff.toml +0 -0
  115. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/minimal_example/uv.lock +0 -0
  116. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/motion_recorder.py +0 -0
  117. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/motion_storage.py +0 -0
  118. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge.py +0 -0
  119. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/.dockerignore +0 -0
  120. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/.nova +0 -0
  121. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/Dockerfile +0 -0
  122. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/app.yaml +0 -0
  123. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/build.sh +0 -0
  124. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/data/README.md +0 -0
  125. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/deployment.yaml +0 -0
  126. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/ingress.yaml +0 -0
  127. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/kustomization.yaml +0 -0
  128. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/namespace.yaml +0 -0
  129. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.conf +0 -0
  130. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.http.conf.template +0 -0
  131. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/skaffold.yaml +0 -0
  132. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/start.sh +0 -0
  133. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/nova_rerun_bridge_app/static/app_icon.png +0 -0
  134. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/polling/populate.py +0 -0
  135. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/.dockerignore +0 -0
  136. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/.nova +0 -0
  137. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/Dockerfile +0 -0
  138. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/app.yaml +0 -0
  139. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/build.sh +0 -0
  140. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/k8s/deployment.yaml +0 -0
  141. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/k8s/ingress.yaml +0 -0
  142. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/k8s/kustomization.yaml +0 -0
  143. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/k8s/namespace.yaml +0 -0
  144. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/nginx.conf +0 -0
  145. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/nginx.http.conf.template +0 -0
  146. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/skaffold.yaml +0 -0
  147. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/start.sh +0 -0
  148. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/rerun_app/static/app_icon.png +0 -0
  149. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/robot_visualizer.py +0 -0
  150. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/safety_zones.py +0 -0
  151. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/stream_state.py +0 -0
  152. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/nova_rerun_bridge/trajectory.py +0 -0
  153. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/novax/__init__.py +0 -0
  154. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/novax/api/__init__.py +0 -0
  155. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/novax/api/dependencies.py +0 -0
  156. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/novax/api/programs.py +0 -0
  157. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/tests/nova_rerun_bridge/test_blueprint.py +0 -0
  158. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/tests/nova_rerun_bridge/test_log_motion.py +0 -0
  159. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/tests/nova_rerun_bridge/test_nova_rerun_bridge.py +0 -0
  160. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/tests/nova_rerun_bridge/test_trajectory.py +0 -0
  161. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/tests/novax/api/test_programs.py +0 -0
  162. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/tests/novax/conftest.py +0 -0
  163. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/tests/novax/serve.py +0 -0
  164. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/tests/novax/test_novax.py +0 -0
  165. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/CHANGELOG.md +0 -0
  166. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/README.md +0 -0
  167. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/__main__.py +0 -0
  168. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/antlrvisitor.py +0 -0
  169. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/__init__.py +0 -0
  170. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/array.py +0 -0
  171. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/assoc.py +0 -0
  172. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/controller.py +0 -0
  173. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/fetch.py +0 -0
  174. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/fs.py +0 -0
  175. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/math.py +0 -0
  176. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/pose.py +0 -0
  177. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/string.py +0 -0
  178. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins/wait.py +0 -0
  179. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/builtins.ws +0 -0
  180. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/cli.py +0 -0
  181. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/datatypes.py +0 -0
  182. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/and_or.json +0 -0
  183. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/and_or.ws +0 -0
  184. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/array.config +0 -0
  185. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/array.json +0 -0
  186. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/array.ws +0 -0
  187. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/assignment.json +0 -0
  188. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/assignment.ws +0 -0
  189. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/async_write.json +0 -0
  190. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/async_write.ws +0 -0
  191. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/blending.json +0 -0
  192. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/blending.ws +0 -0
  193. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/bool_negation.json +0 -0
  194. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/bool_negation.ws +0 -0
  195. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/builtins.json +0 -0
  196. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/builtins.ws +0 -0
  197. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/comments.json +0 -0
  198. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/comments.ws +0 -0
  199. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/context.json +0 -0
  200. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/context.ws +0 -0
  201. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/controller.cell.json +0 -0
  202. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/controller.json +0 -0
  203. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/controller.ws +0 -0
  204. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/coordinate_systems.json +0 -0
  205. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/coordinate_systems.ws +0 -0
  206. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/default.cell.json +0 -0
  207. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/default.json +0 -0
  208. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/default.ws +0 -0
  209. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/edge_pattern.json +0 -0
  210. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/edge_pattern.ws +0 -0
  211. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/edge_pattern_line.json +0 -0
  212. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/edge_pattern_line.ws +0 -0
  213. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/edge_pattern_manhattan.json +0 -0
  214. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/edge_pattern_manhattan.ws +0 -0
  215. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/empty.json +0 -0
  216. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/empty.ws +0 -0
  217. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/expressions.json +0 -0
  218. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/expressions.ws +0 -0
  219. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/fetch.json +0 -0
  220. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/fetch.ws +0 -0
  221. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/find_edge_from_4_poses.json +0 -0
  222. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/find_edge_from_4_poses.ws +0 -0
  223. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/frame.json +0 -0
  224. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/frame.ws +0 -0
  225. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/frame2.json +0 -0
  226. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/frame2.ws +0 -0
  227. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/frame3.cell.json +0 -0
  228. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/frame3.json +0 -0
  229. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/frame3.ws +0 -0
  230. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/function.json +0 -0
  231. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/function.ws +0 -0
  232. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/functional_pose.json +0 -0
  233. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/functional_pose.ws +0 -0
  234. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/get_pose.json +0 -0
  235. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/get_pose.ws +0 -0
  236. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/ifelse.json +0 -0
  237. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/ifelse.ws +0 -0
  238. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/interpolation.json +0 -0
  239. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/interpolation.ws +0 -0
  240. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/interrupt.json +0 -0
  241. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/interrupt.ws +0 -0
  242. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/io.json +0 -0
  243. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/io.ws +0 -0
  244. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/loops.json +0 -0
  245. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/loops.ws +0 -0
  246. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/move.json +0 -0
  247. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/move.ws +0 -0
  248. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/move_via_expression.json +0 -0
  249. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/move_via_expression.ws +0 -0
  250. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/move_with_velocity.json +0 -0
  251. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/move_with_velocity.ws +0 -0
  252. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/multiple_robots.cell.json +0 -0
  253. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/multiple_robots.json +0 -0
  254. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/multiple_robots.ws +0 -0
  255. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/multiple_robots2.cell.json +0 -0
  256. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/multiple_robots2.json +0 -0
  257. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/multiple_robots2.ws +0 -0
  258. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/multiple_robots3.cell.json +0 -0
  259. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/multiple_robots3.json +0 -0
  260. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/multiple_robots3.ws +0 -0
  261. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/not.json +0 -0
  262. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/not.ws +0 -0
  263. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/operator_precedence.json +0 -0
  264. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/operator_precedence.ws +0 -0
  265. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/pose.json +0 -0
  266. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/pose.ws +0 -0
  267. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/poses2.json +0 -0
  268. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/poses2.ws +0 -0
  269. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/print.json +0 -0
  270. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/print.ws +0 -0
  271. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/record.json +0 -0
  272. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/record.ws +0 -0
  273. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/scope.json +0 -0
  274. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/scope.ws +0 -0
  275. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/spline.json +0 -0
  276. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/spline.ws +0 -0
  277. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/switch.json +0 -0
  278. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/switch.ws +0 -0
  279. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/tcps.cell.json +0 -0
  280. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/tcps.json +0 -0
  281. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/tcps.ws +0 -0
  282. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/tower_of_hanoi.cell.json +0 -0
  283. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/tower_of_hanoi.json +0 -0
  284. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/tower_of_hanoi.ws +0 -0
  285. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/try.json +0 -0
  286. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/try.ws +0 -0
  287. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/vision_move.json +0 -0
  288. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/vision_move.ws +0 -0
  289. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wait.config +0 -0
  290. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wait.json +0 -0
  291. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wait.ws +0 -0
  292. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wandelchat2.json +0 -0
  293. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wandelchat2.ws +0 -0
  294. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wandelchat3.json +0 -0
  295. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wandelchat3.ws +0 -0
  296. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/whitespaces.json +0 -0
  297. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/whitespaces.ws +0 -0
  298. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wp393.json +0 -0
  299. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wp393.ws +0 -0
  300. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wp469.json +0 -0
  301. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples/wp469.ws +0 -0
  302. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/examples.py +0 -0
  303. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/exception.py +0 -0
  304. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/ffi.py +0 -0
  305. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/ffi_loader.py +0 -0
  306. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/frames.py +0 -0
  307. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/WandelscriptLexerBase.py +0 -0
  308. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/__init__.py +0 -0
  309. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptLexer.g4 +0 -0
  310. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptLexer.interp +0 -0
  311. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptLexer.py +0 -0
  312. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptLexer.tokens +0 -0
  313. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptParser.g4 +0 -0
  314. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptParser.interp +0 -0
  315. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptParser.py +0 -0
  316. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptParser.tokens +0 -0
  317. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptParserListener.py +0 -0
  318. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/grammar/wandelscriptParserVisitor.py +0 -0
  319. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/metamodel.py +0 -0
  320. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/migration.py +0 -0
  321. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/models.py +0 -0
  322. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/motions.py +0 -0
  323. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/operators.py +0 -0
  324. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/runtime.py +0 -0
  325. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/scripts/generate_parser.sh +0 -0
  326. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/__init__.py +0 -0
  327. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_builtins.py +0 -0
  328. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_examples.py +0 -0
  329. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_executor.py +0 -0
  330. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_ffi.py +0 -0
  331. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_migration.py +0 -0
  332. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_motion.py +0 -0
  333. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_move.py +0 -0
  334. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_multirobot.py +0 -0
  335. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_parser.py +0 -0
  336. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_programs.py +0 -0
  337. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_run_twice.py +0 -0
  338. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_runner.py +0 -0
  339. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_runtime.py +0 -0
  340. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_simulation.py +0 -0
  341. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_stepwise.py +0 -0
  342. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_store.py +0 -0
  343. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_two_step_execution.py +0 -0
  344. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/tests/test_types.py +0 -0
  345. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/utils/__init__.py +0 -0
  346. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/utils/pose.py +0 -0
  347. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/utils/runtime.py +0 -0
  348. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/utils/serializer.py +0 -0
  349. {wandelbots_nova-2.7.2 → wandelbots_nova-2.7.3}/wandelscript/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wandelbots-nova
3
- Version: 2.7.2
3
+ Version: 2.7.3
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>
@@ -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, ProgramSource
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 pathlib import Path
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.2"
3
+ version = "2.7.3"
4
4
  description = "Official Python SDK for the Wandelbots Nova"
5
5
  authors = [
6
6
  { name = "Wandelbots GmbH" },
@@ -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