wandelbots-nova 2.6.2__tar.gz → 2.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/PKG-INFO +1 -1
  2. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/actions/__init__.py +5 -0
  3. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/actions/container.py +4 -9
  4. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/actions/motions.py +8 -8
  5. wandelbots_nova-2.7.0/nova/actions/trajectory_builder.py +67 -0
  6. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/program/function.py +9 -2
  7. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/novax/novax.py +17 -17
  8. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/pyproject.toml +1 -1
  9. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/.gitignore +0 -0
  10. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/LICENSE +0 -0
  11. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/README.md +0 -0
  12. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/__init__.py +0 -0
  13. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/actions/base.py +0 -0
  14. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/actions/io.py +0 -0
  15. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/actions/mock.py +0 -0
  16. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/api.py +0 -0
  17. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/auth/__init__.py +0 -0
  18. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/auth/auth_config.py +0 -0
  19. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/auth/authorization.py +0 -0
  20. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/cell/__init__.py +0 -0
  21. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/cell/cell.py +0 -0
  22. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/cell/controllers.py +0 -0
  23. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/cell/robot_cell.py +0 -0
  24. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/cell/simulation.py +0 -0
  25. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/__init__.py +0 -0
  26. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/controller.py +0 -0
  27. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/env_handler.py +0 -0
  28. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/exceptions.py +0 -0
  29. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/gateway.py +0 -0
  30. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/io.py +0 -0
  31. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/logging.py +0 -0
  32. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/motion_group.py +0 -0
  33. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/movement_controller.py +0 -0
  34. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/core/nova.py +0 -0
  35. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/events/__init__.py +0 -0
  36. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/events/nats.py +0 -0
  37. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/extentions/__init__.py +0 -0
  38. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/extentions/opcua/__init__.py +0 -0
  39. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/extentions/opcua/client.py +0 -0
  40. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/extentions/opcua/functions.py +0 -0
  41. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/program/__init__.py +0 -0
  42. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/program/exceptions.py +0 -0
  43. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/program/runner.py +0 -0
  44. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/program/store.py +0 -0
  45. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/program/utils.py +0 -0
  46. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/types/__init__.py +0 -0
  47. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/types/collision_scene.py +0 -0
  48. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/types/motion_settings.py +0 -0
  49. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/types/pose.py +0 -0
  50. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/types/state.py +0 -0
  51. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/types/vector3d.py +0 -0
  52. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/utils.py +0 -0
  53. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/version.py +0 -0
  54. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/viewers/__init__.py +0 -0
  55. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/viewers/base.py +0 -0
  56. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/viewers/manager.py +0 -0
  57. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/viewers/protocol.py +0 -0
  58. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/viewers/rerun.py +0 -0
  59. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova/viewers/utils.py +0 -0
  60. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/LICENSE +0 -0
  61. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/README.md +0 -0
  62. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/__init__.py +0 -0
  63. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/README.md +0 -0
  64. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/benchmark_base.py +0 -0
  65. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/dataset/README.md +0 -0
  66. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/dataset/demo_set.yaml +0 -0
  67. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/dataset/mb_set.yaml +0 -0
  68. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/dataset/mpinets_set.yaml +0 -0
  69. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/datasets.py +0 -0
  70. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/log_successful_planning.py +0 -0
  71. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/robometrics_helper.py +0 -0
  72. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/run_collision_free_benchmark.py +0 -0
  73. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/run_collision_free_magma.py +0 -0
  74. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/benchmark/run_ptp_benchmark.py +0 -0
  75. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/blueprint.py +0 -0
  76. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/collision_scene.py +0 -0
  77. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/colors.py +0 -0
  78. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/consts.py +0 -0
  79. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/conversion_helpers.py +0 -0
  80. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/dh_robot.py +0 -0
  81. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/example_data/Welding_Benchmark_USA_01.stl +0 -0
  82. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/example_data/bin_everything_05.ply +0 -0
  83. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/example_data/colliders.json +0 -0
  84. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/example_data/source.md +0 -0
  85. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/example_data/tool.stl +0 -0
  86. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/example_data/yaskawa_ar1440_rif_with_safety_zones.json +0 -0
  87. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/collison_world.py +0 -0
  88. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/import_ply.py +0 -0
  89. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/reachability_check.py +0 -0
  90. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/robocore.py +0 -0
  91. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/stream_robot.py +0 -0
  92. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/use_nova_rerun_bridge.py +0 -0
  93. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/visualize_tool.py +0 -0
  94. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/wait_action.py +0 -0
  95. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/welding_example.py +0 -0
  96. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/yaskawa-ar1440-16-mounting.json +0 -0
  97. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/examples/yaskawa-ar1440-with-external-axis.json +0 -0
  98. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/helper_scripts/README.md +0 -0
  99. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/helper_scripts/__init__.py +0 -0
  100. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/helper_scripts/code_server_helpers.py +0 -0
  101. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/helper_scripts/download_models.py +0 -0
  102. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/helper_scripts/plan_with_collisions.py +0 -0
  103. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/hull_visualizer.py +0 -0
  104. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/minimal_example/.gitignore +0 -0
  105. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/minimal_example/README.md +0 -0
  106. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/minimal_example/main.py +0 -0
  107. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/minimal_example/poetry.toml +0 -0
  108. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/minimal_example/pyproject.toml +0 -0
  109. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/minimal_example/ruff.toml +0 -0
  110. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/minimal_example/uv.lock +0 -0
  111. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/motion_recorder.py +0 -0
  112. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/motion_storage.py +0 -0
  113. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge.py +0 -0
  114. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/.dockerignore +0 -0
  115. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/.nova +0 -0
  116. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/Dockerfile +0 -0
  117. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/app.yaml +0 -0
  118. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/build.sh +0 -0
  119. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/data/README.md +0 -0
  120. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/deployment.yaml +0 -0
  121. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/ingress.yaml +0 -0
  122. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/kustomization.yaml +0 -0
  123. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/namespace.yaml +0 -0
  124. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.conf +0 -0
  125. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.http.conf.template +0 -0
  126. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/skaffold.yaml +0 -0
  127. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/start.sh +0 -0
  128. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/nova_rerun_bridge_app/static/app_icon.png +0 -0
  129. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/polling/populate.py +0 -0
  130. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/.dockerignore +0 -0
  131. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/.nova +0 -0
  132. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/Dockerfile +0 -0
  133. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/app.yaml +0 -0
  134. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/build.sh +0 -0
  135. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/k8s/deployment.yaml +0 -0
  136. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/k8s/ingress.yaml +0 -0
  137. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/k8s/kustomization.yaml +0 -0
  138. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/k8s/namespace.yaml +0 -0
  139. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/nginx.conf +0 -0
  140. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/nginx.http.conf.template +0 -0
  141. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/skaffold.yaml +0 -0
  142. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/start.sh +0 -0
  143. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/rerun_app/static/app_icon.png +0 -0
  144. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/robot_visualizer.py +0 -0
  145. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/safety_zones.py +0 -0
  146. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/stream_state.py +0 -0
  147. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/nova_rerun_bridge/trajectory.py +0 -0
  148. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/novax/__init__.py +0 -0
  149. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/novax/api/__init__.py +0 -0
  150. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/novax/api/dependencies.py +0 -0
  151. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/novax/api/programs.py +0 -0
  152. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/novax/program_manager.py +0 -0
  153. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/nova_rerun_bridge/test_blueprint.py +0 -0
  154. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/nova_rerun_bridge/test_log_motion.py +0 -0
  155. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/nova_rerun_bridge/test_nova_rerun_bridge.py +0 -0
  156. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/nova_rerun_bridge/test_trajectory.py +0 -0
  157. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/novax/api/test_programs.py +0 -0
  158. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/novax/conftest.py +0 -0
  159. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/novax/serve.py +0 -0
  160. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/novax/test_novax.py +0 -0
  161. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/novax/test_program_manager.py +0 -0
  162. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/tests/novax/test_program_sources.py +0 -0
  163. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/CHANGELOG.md +0 -0
  164. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/README.md +0 -0
  165. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/__init__.py +0 -0
  166. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/__main__.py +0 -0
  167. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/antlrvisitor.py +0 -0
  168. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/__init__.py +0 -0
  169. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/array.py +0 -0
  170. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/assoc.py +0 -0
  171. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/controller.py +0 -0
  172. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/fetch.py +0 -0
  173. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/fs.py +0 -0
  174. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/math.py +0 -0
  175. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/pose.py +0 -0
  176. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/string.py +0 -0
  177. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins/wait.py +0 -0
  178. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/builtins.ws +0 -0
  179. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/cli.py +0 -0
  180. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/datatypes.py +0 -0
  181. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/and_or.json +0 -0
  182. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/and_or.ws +0 -0
  183. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/array.config +0 -0
  184. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/array.json +0 -0
  185. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/array.ws +0 -0
  186. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/assignment.json +0 -0
  187. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/assignment.ws +0 -0
  188. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/async_write.json +0 -0
  189. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/async_write.ws +0 -0
  190. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/blending.json +0 -0
  191. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/blending.ws +0 -0
  192. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/bool_negation.json +0 -0
  193. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/bool_negation.ws +0 -0
  194. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/builtins.json +0 -0
  195. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/builtins.ws +0 -0
  196. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/comments.json +0 -0
  197. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/comments.ws +0 -0
  198. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/context.json +0 -0
  199. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/context.ws +0 -0
  200. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/controller.cell.json +0 -0
  201. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/controller.json +0 -0
  202. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/controller.ws +0 -0
  203. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/coordinate_systems.json +0 -0
  204. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/coordinate_systems.ws +0 -0
  205. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/default.cell.json +0 -0
  206. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/default.json +0 -0
  207. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/default.ws +0 -0
  208. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/edge_pattern.json +0 -0
  209. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/edge_pattern.ws +0 -0
  210. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/edge_pattern_line.json +0 -0
  211. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/edge_pattern_line.ws +0 -0
  212. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/edge_pattern_manhattan.json +0 -0
  213. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/edge_pattern_manhattan.ws +0 -0
  214. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/empty.json +0 -0
  215. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/empty.ws +0 -0
  216. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/expressions.json +0 -0
  217. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/expressions.ws +0 -0
  218. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/fetch.json +0 -0
  219. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/fetch.ws +0 -0
  220. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/find_edge_from_4_poses.json +0 -0
  221. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/find_edge_from_4_poses.ws +0 -0
  222. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/frame.json +0 -0
  223. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/frame.ws +0 -0
  224. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/frame2.json +0 -0
  225. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/frame2.ws +0 -0
  226. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/frame3.cell.json +0 -0
  227. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/frame3.json +0 -0
  228. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/frame3.ws +0 -0
  229. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/function.json +0 -0
  230. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/function.ws +0 -0
  231. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/functional_pose.json +0 -0
  232. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/functional_pose.ws +0 -0
  233. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/get_pose.json +0 -0
  234. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/get_pose.ws +0 -0
  235. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/ifelse.json +0 -0
  236. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/ifelse.ws +0 -0
  237. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/interpolation.json +0 -0
  238. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/interpolation.ws +0 -0
  239. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/interrupt.json +0 -0
  240. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/interrupt.ws +0 -0
  241. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/io.json +0 -0
  242. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/io.ws +0 -0
  243. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/loops.json +0 -0
  244. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/loops.ws +0 -0
  245. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/move.json +0 -0
  246. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/move.ws +0 -0
  247. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/move_via_expression.json +0 -0
  248. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/move_via_expression.ws +0 -0
  249. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/move_with_velocity.json +0 -0
  250. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/move_with_velocity.ws +0 -0
  251. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/multiple_robots.cell.json +0 -0
  252. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/multiple_robots.json +0 -0
  253. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/multiple_robots.ws +0 -0
  254. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/multiple_robots2.cell.json +0 -0
  255. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/multiple_robots2.json +0 -0
  256. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/multiple_robots2.ws +0 -0
  257. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/multiple_robots3.cell.json +0 -0
  258. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/multiple_robots3.json +0 -0
  259. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/multiple_robots3.ws +0 -0
  260. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/not.json +0 -0
  261. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/not.ws +0 -0
  262. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/operator_precedence.json +0 -0
  263. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/operator_precedence.ws +0 -0
  264. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/pose.json +0 -0
  265. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/pose.ws +0 -0
  266. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/poses2.json +0 -0
  267. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/poses2.ws +0 -0
  268. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/print.json +0 -0
  269. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/print.ws +0 -0
  270. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/record.json +0 -0
  271. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/record.ws +0 -0
  272. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/scope.json +0 -0
  273. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/scope.ws +0 -0
  274. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/spline.json +0 -0
  275. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/spline.ws +0 -0
  276. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/switch.json +0 -0
  277. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/switch.ws +0 -0
  278. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/tcps.cell.json +0 -0
  279. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/tcps.json +0 -0
  280. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/tcps.ws +0 -0
  281. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/tower_of_hanoi.cell.json +0 -0
  282. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/tower_of_hanoi.json +0 -0
  283. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/tower_of_hanoi.ws +0 -0
  284. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/try.json +0 -0
  285. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/try.ws +0 -0
  286. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/vision_move.json +0 -0
  287. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/vision_move.ws +0 -0
  288. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wait.config +0 -0
  289. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wait.json +0 -0
  290. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wait.ws +0 -0
  291. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wandelchat2.json +0 -0
  292. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wandelchat2.ws +0 -0
  293. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wandelchat3.json +0 -0
  294. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wandelchat3.ws +0 -0
  295. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/whitespaces.json +0 -0
  296. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/whitespaces.ws +0 -0
  297. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wp393.json +0 -0
  298. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wp393.ws +0 -0
  299. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wp469.json +0 -0
  300. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples/wp469.ws +0 -0
  301. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/examples.py +0 -0
  302. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/exception.py +0 -0
  303. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/ffi.py +0 -0
  304. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/ffi_loader.py +0 -0
  305. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/frames.py +0 -0
  306. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/WandelscriptLexerBase.py +0 -0
  307. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/__init__.py +0 -0
  308. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptLexer.g4 +0 -0
  309. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptLexer.interp +0 -0
  310. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptLexer.py +0 -0
  311. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptLexer.tokens +0 -0
  312. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptParser.g4 +0 -0
  313. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptParser.interp +0 -0
  314. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptParser.py +0 -0
  315. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptParser.tokens +0 -0
  316. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptParserListener.py +0 -0
  317. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/grammar/wandelscriptParserVisitor.py +0 -0
  318. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/metamodel.py +0 -0
  319. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/migration.py +0 -0
  320. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/models.py +0 -0
  321. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/motions.py +0 -0
  322. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/operators.py +0 -0
  323. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/runner.py +0 -0
  324. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/runtime.py +0 -0
  325. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/scripts/generate_parser.sh +0 -0
  326. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/__init__.py +0 -0
  327. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_builtins.py +0 -0
  328. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_examples.py +0 -0
  329. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_executor.py +0 -0
  330. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_ffi.py +0 -0
  331. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_migration.py +0 -0
  332. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_motion.py +0 -0
  333. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_move.py +0 -0
  334. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_multirobot.py +0 -0
  335. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_parser.py +0 -0
  336. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_programs.py +0 -0
  337. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_run_twice.py +0 -0
  338. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_runner.py +0 -0
  339. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_runtime.py +0 -0
  340. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_simulation.py +0 -0
  341. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_stepwise.py +0 -0
  342. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_store.py +0 -0
  343. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_two_step_execution.py +0 -0
  344. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/tests/test_types.py +0 -0
  345. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/utils/__init__.py +0 -0
  346. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/utils/pose.py +0 -0
  347. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/utils/runtime.py +0 -0
  348. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/utils/serializer.py +0 -0
  349. {wandelbots_nova-2.6.2 → wandelbots_nova-2.7.0}/wandelscript/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wandelbots-nova
