wandelbots-nova 2.3.0__tar.gz → 2.4.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 (346) hide show
  1. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/PKG-INFO +1 -1
  2. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/program/function.py +12 -4
  3. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/program/runner.py +6 -7
  4. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/types/motion_settings.py +1 -0
  5. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/novax/novax.py +0 -6
  6. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/novax/program_manager.py +8 -6
  7. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/pyproject.toml +1 -1
  8. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/tests/novax/api/test_programs.py +12 -10
  9. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/tests/novax/serve.py +7 -2
  10. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/tests/novax/test_program_sources.py +1 -1
  11. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/cli.py +1 -1
  12. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/.gitignore +0 -0
  13. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/LICENSE +0 -0
  14. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/README.md +0 -0
  15. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/__init__.py +0 -0
  16. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/actions/__init__.py +0 -0
  17. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/actions/base.py +0 -0
  18. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/actions/container.py +0 -0
  19. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/actions/io.py +0 -0
  20. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/actions/mock.py +0 -0
  21. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/actions/motions.py +0 -0
  22. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/api.py +0 -0
  23. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/auth/__init__.py +0 -0
  24. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/auth/auth_config.py +0 -0
  25. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/auth/authorization.py +0 -0
  26. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/cell/__init__.py +0 -0
  27. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/cell/cell.py +0 -0
  28. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/cell/controllers.py +0 -0
  29. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/cell/robot_cell.py +0 -0
  30. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/__init__.py +0 -0
  31. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/controller.py +0 -0
  32. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/env_handler.py +0 -0
  33. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/exceptions.py +0 -0
  34. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/gateway.py +0 -0
  35. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/io.py +0 -0
  36. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/logging.py +0 -0
  37. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/motion_group.py +0 -0
  38. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/movement_controller.py +0 -0
  39. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/core/nova.py +0 -0
  40. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/events/__init__.py +0 -0
  41. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/events/nats.py +0 -0
  42. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/extentions/__init__.py +0 -0
  43. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/extentions/opcua/__init__.py +0 -0
  44. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/extentions/opcua/client.py +0 -0
  45. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/extentions/opcua/functions.py +0 -0
  46. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/program/__init__.py +0 -0
  47. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/program/exceptions.py +0 -0
  48. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/program/utils.py +0 -0
  49. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/types/__init__.py +0 -0
  50. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/types/collision_scene.py +0 -0
  51. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/types/pose.py +0 -0
  52. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/types/state.py +0 -0
  53. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/types/vector3d.py +0 -0
  54. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/utils.py +0 -0
  55. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/version.py +0 -0
  56. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/viewers/__init__.py +0 -0
  57. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/viewers/base.py +0 -0
  58. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/viewers/manager.py +0 -0
  59. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/viewers/protocol.py +0 -0
  60. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/viewers/rerun.py +0 -0
  61. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova/viewers/utils.py +0 -0
  62. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/LICENSE +0 -0
  63. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/README.md +0 -0
  64. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/__init__.py +0 -0
  65. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/README.md +0 -0
  66. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/benchmark_base.py +0 -0
  67. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/dataset/README.md +0 -0
  68. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/dataset/demo_set.yaml +0 -0
  69. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/dataset/mb_set.yaml +0 -0
  70. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/dataset/mpinets_set.yaml +0 -0
  71. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/datasets.py +0 -0
  72. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/log_successful_planning.py +0 -0
  73. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/robometrics_helper.py +0 -0
  74. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/run_collision_free_benchmark.py +0 -0
  75. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/run_collision_free_magma.py +0 -0
  76. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/benchmark/run_ptp_benchmark.py +0 -0
  77. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/blueprint.py +0 -0
  78. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/collision_scene.py +0 -0
  79. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/colors.py +0 -0
  80. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/consts.py +0 -0
  81. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/conversion_helpers.py +0 -0
  82. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/dh_robot.py +0 -0
  83. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/example_data/Welding_Benchmark_USA_01.stl +0 -0
  84. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/example_data/bin_everything_05.ply +0 -0
  85. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/example_data/colliders.json +0 -0
  86. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/example_data/source.md +0 -0
  87. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/example_data/tool.stl +0 -0
  88. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/example_data/yaskawa_ar1440_rif_with_safety_zones.json +0 -0
  89. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/collison_world.py +0 -0
  90. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/import_ply.py +0 -0
  91. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/reachability_check.py +0 -0
  92. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/robocore.py +0 -0
  93. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/stream_robot.py +0 -0
  94. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/use_nova_rerun_bridge.py +0 -0
  95. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/visualize_tool.py +0 -0
  96. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/wait_action.py +0 -0
  97. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/welding_example.py +0 -0
  98. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/yaskawa-ar1440-16-mounting.json +0 -0
  99. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/examples/yaskawa-ar1440-with-external-axis.json +0 -0
  100. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/helper_scripts/README.md +0 -0
  101. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/helper_scripts/__init__.py +0 -0
  102. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/helper_scripts/code_server_helpers.py +0 -0
  103. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/helper_scripts/download_models.py +0 -0
  104. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/helper_scripts/plan_with_collisions.py +0 -0
  105. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/hull_visualizer.py +0 -0
  106. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/minimal_example/.gitignore +0 -0
  107. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/minimal_example/README.md +0 -0
  108. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/minimal_example/main.py +0 -0
  109. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/minimal_example/poetry.toml +0 -0
  110. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/minimal_example/pyproject.toml +0 -0
  111. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/minimal_example/ruff.toml +0 -0
  112. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/minimal_example/uv.lock +0 -0
  113. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/motion_recorder.py +0 -0
  114. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/motion_storage.py +0 -0
  115. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge.py +0 -0
  116. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/.dockerignore +0 -0
  117. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/.nova +0 -0
  118. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/Dockerfile +0 -0
  119. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/app.yaml +0 -0
  120. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/build.sh +0 -0
  121. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/data/README.md +0 -0
  122. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/deployment.yaml +0 -0
  123. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/ingress.yaml +0 -0
  124. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/kustomization.yaml +0 -0
  125. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/namespace.yaml +0 -0
  126. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.conf +0 -0
  127. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.http.conf.template +0 -0
  128. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/skaffold.yaml +0 -0
  129. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/start.sh +0 -0
  130. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/nova_rerun_bridge_app/static/app_icon.png +0 -0
  131. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/polling/populate.py +0 -0
  132. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/.dockerignore +0 -0
  133. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/.nova +0 -0
  134. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/Dockerfile +0 -0
  135. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/app.yaml +0 -0
  136. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/build.sh +0 -0
  137. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/k8s/deployment.yaml +0 -0
  138. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/k8s/ingress.yaml +0 -0
  139. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/k8s/kustomization.yaml +0 -0
  140. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/k8s/namespace.yaml +0 -0
  141. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/nginx.conf +0 -0
  142. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/nginx.http.conf.template +0 -0
  143. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/skaffold.yaml +0 -0
  144. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/start.sh +0 -0
  145. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/rerun_app/static/app_icon.png +0 -0
  146. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/robot_visualizer.py +0 -0
  147. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/safety_zones.py +0 -0
  148. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/stream_state.py +0 -0
  149. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/nova_rerun_bridge/trajectory.py +0 -0
  150. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/novax/__init__.py +0 -0
  151. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/novax/api/__init__.py +0 -0
  152. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/novax/api/dependencies.py +0 -0
  153. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/novax/api/programs.py +0 -0
  154. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/tests/nova_rerun_bridge/test_blueprint.py +0 -0
  155. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/tests/nova_rerun_bridge/test_log_motion.py +0 -0
  156. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/tests/nova_rerun_bridge/test_nova_rerun_bridge.py +0 -0
  157. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/tests/nova_rerun_bridge/test_trajectory.py +0 -0
  158. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/tests/novax/conftest.py +0 -0
  159. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/tests/novax/test_novax.py +0 -0
  160. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/CHANGELOG.md +0 -0
  161. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/README.md +0 -0
  162. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/__init__.py +0 -0
  163. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/__main__.py +0 -0
  164. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/antlrvisitor.py +0 -0
  165. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/__init__.py +0 -0
  166. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/array.py +0 -0
  167. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/assoc.py +0 -0
  168. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/controller.py +0 -0
  169. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/fetch.py +0 -0
  170. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/fs.py +0 -0
  171. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/math.py +0 -0
  172. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/pose.py +0 -0
  173. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/string.py +0 -0
  174. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins/wait.py +0 -0
  175. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/builtins.ws +0 -0
  176. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/datatypes.py +0 -0
  177. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/and_or.json +0 -0
  178. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/and_or.ws +0 -0
  179. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/array.config +0 -0
  180. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/array.json +0 -0
  181. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/array.ws +0 -0
  182. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/assignment.json +0 -0
  183. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/assignment.ws +0 -0
  184. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/async_write.json +0 -0
  185. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/async_write.ws +0 -0
  186. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/blending.json +0 -0
  187. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/blending.ws +0 -0
  188. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/bool_negation.json +0 -0
  189. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/bool_negation.ws +0 -0
  190. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/builtins.json +0 -0
  191. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/builtins.ws +0 -0
  192. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/comments.json +0 -0
  193. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/comments.ws +0 -0
  194. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/context.json +0 -0
  195. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/context.ws +0 -0
  196. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/controller.cell.json +0 -0
  197. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/controller.json +0 -0
  198. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/controller.ws +0 -0
  199. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/coordinate_systems.json +0 -0
  200. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/coordinate_systems.ws +0 -0
  201. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/default.cell.json +0 -0
  202. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/default.json +0 -0
  203. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/default.ws +0 -0
  204. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/edge_pattern.json +0 -0
  205. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/edge_pattern.ws +0 -0
  206. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/edge_pattern_line.json +0 -0
  207. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/edge_pattern_line.ws +0 -0
  208. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/edge_pattern_manhattan.json +0 -0
  209. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/edge_pattern_manhattan.ws +0 -0
  210. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/empty.json +0 -0
  211. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/empty.ws +0 -0
  212. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/expressions.json +0 -0
  213. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/expressions.ws +0 -0
  214. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/fetch.json +0 -0
  215. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/fetch.ws +0 -0
  216. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/find_edge_from_4_poses.json +0 -0
  217. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/find_edge_from_4_poses.ws +0 -0
  218. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/frame.json +0 -0
  219. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/frame.ws +0 -0
  220. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/frame2.json +0 -0
  221. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/frame2.ws +0 -0
  222. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/frame3.cell.json +0 -0
  223. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/frame3.json +0 -0
  224. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/frame3.ws +0 -0
  225. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/function.json +0 -0
  226. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/function.ws +0 -0
  227. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/functional_pose.json +0 -0
  228. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/functional_pose.ws +0 -0
  229. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/get_pose.json +0 -0
  230. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/get_pose.ws +0 -0
  231. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/ifelse.json +0 -0
  232. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/ifelse.ws +0 -0
  233. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/interpolation.json +0 -0
  234. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/interpolation.ws +0 -0
  235. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/interrupt.json +0 -0
  236. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/interrupt.ws +0 -0
  237. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/io.json +0 -0
  238. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/io.ws +0 -0
  239. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/loops.json +0 -0
  240. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/loops.ws +0 -0
  241. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/move.json +0 -0
  242. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/move.ws +0 -0
  243. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/move_via_expression.json +0 -0
  244. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/move_via_expression.ws +0 -0
  245. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/move_with_velocity.json +0 -0
  246. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/move_with_velocity.ws +0 -0
  247. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/multiple_robots.cell.json +0 -0
  248. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/multiple_robots.json +0 -0
  249. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/multiple_robots.ws +0 -0
  250. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/multiple_robots2.cell.json +0 -0
  251. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/multiple_robots2.json +0 -0
  252. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/multiple_robots2.ws +0 -0
  253. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/multiple_robots3.cell.json +0 -0
  254. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/multiple_robots3.json +0 -0
  255. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/multiple_robots3.ws +0 -0
  256. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/not.json +0 -0
  257. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/not.ws +0 -0
  258. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/operator_precedence.json +0 -0
  259. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/operator_precedence.ws +0 -0
  260. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/pose.json +0 -0
  261. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/pose.ws +0 -0
  262. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/poses2.json +0 -0
  263. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/poses2.ws +0 -0
  264. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/print.json +0 -0
  265. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/print.ws +0 -0
  266. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/record.json +0 -0
  267. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/record.ws +0 -0
  268. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/scope.json +0 -0
  269. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/scope.ws +0 -0
  270. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/spline.json +0 -0
  271. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/spline.ws +0 -0
  272. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/switch.json +0 -0
  273. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/switch.ws +0 -0
  274. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/tcps.cell.json +0 -0
  275. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/tcps.json +0 -0
  276. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/tcps.ws +0 -0
  277. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/tower_of_hanoi.cell.json +0 -0
  278. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/tower_of_hanoi.json +0 -0
  279. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/tower_of_hanoi.ws +0 -0
  280. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/try.json +0 -0
  281. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/try.ws +0 -0
  282. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/vision_move.json +0 -0
  283. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/vision_move.ws +0 -0
  284. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wait.config +0 -0
  285. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wait.json +0 -0
  286. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wait.ws +0 -0
  287. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wandelchat2.json +0 -0
  288. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wandelchat2.ws +0 -0
  289. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wandelchat3.json +0 -0
  290. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wandelchat3.ws +0 -0
  291. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/whitespaces.json +0 -0
  292. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/whitespaces.ws +0 -0
  293. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wp393.json +0 -0
  294. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wp393.ws +0 -0
  295. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wp469.json +0 -0
  296. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples/wp469.ws +0 -0
  297. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/examples.py +0 -0
  298. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/exception.py +0 -0
  299. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/ffi.py +0 -0
  300. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/ffi_loader.py +0 -0
  301. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/frames.py +0 -0
  302. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/WandelscriptLexerBase.py +0 -0
  303. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/__init__.py +0 -0
  304. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptLexer.g4 +0 -0
  305. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptLexer.interp +0 -0
  306. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptLexer.py +0 -0
  307. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptLexer.tokens +0 -0
  308. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptParser.g4 +0 -0
  309. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptParser.interp +0 -0
  310. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptParser.py +0 -0
  311. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptParser.tokens +0 -0
  312. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptParserListener.py +0 -0
  313. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/grammar/wandelscriptParserVisitor.py +0 -0
  314. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/metamodel.py +0 -0
  315. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/migration.py +0 -0
  316. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/models.py +0 -0
  317. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/motions.py +0 -0
  318. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/operators.py +0 -0
  319. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/runner.py +0 -0
  320. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/runtime.py +0 -0
  321. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/scripts/generate_parser.sh +0 -0
  322. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/simulation.py +0 -0
  323. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/__init__.py +0 -0
  324. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_builtins.py +0 -0
  325. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_examples.py +0 -0
  326. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_executor.py +0 -0
  327. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_ffi.py +0 -0
  328. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_migration.py +0 -0
  329. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_motion.py +0 -0
  330. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_move.py +0 -0
  331. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_multirobot.py +0 -0
  332. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_parser.py +0 -0
  333. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_programs.py +0 -0
  334. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_run_twice.py +0 -0
  335. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_runner.py +0 -0
  336. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_runtime.py +0 -0
  337. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_simulation.py +0 -0
  338. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_stepwise.py +0 -0
  339. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_store.py +0 -0
  340. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_two_step_execution.py +0 -0
  341. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/tests/test_types.py +0 -0
  342. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/utils/__init__.py +0 -0
  343. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/utils/pose.py +0 -0
  344. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/utils/runtime.py +0 -0
  345. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/utils/serializer.py +0 -0
  346. {wandelbots_nova-2.3.0 → wandelbots_nova-2.4.0}/wandelscript/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wandelbots-nova