3
- Version: 2.6.2
3
+ Version: 2.7.0
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>
@@ -13,6 +13,9 @@ from nova.actions.motions import (
13
13
  linear,
14
14
  ptp,
15
15
  )
16
+ from nova.actions.trajectory_builder import TrajectoryBuilder
17
+
18
+ TrajectoryMacher = TrajectoryBuilder
16
19
 
17
20
  __all__ = [
18
21
  "Action",
@@ -30,4 +33,6 @@ __all__ = [
30
33
  "wait",
31
34
  "MovementController",
32
35
  "MovementControllerContext",
36
+ "TrajectoryBuilder",
37
+ "TrajectoryMacher",
33
38
  ]
@@ -8,7 +8,7 @@ from nova import api
8
8
  from nova.actions.io import WriteAction
9
9
  from nova.actions.mock import WaitAction
10
10
  from nova.actions.motions import CollisionFreeMotion, Motion
11
- from nova.types import MovementControllerFunction, Pose
11
+ from nova.types import MotionSettings, MovementControllerFunction, Pose
12
12
 
13
13
 
14
14
  class ActionLocation(pydantic.BaseModel):
@@ -135,15 +135,10 @@ class CombinedActions(pydantic.BaseModel):
135
135
  motion_commands = []
136
136
  for motion in self.motions:
137
137
  path = api.models.MotionCommandPath.from_dict(motion.to_api_model().model_dump())
138
- blending = (
139
- motion.settings.as_blending_setting()
140
- if motion.settings.has_blending_settings()
141
- else None
142
- )
138
+ settings = motion.settings or MotionSettings()
139
+ blending = settings.as_blending_setting() if settings.has_blending_settings() else None
143
140
  limits_override = (
144
- motion.settings.as_limits_settings()
145
- if motion.settings.has_limits_override()
146
- else None
141
+ settings.as_limits_settings() if settings.has_limits_override() else None
147
142
  )
148
143
  motion_commands.append(
149
144
  api.models.MotionCommand(
@@ -19,7 +19,7 @@ class CollisionFreeMotion(Action):
19
19
 
20
20
  type: Literal["collision_free_ptp"] = "collision_free_ptp"
21
21
  target: Pose | tuple[float, ...]
22
- settings: MotionSettings = MotionSettings()
22
+ settings: MotionSettings | None = None
23
23
  collision_scene: wb.models.CollisionScene | None = None
24
24
 
25
25
  def to_api_model(self) -> api.models.PlanCollisionFreePTPRequestTarget:
@@ -33,7 +33,7 @@ class CollisionFreeMotion(Action):
33
33
 
34
34
  def collision_free(
35
35
  target: Pose | tuple[float, ...],
36
- settings: MotionSettings = MotionSettings(),
36
+ settings: MotionSettings | None = None,
37
37
  collision_scene: wb.models.CollisionScene | None = None,
38
38
  ) -> CollisionFreeMotion:
39
39
  return CollisionFreeMotion(target=target, settings=settings, collision_scene=collision_scene)
@@ -50,7 +50,7 @@ class Motion(Action, ABC):
50
50
 
51
51
  type: Literal["linear", "cartesian_ptp", "circular", "joint_ptp", "spline"]
52
52
  target: Pose | tuple[float, ...]
53
- settings: MotionSettings = MotionSettings()
53
+ settings: MotionSettings | None = None
54
54
  collision_scene: wb.models.CollisionScene | None = None
55
55
 
56
56
  @property
@@ -88,7 +88,7 @@ class Linear(Motion):
88
88
 
89
89
  def linear(
90
90
  target: PoseOrVectorTuple,
91
- settings: MotionSettings = MotionSettings(),
91
+ settings: MotionSettings | None = None,
92
92
  collision_scene: wb.models.CollisionScene | None = None,
93
93
  ) -> Linear:
94
94
  """Convenience function to create a linear motion
@@ -146,7 +146,7 @@ class CartesianPTP(Motion):
146
146
 
147
147
  def cartesian_ptp(
148
148
  target: PoseOrVectorTuple,
149
- settings: MotionSettings = MotionSettings(),
149
+ settings: MotionSettings | None = None,
150
150
  collision_scene: wb.models.CollisionScene | None = None,
151
151
  ) -> CartesianPTP:
152
152
  """Convenience function to create a point-to-point motion
@@ -208,7 +208,7 @@ class Circular(Motion):
208
208
  def circular(
209
209
  target: PoseOrVectorTuple,
210
210
  intermediate: PoseOrVectorTuple,
211
- settings: MotionSettings = MotionSettings(),
211
+ settings: MotionSettings | None = None,
212
212
  collision_scene: wb.models.CollisionScene | None = None,
213
213
  ) -> Circular:
214
214
  """Convenience function to create a circular motion
@@ -272,7 +272,7 @@ class JointPTP(Motion):
272
272
 
273
273
  def joint_ptp(
274
274
  target: tuple[float, ...],
275
- settings: MotionSettings = MotionSettings(),
275
+ settings: MotionSettings | None = None,
276
276
  collision_scene: wb.models.CollisionScene | None = None,
277
277
  ) -> JointPTP:
278
278
  """Convenience function to create a joint PTP motion
@@ -315,7 +315,7 @@ class Spline(Motion):
315
315
 
316
316
  def spline(
317
317
  target: PoseOrVectorTuple,
318
- settings: MotionSettings = MotionSettings(),
318
+ settings: MotionSettings | None = None,
319
319
  path_parameter: float = 1,
320
320
  time=None,
321
321
  collision_scene: wb.models.CollisionScene | None = None,
@@ -0,0 +1,67 @@
1
+ from contextlib import contextmanager
2
+ from typing import Optional, Sequence
3
+
4
+ from nova.actions import Action
5
+ from nova.actions.motions import Motion
6
+ from nova.types import MotionSettings
7
+
8
+
9
+ class TrajectoryBuilder:
10
+ def __init__(self, settings: Optional[MotionSettings] = None):
11
+ """A builder for trajectories.
12
+
13
+ Args:
14
+ settings (Optional[MotionSettings], optional): The global settings to use for the trajectory. Defaults to None.
15
+ """
16
+ self._actions: list[Action] = []
17
+ self._settings_stack: list[MotionSettings] = [] if settings is None else [settings]
18
+
19
+ def __enter__(self):
20
+ return self
21
+
22
+ def __exit__(self, exc_type, exc_val, exc_tb):
23
+ pass
24
+
25
+ @property
26
+ def actions(self) -> list[Action]:
27
+ """The built actions in the trajectory."""
28
+ return self._actions
29
+
30
+ def _current_settings(self) -> MotionSettings:
31
+ """The current settings to use for the trajectory."""
32
+ return self._settings_stack[-1]
33
+
34
+ def move(self, motion: Motion):
35
+ """Add a motion to the trajectory."""
36
+ motion.settings = motion.settings or self._current_settings()
37
+ self._actions.append(motion)
38
+
39
+ def trigger(self, action: Action):
40
+ """Add a action to the trajectory."""
41
+ self._actions.append(action)
42
+
43
+ def sequence(self, actions: Sequence[Action]):
44
+ """Add a sequence of actions to the trajectory."""
45
+ for action in actions:
46
+ if isinstance(action, Motion):
47
+ self.move(action)
48
+ else:
49
+ self.trigger(action)
50
+
51
+ @contextmanager
52
+ def set(self, settings: MotionSettings):
53
+ """Set the settings for the trajectory context."""
54
+ self._settings_stack.append(settings)
55
+ try:
56
+ yield self
57
+ finally:
58
+ self._settings_stack.pop()
59
+
60
+ def __iter__(self):
61
+ return iter(self._actions)
62
+
63
+ def __len__(self):
64
+ return len(self._actions)
65
+
66
+ def __getitem__(self, idx):
67
+ return self._actions[idx]
@@ -133,9 +133,16 @@ class Program(BaseModel, Generic[Parameters, Return]):
133
133
  async with Nova() as nova:
134
134
  cell = nova.cell()
135
135
  for controller_id in controller_ids:
136
- await cell.delete_robot_controller(controller_id)
137
- self._log("info", f"Cleaned up controller with ID '{controller_id}'")
136
+ try:
137
+ await cell.delete_robot_controller(controller_id)
138
+ self._log("info", f"Cleaned up controller with ID '{controller_id}'")
139
+ except Exception as e:
140
+ # WORKAROUND: {"code":9, "message":"Failed to 'Connect to Host' due the
141
+ # following reason:\nConnection refused (2)!\nexception::CommunicationException: Configured robot connection is not reachable.", "details":[]}
142
+ # Log and suppress errors for individual controller cleanup
143
+ self._log("error", f"Error cleaning up controller '{controller_id}': {e}")
138
144
  except Exception as e:
145
+ # Log and suppress errors for the overall cleanup process
139
146
  self._log("error", f"Error during controller cleanup: {e}")
140
147
 
141
148
  @property
@@ -3,7 +3,6 @@ from typing import AsyncIterator, Optional
3
3
 
4
4
  from decouple import config
5
5
  from fastapi import APIRouter, FastAPI
6
- from nats.js.api import KeyValueConfig
7
6
 
8
7
  from nova.cell.robot_cell import RobotCell
9
8
  from nova.core.logging import logger
@@ -13,10 +12,13 @@ from nova.program.store import ProgramStore
13
12
  from novax.program_manager import ProgramDetails, ProgramManager, ProgramSource
14
13
 
15
14
  # Read BASE_PATH environment variable and extract app name
16
- BASE_PATH = config("BASE_PATH", default="/default/novax")
17
- APP_NAME = BASE_PATH.split("/")[-1] if "/" in BASE_PATH else "novax"
18
- logger.info(f"Extracted app name '{APP_NAME}' from BASE_PATH '{BASE_PATH}'")
15
+ _BASE_PATH = config("BASE_PATH", default="/default/novax")
16
+ _APP_NAME = _BASE_PATH.split("/")[-1] if "/" in _BASE_PATH else "novax"
17
+ logger.info(f"Extracted app name '{_APP_NAME}' from BASE_PATH '{_BASE_PATH}'")
19
18
 
19
+ # Create nats programs bucket name
20
+ _CELL_NAME = config("CELL_NAME", default="")
21
+ _NATS_PROGRAM_BUCKET = f"nova.{_CELL_NAME}:programs"
20
22
  _NATS_CLIENT_CONFIG = {"connect_timeout": 2.0, "allow_reconnect": True, "max_reconnect_attempts": 2}
21
23
 
22
24
 
@@ -94,7 +96,7 @@ class Novax:
94
96
  program=program_details.program,
95
97
  name=program_details.name,
96
98
  description=program_details.description,
97
- app=APP_NAME,
99
+ app=_APP_NAME,
98
100
  preconditions=preconditions_dict,
99
101
  )
100
102
 
@@ -102,18 +104,12 @@ class Novax:
102
104
  except Exception as e:
103
105
  logger.error(f"Failed to convert program {program_id} to store format: {e}")
104
106
 
105
- # TODO: remove the nats_key_value config once discovery service is merged
106
- # even at the NATS permission level, an app NATS client should not be able to create this bucket, this is a system bucket managed by the discovery service
107
- # novax app should only be able to read/write to this bucket in their namespace
108
-
109
107
  async with ProgramStore(
110
- nats_bucket_name="programs",
111
- nats_kv_config=KeyValueConfig(bucket="programs"),
112
- nats_client_config=_NATS_CLIENT_CONFIG,
108
+ nats_bucket_name=_NATS_PROGRAM_BUCKET, nats_client_config=_NATS_CLIENT_CONFIG
113
109
  ) as program_store:
114
110
  for program_id, store_program in store_programs.items():
115
111
  try:
116
- await program_store.put(f"{APP_NAME}:{program_id}", store_program)
112
+ await program_store.put(f"{_APP_NAME}:{program_id}", store_program)
117
113
  logger.debug(f"Program {program_id} synced to store")
118
114
  except Exception as e:
119
115
  logger.error(f"Failed to sync program {program_id} to store: {e}")
@@ -137,11 +133,11 @@ class Novax:
137
133
  program_count = len(program_ids)
138
134
 
139
135
  async with ProgramStore(
140
- nats_bucket_name="programs", nats_client_config=_NATS_CLIENT_CONFIG
136
+ nats_bucket_name=_NATS_PROGRAM_BUCKET, nats_client_config=_NATS_CLIENT_CONFIG
141
137
  ) as program_store:
142
138
  for program_id in program_ids:
143
139
  try:
144
- await program_store.delete(f"{APP_NAME}:{program_id}")
140
+ await program_store.delete(f"{_APP_NAME}:{program_id}")
145
141
  logger.debug(f"Program {program_id} removed from store")
146
142
  except Exception as e:
147
143
  logger.error(f"Failed to remove program {program_id} from store: {e}")
@@ -202,8 +198,12 @@ class Novax:
202
198
  # Replace the dependency function on the FastAPI app
203
199
  app.dependency_overrides[get_program_manager] = get_program_manager_override
204
200
 
205
- # Attach lifespan to the router
206
- programs_router.lifespan_context = self.program_store_lifespan
201
+ if not _CELL_NAME:
202
+ logger.error(
203
+ "Novax: CELL_NAME environment variable is not set, your programs will not be registered"
204
+ )
205
+ else:
206
+ programs_router.lifespan_context = self.program_store_lifespan
207
207
 
208
208
  # Include the programs router
209
209
  app.include_router(programs_router)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "wandelbots-nova"
3
- version = "2.6.2"
3
+ version = "2.7.0"
4
4
  description = "Official Python SDK for the Wandelbots Nova"
5
5
  authors = [
6
6
  { name = "Wandelbots GmbH" },
File without changes