3
- Version: 2.3.0
3
+ Version: 2.4.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>
@@ -39,7 +39,8 @@ class Program(BaseModel, Generic[Parameters, Return]):
39
39
  _wrapped: Callable[Parameters, Any] = PrivateAttr(
40
40
  default_factory=lambda: lambda *args, **kwargs: None
41
41
  )
42
- name: str
42
+ program_id: str
43
+ name: str | None
43
44
  description: str | None
44
45
  input: type[BaseModel]
45
46
  output: type[BaseModel]
@@ -52,14 +53,15 @@ class Program(BaseModel, Generic[Parameters, Return]):
52
53
  if not callable(value):
53
54
  raise TypeError("value must be callable")
54
55
 
55
- name = value.__name__
56
-
56
+ program_id = value.__name__
57
57
  docstring = parse_docstring(value.__doc__ or "")
58
58
  description = docstring.description
59
59
 
60
60
  input, output = input_and_output_types(value, docstring)
61
61
 
62
- function = cls(name=name, description=description, input=input, output=output)
62
+ function = cls(
63
+ program_id=program_id, name=None, description=description, input=input, output=output
64
+ )
63
65
  function._wrapped = validate_call(validate_return=True)(value)
64
66
  return function
65
67
 
@@ -282,7 +284,9 @@ def input_and_output_types(
282
284
 
283
285
 
284
286
  def program(
287
+ id: str | None = None,
285
288
  name: str | None = None,
289
+ description: str | None = None,
286
290
  preconditions: ProgramPreconditions | None = None,
287
291
  viewer: Any | None = None,
288
292
  ):
@@ -303,8 +307,12 @@ def program(
303
307
  raise TypeError(f"Program function '{function.__name__}' must be async")
304
308
 
305
309
  func_obj = Program.validate(function)
310
+ if id:
311
+ func_obj.program_id = id
306
312
  if name:
307
313
  func_obj.name = name
314
+ if description:
315
+ func_obj.description = description
308
316
  func_obj.preconditions = preconditions
309
317
 
310
318
  # Create a wrapper that handles controller lifecycle
@@ -75,8 +75,8 @@ class ProgramRunState(Enum):
75
75
 
76
76
  # TODO: import from api.v2.models.ProgramRun
77
77
  class ProgramRun(BaseModel):
78
- run_id: str = Field(..., description="Id of the program run")
79
- program_id: str = Field(..., description="Id of the program")
78
+ run: str = Field(..., description="Id of the program run")
79
+ program: str = Field(..., description="Id of the program")
80
80
  state: ProgramRunState = Field(..., description="State of the program run")
81
81
  logs: str | None = Field(None, description="Logs of the program run")
82
82
  stdout: str | None = Field(None, description="Stdout of the program run")
@@ -85,7 +85,6 @@ class ProgramRun(BaseModel):
85
85
  start_time: dt.datetime | None = Field(None, description="Start time of the program run")
86
86
  end_time: dt.datetime | None = Field(None, description="End time of the program run")
87
87
  input_data: dict[str, Any] | None = Field(None, description="Input of the program run")
88
- output_data: dict[str, Any] | None = Field(None, description="Output of the program run")
89
88
 
90
89
 
91
90
  class ProgramRunner(ABC):
@@ -98,6 +97,7 @@ class ProgramRunner(ABC):
98
97
  def __init__(
99
98
  self,
100
99
  program_id: str,
100
+ # TODO: this can be removed soonish
101
101
  program: Program,
102
102
  args: dict[str, Any],
103
103
  robot_cell_override: RobotCell | None = None,
@@ -108,8 +108,8 @@ class ProgramRunner(ABC):
108
108
  self._args = args
109
109
  self._robot_cell_override = robot_cell_override
110
110
  self._program_run: ProgramRun = ProgramRun(
111
- run_id=self._run_id,
112
- program_id=program_id,
111
+ run=self._run_id,
112
+ program=program_id,
113
113
  state=ProgramRunState.NOT_STARTED,
114
114
  logs=None,
115
115
  stdout=None,
@@ -118,7 +118,6 @@ class ProgramRunner(ABC):
118
118
  start_time=None,
119
119
  end_time=None,
120
120
  input_data=args,
121
- output_data=None,
122
121
  )
123
122
  self._thread: threading.Thread | None = None
124
123
  self._stop_event: threading.Event | None = None
@@ -382,7 +381,7 @@ class ProgramRunner(ABC):
382
381
  finally:
383
382
  # write path to output
384
383
  # self._program_run.execution_results = execution_context.motion_group_recordings
385
- self._program_run.output_data = execution_context.output_data
384
+ # self._program_run.output_data = execution_context.output_data
386
385
 
387
386
  logger.info(
388
387
  f"Program {self.program_id} run {self.run_id} finished. Run teardown routine..."
@@ -36,6 +36,7 @@ class MotionSettings(pydantic.BaseModel):
36
36
  """
37
37
 
38
38
  min_blending_velocity: int | None = pydantic.Field(default=None)
39
+ # TODO: rename to blending_radius?
39
40
  position_zone_radius: float | None = pydantic.Field(default=None)
40
41
  joint_velocity_limits: tuple[float, ...] | None = pydantic.Field(default=None)
41
42
  joint_acceleration_limits: tuple[float, ...] | None = pydantic.Field(default=None)
@@ -1,16 +1,10 @@
1
1
  from typing import Any, Optional
2
2
 
3
- from decouple import config
4
3
  from fastapi import FastAPI
5
4
 
6
5
  from nova.program.function import Program
7
6
  from novax.program_manager import ProgramDetails, ProgramManager, ProgramSource
8
7
 
9
- # TODO: why are these needed? check with Christoph
10
- CELL_ID = config("CELL_ID", default="cell", cast=str)
11
- BASE_PATH = config("BASE_PATH", default="", cast=str)
12
- app = FastAPI(title="schaeffler", root_path=BASE_PATH)
13
-
14
8
 
15
9
  class Novax:
16
10
  def __init__(self):
@@ -69,9 +69,10 @@ class NovaxProgramRunner(ProgramRunner):
69
69
 
70
70
 
71
71
  class ProgramDetails(BaseModel):
72
- program_id: str
72
+ program: str
73
+ name: str | None
74
+ description: str | None
73
75
  created_at: dt.datetime
74
- updated_at: dt.datetime
75
76
 
76
77
 
77
78
  class RunProgramRequest(BaseModel):
@@ -129,12 +130,13 @@ class ProgramManager:
129
130
  """
130
131
 
131
132
  func = program
132
- program_id = func.name
133
-
133
+ program_id = func.program_id
134
134
  now = dt.datetime.now(dt.timezone.utc)
135
135
 
136
136
  # Create ProgramDetails instance
137
- program_details = ProgramDetails(program_id=program_id, created_at=now, updated_at=now)
137
+ program_details = ProgramDetails(
138
+ program=program_id, name=program.name, description=program.description, created_at=now
139
+ )
138
140
 
139
141
  # Store program details and function separately
140
142
  self._programs[program_id] = program_details
@@ -224,7 +226,7 @@ class WandelscriptProgramSource:
224
226
  logger.info(f"Creating wandelscript program: {program_id}")
225
227
 
226
228
  # Create a wrapper function
227
- @nova.program(name=program_id)
229
+ @nova.program(id=program_id)
228
230
  async def wandelscript_wrapper():
229
231
  async with Nova() as nova:
230
232
  robot_cell = await nova.cell().get_robot_cell()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "wandelbots-nova"
3
- version = "2.3.0"
3
+ version = "2.4.0"
4
4
  description = "Official Python SDK for the Wandelbots Nova"
5
5
  authors = [
6
6
  { name = "Wandelbots GmbH" },
@@ -14,14 +14,15 @@ def test_get_programs(novax_app):
14
14
  assert len(programs) >= 1
15
15
 
16
16
  # Check that simple_program is in the list
17
- program_ids = [p["program_id"] for p in programs]
17
+ program_ids = [p["program"] for p in programs]
18
18
  assert "simple_program" in program_ids
19
19
 
20
20
  # Check program structure
21
- simple_program = next(p for p in programs if p["program_id"] == "simple_program")
22
- assert "program_id" in simple_program
21
+ simple_program = next(p for p in programs if p["program"] == "simple_program")
22
+ assert "program" in simple_program
23
+ assert "name" in simple_program
24
+ assert "description" in simple_program
23
25
  assert "created_at" in simple_program
24
- assert "updated_at" in simple_program
25
26
 
26
27
 
27
28
  def test_get_program_success(novax_app):
@@ -31,9 +32,10 @@ def test_get_program_success(novax_app):
31
32
  assert response.status_code == 200
32
33
  program = response.json()
33
34
 
34
- assert program["program_id"] == "simple_program"
35
+ assert program["program"] == "simple_program"
35
36
  assert "created_at" in program
36
- assert "updated_at" in program
37
+ assert "name" in program
38
+ assert "description" in program
37
39
  assert "input_schema" in program
38
40
 
39
41
 
@@ -54,8 +56,8 @@ def test_start_program_success(novax_app):
54
56
  assert response.status_code == 200
55
57
  run = response.json()
56
58
 
57
- assert "run_id" in run
58
- assert "program_id" in run
59
+ assert "run" in run
60
+ assert "program" in run
59
61
  assert "state" in run
60
62
 
61
63
 
@@ -66,8 +68,8 @@ def test_start_program_without_parameters(novax_app):
66
68
  assert response.status_code == 200
67
69
  run = response.json()
68
70
 
69
- assert "run_id" in run
70
- assert "program_id" in run
71
+ assert "run" in run
72
+ assert "program" in run
71
73
  assert "state" in run
72
74
 
73
75
 
@@ -7,13 +7,18 @@ import nova
7
7
  dotenv.load_dotenv()
8
8
 
9
9
 
10
- @nova.program(name="test")
10
+ @nova.program(id="test")
11
11
  async def test():
12
12
  print("Hello, world!")
13
13
 
14
14
 
15
- @nova.program(name="simple_program")
15
+ @nova.program(
16
+ id="simple_program",
17
+ name="Simple Program",
18
+ description="Simple program that prints 'Hello World!' and then sleeps a bit.",
19
+ )
16
20
  async def simple_program(number_of_steps: int = 30):
21
+ """Simple program that prints "Hello World!" and then sleeps a bit."""
17
22
  print("Hello World!")
18
23
 
19
24
  for i in range(number_of_steps):
@@ -9,7 +9,7 @@ from novax import Novax
9
9
  from novax.program_manager import ProgramManager, WandelscriptProgramSource
10
10
 
11
11
 
12
- @nova.program(name="simple_program")
12
+ @nova.program(id="simple_program")
13
13
  async def simple_program(number_of_steps: int = 30):
14
14
  print("Hello World!")
15
15
 
@@ -39,7 +39,7 @@ async def main(code: str, foreign_functions: dict[str, Any] | None = None):
39
39
  default_robot=None,
40
40
  foreign_functions=foreign_functions,
41
41
  )
42
- echo(f"Execution results:\n{runner.program_run.output_data}")
42
+ echo(f"Execution results:\n{runner.program_run.state}")
43
43
 
44
44
 
45
45
  @app.command()
File without changes