wandelbots-nova 3.4.0__tar.gz → 3.4.2__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 (361) hide show
  1. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/PKG-INFO +101 -74
  2. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/README.md +99 -72
  3. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/movement_controller.py +9 -9
  4. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/pyproject.toml +3 -3
  5. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/.gitignore +0 -0
  6. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/LICENSE +0 -0
  7. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/__init__.py +0 -0
  8. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/__init__.py +0 -0
  9. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/base.py +0 -0
  10. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/container.py +0 -0
  11. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/io.py +0 -0
  12. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/mock.py +0 -0
  13. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/motions.py +0 -0
  14. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/actions/trajectory_builder.py +0 -0
  15. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/api.py +0 -0
  16. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/api.pyi +0 -0
  17. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/auth/__init__.py +0 -0
  18. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/auth/auth_config.py +0 -0
  19. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/auth/authorization.py +0 -0
  20. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/__init__.py +0 -0
  21. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/cell.py +0 -0
  22. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/controllers.py +0 -0
  23. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/robot_cell.py +0 -0
  24. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/cell/simulation.py +0 -0
  25. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/config.py +0 -0
  26. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/__init__.py +0 -0
  27. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/controller.py +0 -0
  28. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/env_handler.py +0 -0
  29. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/exceptions.py +0 -0
  30. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/gateway.py +0 -0
  31. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/io.py +0 -0
  32. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/logging.py +0 -0
  33. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/motion_group.py +0 -0
  34. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/nova.py +0 -0
  35. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/core/tuner.py +0 -0
  36. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/events/__init__.py +0 -0
  37. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/extentions/__init__.py +0 -0
  38. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/extentions/opcua/__init__.py +0 -0
  39. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/extentions/opcua/client.py +0 -0
  40. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/extentions/opcua/functions.py +0 -0
  41. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/logging/__init__.py +0 -0
  42. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/nats/__init__.py +0 -0
  43. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/nats/client.py +0 -0
  44. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/nats/message.py +0 -0
  45. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/__init__.py +0 -0
  46. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/exceptions.py +0 -0
  47. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/function.py +0 -0
  48. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/runner.py +0 -0
  49. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/store.py +0 -0
  50. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/program/utils.py +0 -0
  51. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/__init__.py +0 -0
  52. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/collision_scene.py +0 -0
  53. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/motion_settings.py +0 -0
  54. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/pose.py +0 -0
  55. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/state.py +0 -0
  56. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/types/vector3d.py +0 -0
  57. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/utils/__init__.py +0 -0
  58. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/utils/timestamp.py +0 -0
  59. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/version.py +0 -0
  60. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/__init__.py +0 -0
  61. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/base.py +0 -0
  62. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/manager.py +0 -0
  63. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/protocol.py +0 -0
  64. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/rerun.py +0 -0
  65. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova/viewers/utils.py +0 -0
  66. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/LICENSE +0 -0
  67. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/README.md +0 -0
  68. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/__init__.py +0 -0
  69. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/README.md +0 -0
  70. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/benchmark_base.py +0 -0
  71. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/dataset/README.md +0 -0
  72. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/dataset/demo_set.yaml +0 -0
  73. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/dataset/mb_set.yaml +0 -0
  74. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/dataset/mpinets_set.yaml +0 -0
  75. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/datasets.py +0 -0
  76. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/log_successful_planning.py +0 -0
  77. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/robometrics_helper.py +0 -0
  78. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/run_collision_free_benchmark.py +0 -0
  79. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/run_collision_free_magma.py +0 -0
  80. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/benchmark/run_ptp_benchmark.py +0 -0
  81. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/blueprint.py +0 -0
  82. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/collision_scene.py +0 -0
  83. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/colors.py +0 -0
  84. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/consts.py +0 -0
  85. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/conversion_helpers.py +0 -0
  86. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/dh_robot.py +0 -0
  87. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/Welding_Benchmark_USA_01.stl +0 -0
  88. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/bin_everything_05.ply +0 -0
  89. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/colliders.json +0 -0
  90. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/source.md +0 -0
  91. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/tool.stl +0 -0
  92. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/example_data/yaskawa_ar1440_rif_with_safety_zones.json +0 -0
  93. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/collison_world.py +0 -0
  94. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/import_ply.py +0 -0
  95. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/reachability_check.py +0 -0
  96. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/robocore.py +0 -0
  97. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/stream_robot.py +0 -0
  98. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/use_nova_rerun_bridge.py +0 -0
  99. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/visualize_tool.py +0 -0
  100. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/wait_action.py +0 -0
  101. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/welding_example.py +0 -0
  102. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/yaskawa-ar1440-16-mounting.json +0 -0
  103. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/examples/yaskawa-ar1440-with-external-axis.json +0 -0
  104. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/README.md +0 -0
  105. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/__init__.py +0 -0
  106. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/code_server_helpers.py +0 -0
  107. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/download_models.py +0 -0
  108. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/helper_scripts/plan_with_collisions.py +0 -0
  109. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/hull_visualizer.py +0 -0
  110. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/.gitignore +0 -0
  111. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/README.md +0 -0
  112. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/main.py +0 -0
  113. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/poetry.toml +0 -0
  114. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/pyproject.toml +0 -0
  115. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/ruff.toml +0 -0
  116. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/minimal_example/uv.lock +0 -0
  117. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/motion_recorder.py +0 -0
  118. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/motion_storage.py +0 -0
  119. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge.py +0 -0
  120. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/.dockerignore +0 -0
  121. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/.nova +0 -0
  122. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/Dockerfile +0 -0
  123. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/app.yaml +0 -0
  124. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/build.sh +0 -0
  125. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/data/README.md +0 -0
  126. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/deployment.yaml +0 -0
  127. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/ingress.yaml +0 -0
  128. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/kustomization.yaml +0 -0
  129. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/k8s/namespace.yaml +0 -0
  130. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.conf +0 -0
  131. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/nginx.http.conf.template +0 -0
  132. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/skaffold.yaml +0 -0
  133. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/start.sh +0 -0
  134. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/nova_rerun_bridge_app/static/app_icon.png +0 -0
  135. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/polling/populate.py +0 -0
  136. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/.dockerignore +0 -0
  137. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/.nova +0 -0
  138. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/Dockerfile +0 -0
  139. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/app.yaml +0 -0
  140. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/build.sh +0 -0
  141. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/k8s/deployment.yaml +0 -0
  142. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/k8s/ingress.yaml +0 -0
  143. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/k8s/kustomization.yaml +0 -0
  144. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/k8s/namespace.yaml +0 -0
  145. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/nginx.conf +0 -0
  146. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/nginx.http.conf.template +0 -0
  147. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/skaffold.yaml +0 -0
  148. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/start.sh +0 -0
  149. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/rerun_app/static/app_icon.png +0 -0
  150. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/robot_visualizer.py +0 -0
  151. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/safety_zones.py +0 -0
  152. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/stream_state.py +0 -0
  153. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/nova_rerun_bridge/trajectory.py +0 -0
  154. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/__init__.py +0 -0
  155. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/api/__init__.py +0 -0
  156. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/api/dependencies.py +0 -0
  157. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/api/programs.py +0 -0
  158. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/config.py +0 -0
  159. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/novax.py +0 -0
  160. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/novax/program_manager.py +0 -0
  161. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/nova_rerun_bridge/test_blueprint.py +0 -0
  162. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/nova_rerun_bridge/test_log_motion.py +0 -0
  163. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/nova_rerun_bridge/test_nova_rerun_bridge.py +0 -0
  164. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/nova_rerun_bridge/test_trajectory.py +0 -0
  165. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_nats.py +0 -0
  166. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_program_cycle.py +0 -0
  167. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_program_registry.py +0 -0
  168. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_program_run.py +0 -0
  169. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/api/test_programs.py +0 -0
  170. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/conftest.py +0 -0
  171. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/serve.py +0 -0
  172. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/tests/novax/test_program_manager.py +0 -0
  173. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/vscode-ext/src/nova/readRobotPose.ts +0 -0
  174. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/vscode-ext/src/nova/selection.ts +0 -0
  175. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/CHANGELOG.md +0 -0
  176. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/README.md +0 -0
  177. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/__init__.py +0 -0
  178. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/__main__.py +0 -0
  179. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/antlrvisitor.py +0 -0
  180. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/__init__.py +0 -0
  181. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/array.py +0 -0
  182. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/assoc.py +0 -0
  183. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/controller.py +0 -0
  184. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/fetch.py +0 -0
  185. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/fs.py +0 -0
  186. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/math.py +0 -0
  187. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/pose.py +0 -0
  188. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/string.py +0 -0
  189. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins/wait.py +0 -0
  190. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/builtins.ws +0 -0
  191. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/cli.py +0 -0
  192. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/datatypes.py +0 -0
  193. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/and_or.json +0 -0
  194. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/and_or.ws +0 -0
  195. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/array.config +0 -0
  196. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/array.json +0 -0
  197. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/array.ws +0 -0
  198. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/assignment.json +0 -0
  199. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/assignment.ws +0 -0
  200. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/async_write.json +0 -0
  201. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/async_write.ws +0 -0
  202. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/blending.json +0 -0
  203. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/blending.ws +0 -0
  204. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/bool_negation.json +0 -0
  205. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/bool_negation.ws +0 -0
  206. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/builtins.json +0 -0
  207. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/builtins.ws +0 -0
  208. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/comments.json +0 -0
  209. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/comments.ws +0 -0
  210. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/context.json +0 -0
  211. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/context.ws +0 -0
  212. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/controller.cell.json +0 -0
  213. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/controller.json +0 -0
  214. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/controller.ws +0 -0
  215. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/coordinate_systems.json +0 -0
  216. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/coordinate_systems.ws +0 -0
  217. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/default.cell.json +0 -0
  218. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/default.json +0 -0
  219. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/default.ws +0 -0
  220. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern.json +0 -0
  221. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern.ws +0 -0
  222. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern_line.json +0 -0
  223. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern_line.ws +0 -0
  224. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern_manhattan.json +0 -0
  225. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/edge_pattern_manhattan.ws +0 -0
  226. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/empty.json +0 -0
  227. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/empty.ws +0 -0
  228. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/expressions.json +0 -0
  229. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/expressions.ws +0 -0
  230. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/fetch.json +0 -0
  231. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/fetch.ws +0 -0
  232. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/find_edge_from_4_poses.json +0 -0
  233. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/find_edge_from_4_poses.ws +0 -0
  234. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame.json +0 -0
  235. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame.ws +0 -0
  236. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame2.json +0 -0
  237. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame2.ws +0 -0
  238. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame3.cell.json +0 -0
  239. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame3.json +0 -0
  240. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/frame3.ws +0 -0
  241. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/function.json +0 -0
  242. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/function.ws +0 -0
  243. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/functional_pose.json +0 -0
  244. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/functional_pose.ws +0 -0
  245. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/get_pose.json +0 -0
  246. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/get_pose.ws +0 -0
  247. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/ifelse.json +0 -0
  248. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/ifelse.ws +0 -0
  249. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/interpolation.json +0 -0
  250. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/interpolation.ws +0 -0
  251. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/interrupt.json +0 -0
  252. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/interrupt.ws +0 -0
  253. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/io.json +0 -0
  254. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/io.ws +0 -0
  255. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/loops.json +0 -0
  256. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/loops.ws +0 -0
  257. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move.json +0 -0
  258. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move.ws +0 -0
  259. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move_via_expression.json +0 -0
  260. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move_via_expression.ws +0 -0
  261. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move_with_velocity.json +0 -0
  262. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/move_with_velocity.ws +0 -0
  263. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots.cell.json +0 -0
  264. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots.json +0 -0
  265. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots.ws +0 -0
  266. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots2.cell.json +0 -0
  267. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots2.json +0 -0
  268. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots2.ws +0 -0
  269. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots3.cell.json +0 -0
  270. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots3.json +0 -0
  271. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/multiple_robots3.ws +0 -0
  272. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/not.json +0 -0
  273. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/not.ws +0 -0
  274. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/operator_precedence.json +0 -0
  275. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/operator_precedence.ws +0 -0
  276. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/pose.json +0 -0
  277. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/pose.ws +0 -0
  278. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/poses2.json +0 -0
  279. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/poses2.ws +0 -0
  280. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/print.json +0 -0
  281. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/print.ws +0 -0
  282. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/record.json +0 -0
  283. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/record.ws +0 -0
  284. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/scope.json +0 -0
  285. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/scope.ws +0 -0
  286. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/spline.json +0 -0
  287. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/spline.ws +0 -0
  288. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/switch.json +0 -0
  289. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/switch.ws +0 -0
  290. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tcps.cell.json +0 -0
  291. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tcps.json +0 -0
  292. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tcps.ws +0 -0
  293. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tower_of_hanoi.cell.json +0 -0
  294. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tower_of_hanoi.json +0 -0
  295. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/tower_of_hanoi.ws +0 -0
  296. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/try.json +0 -0
  297. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/try.ws +0 -0
  298. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/vision_move.json +0 -0
  299. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/vision_move.ws +0 -0
  300. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wait.config +0 -0
  301. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wait.json +0 -0
  302. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wait.ws +0 -0
  303. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wandelchat2.json +0 -0
  304. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wandelchat2.ws +0 -0
  305. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wandelchat3.json +0 -0
  306. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wandelchat3.ws +0 -0
  307. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/whitespaces.json +0 -0
  308. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/whitespaces.ws +0 -0
  309. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wp393.json +0 -0
  310. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wp393.ws +0 -0
  311. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wp469.json +0 -0
  312. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples/wp469.ws +0 -0
  313. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/examples.py +0 -0
  314. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/exception.py +0 -0
  315. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/ffi.py +0 -0
  316. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/ffi_loader.py +0 -0
  317. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/frames.py +0 -0
  318. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/WandelscriptLexerBase.py +0 -0
  319. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/__init__.py +0 -0
  320. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptLexer.g4 +0 -0
  321. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptLexer.interp +0 -0
  322. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptLexer.py +0 -0
  323. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptLexer.tokens +0 -0
  324. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParser.g4 +0 -0
  325. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParser.interp +0 -0
  326. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParser.py +0 -0
  327. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParser.tokens +0 -0
  328. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParserListener.py +0 -0
  329. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/grammar/wandelscriptParserVisitor.py +0 -0
  330. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/metamodel.py +0 -0
  331. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/migration.py +0 -0
  332. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/models.py +0 -0
  333. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/motions.py +0 -0
  334. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/operators.py +0 -0
  335. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/runner.py +0 -0
  336. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/runtime.py +0 -0
  337. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/scripts/generate_parser.sh +0 -0
  338. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/__init__.py +0 -0
  339. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_builtins.py +0 -0
  340. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_examples.py +0 -0
  341. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_executor.py +0 -0
  342. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_ffi.py +0 -0
  343. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_migration.py +0 -0
  344. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_motion.py +0 -0
  345. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_move.py +0 -0
  346. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_multirobot.py +0 -0
  347. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_parser.py +0 -0
  348. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_programs.py +0 -0
  349. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_run_twice.py +0 -0
  350. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_runner.py +0 -0
  351. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_runtime.py +0 -0
  352. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_simulation.py +0 -0
  353. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_stepwise.py +0 -0
  354. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_store.py +0 -0
  355. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_two_step_execution.py +0 -0
  356. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/tests/test_types.py +0 -0
  357. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/utils/__init__.py +0 -0
  358. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/utils/pose.py +0 -0
  359. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/utils/runtime.py +0 -0
  360. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/utils/serializer.py +0 -0
  361. {wandelbots_nova-3.4.0 → wandelbots_nova-3.4.2}/wandelscript/version.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wandelbots-nova
3
- Version: 3.4.0
3
+ Version: 3.4.2
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>
7
7
  License-File: LICENSE
8
- Requires-Python: <3.13,>=3.11
8
+ Requires-Python: <3.13,>=3.10
9
9
  Requires-Dist: aiostream<0.7,>=0.6.4
10
10
  Requires-Dist: anyio<5,>=4.8.0
11
11
  Requires-Dist: asyncstdlib<4,>=3.13.0
@@ -60,7 +60,28 @@ The SDK will help you to build your own apps and services using Python on top of
60
60
 
61
61
  [417768496-f6157e4b-eea8-4b96-b302-1f3864ae44a9.webm](https://github.com/user-attachments/assets/ca7de6ba-c78d-414f-ae8f-f76d0890caf3)
62
62
 
63
- ## About
63
+ ## Table of Contents
64
+
65
+ - [Overview](#overview)
66
+ - [Prerequisites](#prerequisites)
67
+ - [Quickstart](#quickstart)
68
+ - [Installation](#installation)
69
+ - [Install with pip](#install-with-pip)
70
+ - [Install with uv and rerun visualization](#install-with-uv-and-rerun-visualization)
71
+ - [Configure environment variables](#configure-environment-variables)
72
+ - [Using the SDK](#using-the-sdk)
73
+ - [API essentials](#api-essentials)
74
+ - [Example gallery](#example-gallery)
75
+ - [Basic usage](#basic-usage)
76
+ - [Robot motion recipes](#robot-motion-recipes)
77
+ - [Advanced features](#advanced-features)
78
+ - [Wandelscript](#wandelscript)
79
+ - [NOVAx](#novax)
80
+ - [Development](#development)
81
+ - [Release process](#release-process)
82
+ - [Additional resources](#additional-resources)
83
+
84
+ ## Overview
64
85
 
65
86
  [Wandelbots NOVA OS](https://www.wandelbots.com/) is a robot-agnostic operating system that enables developers to plan, program, control, and operate fleets of six-axis industrial robots through a unified API, across all major robot brands. It integrates modern development tools like Python and JavaScript APIs with AI-based control and motion planning, allowing developers to build automation tasks such as gluing, grinding, welding, and palletizing without needing to account for hardware differences. The software offers a powerful set of tools that support the creation of custom automation solutions throughout the entire automation lifecycle.
66
87
 
@@ -70,15 +91,23 @@ The SDK will help you to build your own apps and services using Python on top of
70
91
  - Valid NOVA API credentials
71
92
  - Python >=3.10
72
93
 
94
+ ## Quickstart
95
+
96
+ 1. Install the SDK using `pip` or set up a local `uv` project with extras for visualization. Refer to the [Installation](#installation) section for both options.
97
+ 2. Copy `.env.template` to `.env` and fill in the base URL and access token for your NOVA deployment. Details are covered in [Configure environment variables](#configure-environment-variables).
98
+ 3. Run an example to validate the setup, e.g. `uv run python examples/basic.py`. Install the rerun extras and execute `uv run download-models` if you want interactive 3D visualization out of the box.
99
+
73
100
  ## Installation
74
101
 
102
+ ### Install with pip
103
+
75
104
  Install the library using pip:
76
105
 
77
106
  ```bash
78
107
  pip install wandelbots-nova
79
108
  ```
80
109
 
81
- ### Recommended: uv project and Rerun Visualization
110
+ ### Install with uv and rerun visualization
82
111
 
83
112
  Install [uv](https://docs.astral.sh/uv/getting-started/installation/) on your system.
84
113
 
@@ -101,7 +130,7 @@ Download the robot models to visualize them in the rerun viewer.
101
130
  uv run download-models
102
131
  ```
103
132
 
104
- ### Environment variables for NOVA configuration
133
+ ### Configure Environment Variables
105
134
 
106
135
  Copy the provided `.env.template` file and rename it to `.env`:
107
136
 
@@ -114,73 +143,16 @@ Open the `.env` file in a text editor and fill in the values. Here's what each v
114
143
  | Variable | Description | Required | Default | Example |
115
144
  | ------------------- | ----------------------------------------------------------------------------------- | -------- | ------- | ------------------------------------------------ |
116
145
  | `NOVA_API` | Base URL or hostname of the Wandelbots NOVA server instance | Yes | None | `https://nova.example.com` or `http://172.0.0.1` |
117
- | `NOVA_USERNAME` | Username credential used for authentication with the NOVA service | Yes\* | None | `my_username` |
118
- | `NOVA_PASSWORD` | Password credential used in conjunction with `NOVA_USERNAME` | Yes\* | None | `my_password` |
119
- | `NOVA_ACCESS_TOKEN` | Pre-obtained access token for Wandelbots NOVA (if using token-based authentication) | Yes\* | None | `eyJhbGciOi...` |
146
+ | `NOVA_ACCESS_TOKEN` | Pre-obtained access token for Wandelbots NOVA (cloud or self-hosted deployments) | Yes\* | None | `eyJhbGciOi...` |
120
147
 
121
148
  > **Note:**
122
- > You can authenticate with Wandelbots NOVA using either **username/password credentials** or a **pre-obtained access token**, depending on your setup and security model:
123
- >
124
- > - **Username/password authentication**: Ensure both `NOVA_USERNAME` and `NOVA_PASSWORD` are set, and leave `NOVA_ACCESS_TOKEN` unset.
125
- > - **Token-based authentication**: Ensure `NOVA_ACCESS_TOKEN` is set, and leave `NOVA_USERNAME` and `NOVA_PASSWORD` unset.
126
- >
127
- > **Use only one method at a time**. If both are set, token-based authentication takes precedence.
128
-
129
- ## Wandelscript
130
-
131
- Wandelscript is a domain-specific language for programming robots.
132
- It is a declarative language that allows you to describe the robot's behavior in a high-level way.
133
- Wandelscript is suited to get yourself familiar with robot programming.
134
-
135
- ```bash
136
- uv add wandelbots-nova --extra wandelscript
137
- ```
138
-
139
- Here is a simple example of a Wandelscript program:
140
-
141
- ```python
142
- robot = get_controller("controller")[0]
143
- tcp("Flange")
144
- home = read(robot, "pose")
145
- sync
146
-
147
- # Set the velocity of the robot to 200 mm/s
148
- velocity(200)
149
-
150
- for i = 0..3:
151
- move via ptp() to home
152
- # Move to a pose concatenating the home pose
153
- move via line() to (50, 20, 30, 0, 0, 0) :: home
154
- move via line() to (100, 20, 30, 0, 0, 0) :: home
155
- move via line() to (50, 20, 30, 0, 0, 0) :: home
156
- move via ptp() to home
157
- ```
158
-
159
- To get started, use the [Quickstart](https://docs.wandelbots.io/latest/pathplanning-maintained/wandelscript/quickstart).
160
- implementation details or contributing to Wandelscript, refer to the [Wandelscript readme](/wandelscript/README.md).
161
-
162
- ## NOVAx
163
-
164
- NOVAx is an app framework for building server applications on top of Wandelbots NOVA.
165
- It provides common core concepts like the handling of programs and their execution.
166
-
167
- You can create a new NOVAx app using the [NOVA CLI](https://github.com/wandelbotsgmbh/nova-cli) generator:
168
-
169
- ```bash
170
- nova app create "your-nova-app" -g python_app
171
- ```
172
-
173
- For more information on using NOVAx see the [README](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/README.md). Explore [this example](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/your-nova-app/app.py) to use the NOVAx entry point.
174
-
175
- > **Important:** When using NOVAx, you must import the actual program functions from their respective Python files. Only importing the program files won't suffice. This ensures proper function registration and execution within the NOVAx runtime environment.
176
-
177
- ## 🚀 Quickstart
149
+ > - `NOVA_API` is mandatory in every deployment. Always point it to the NOVA base URL you are targeting.
150
+ > - `NOVA_ACCESS_TOKEN` is the supported authentication mechanism. It is mandatory for the Wandelbots Cloud environment; for self-hosted deployments generate and supply a token with the required permissions.
151
+ > - Username/password authentication (`NOVA_USERNAME`/`NOVA_PASSWORD`) is deprecated and no longer supported.
178
152
 
179
- See the [examples](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples) for usage of this library including 3D visualization.
153
+ ## Using the SDK
180
154
 
181
- For more details check out the [technical wiki](https://deepwiki.com/wandelbotsgmbh/wandelbots-nova) (powered by deepwiki), the [official documentation](https://docs.wandelbots.io/) or the [code documentation](https://wandelbotsgmbh.github.io/wandelbots-nova/).
182
-
183
- ## Usage
155
+ ### API essentials
184
156
 
185
157
  Import the library in your code to get started.
186
158
 
@@ -196,15 +168,15 @@ from nova import api
196
168
 
197
169
  Check out the [basic](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/basic.py) and [plan_and_execute](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/plan_and_execute.py) examples to learn how to use the library.
198
170
 
199
- ## Examples
171
+ ### Example gallery
200
172
 
201
- You can find different categories of examples in the repository:
173
+ Curated examples in this repository showcase typical SDK workflows:
202
174
 
203
175
  - **[Advanced SDK usage](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples)**
204
176
  - **[3D visualization](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples)**
205
177
  - **[Advanced Rerun integration](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/nova_rerun_bridge/examples)**
206
178
 
207
- ### Basic usage
179
+ #### Basic usage
208
180
 
209
181
  ```python
210
182
  import nova
@@ -240,7 +212,7 @@ async def main():
240
212
  current_pose = await motion_group.tcp_pose(tcp)
241
213
  ```
242
214
 
243
- ### Robot motion examples
215
+ #### Robot motion recipes
244
216
 
245
217
  1. **Basic Point-to-Point movement**
246
218
 
@@ -297,7 +269,7 @@ More information in [move_multiple_robots](https://github.com/wandelbotsgmbh/wan
297
269
  4. **Synchronous execution start of multiple motion groups**
298
270
  Explore coordinated execution with [multi_motion_group](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/multi_motion_group.py).
299
271
 
300
- ### Advanced features
272
+ #### Advanced features
301
273
 
302
274
  1. **Input/Output control**
303
275
 
@@ -345,7 +317,7 @@ async def main():
345
317
  )
346
318
  ```
347
319
 
348
- > **Note**: Install [rerun extras](#recommended-uv-project-and-rerun-visualization) to enable visualization
320
+ > **Note**: Install [rerun extras](#install-with-uv-and-rerun-visualization) to enable visualization
349
321
 
350
322
  <img width="1242" alt="pointcloud" src="https://github.com/user-attachments/assets/8e981f09-81ae-4e71-9851-42611f6b1843" />
351
323
 
@@ -497,6 +469,54 @@ async def setup_coordinated_robots():
497
469
 
498
470
  <img width="100%" alt="thumbnail" src="https://github.com/user-attachments/assets/6f0c441e-b133-4a3a-bf0e-0e947d3efad4" />
499
471
 
472
+ ## Wandelscript
473
+
474
+ Wandelscript is a domain-specific language for programming robots.
475
+ It is a declarative language that allows you to describe the robot's behavior in a high-level way.
476
+ Wandelscript is suited to get yourself familiar with robot programming.
477
+
478
+ ```bash
479
+ uv add wandelbots-nova --extra wandelscript
480
+ ```
481
+
482
+ Here is a simple example of a Wandelscript program:
483
+
484
+ ```python
485
+ robot = get_controller("controller")[0]
486
+ tcp("Flange")
487
+ home = read(robot, "pose")
488
+ sync
489
+
490
+ # Set the velocity of the robot to 200 mm/s
491
+ velocity(200)
492
+
493
+ for i = 0..3:
494
+ move via ptp() to home
495
+ # Move to a pose concatenating the home pose
496
+ move via line() to (50, 20, 30, 0, 0, 0) :: home
497
+ move via line() to (100, 20, 30, 0, 0, 0) :: home
498
+ move via line() to (50, 20, 30, 0, 0, 0) :: home
499
+ move via ptp() to home
500
+ ```
501
+
502
+ To get started, use the [Quickstart](https://docs.wandelbots.io/latest/pathplanning-maintained/wandelscript/quickstart).
503
+ For implementation details or contributing to Wandelscript, refer to the [Wandelscript readme](/wandelscript/README.md).
504
+
505
+ ## NOVAx
506
+
507
+ NOVAx is an app framework for building server applications on top of Wandelbots NOVA.
508
+ It provides common core concepts like the handling of programs and their execution.
509
+
510
+ You can create a new NOVAx app using the [NOVA CLI](https://github.com/wandelbotsgmbh/nova-cli) generator:
511
+
512
+ ```bash
513
+ nova app create "your-nova-app" -g python_app
514
+ ```
515
+
516
+ For more information on using NOVAx see the [README](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/README.md). Explore [this example](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/your-nova-app/app.py) to use the NOVAx entry point.
517
+
518
+ > **Important:** When using NOVAx, you must import the actual program functions from their respective Python files. Only importing the program files won't suffice. This ensures proper function registration and execution within the NOVAx runtime environment.
519
+
500
520
  ## Development
501
521
 
502
522
  To install development dependencies, run
@@ -573,3 +593,10 @@ Need a temporary test build? Use GitHub actions:
573
593
  ```bash
574
594
  pip install "wandelbots-nova @ git+https://github.com/wandelbotsgmbh/wandelbots-nova.git@<commit>"
575
595
  ```
596
+
597
+ ## Additional resources
598
+
599
+ - [Examples](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples) covering basic to advanced SDK scenarios
600
+ - [Technical wiki](https://deepwiki.com/wandelbotsgmbh/wandelbots-nova) with architecture notes and troubleshooting tips
601
+ - [Official documentation](https://docs.wandelbots.io/) for platform concepts and API guides
602
+ - [Code documentation](https://wandelbotsgmbh.github.io/wandelbots-nova/) generated from the latest SDK build
@@ -11,7 +11,28 @@ The SDK will help you to build your own apps and services using Python on top of
11
11
 
12
12
  [417768496-f6157e4b-eea8-4b96-b302-1f3864ae44a9.webm](https://github.com/user-attachments/assets/ca7de6ba-c78d-414f-ae8f-f76d0890caf3)
13
13
 
14
- ## About
14
+ ## Table of Contents
15
+
16
+ - [Overview](#overview)
17
+ - [Prerequisites](#prerequisites)
18
+ - [Quickstart](#quickstart)
19
+ - [Installation](#installation)
20
+ - [Install with pip](#install-with-pip)
21
+ - [Install with uv and rerun visualization](#install-with-uv-and-rerun-visualization)
22
+ - [Configure environment variables](#configure-environment-variables)
23
+ - [Using the SDK](#using-the-sdk)
24
+ - [API essentials](#api-essentials)
25
+ - [Example gallery](#example-gallery)
26
+ - [Basic usage](#basic-usage)
27
+ - [Robot motion recipes](#robot-motion-recipes)
28
+ - [Advanced features](#advanced-features)
29
+ - [Wandelscript](#wandelscript)
30
+ - [NOVAx](#novax)
31
+ - [Development](#development)
32
+ - [Release process](#release-process)
33
+ - [Additional resources](#additional-resources)
34
+
35
+ ## Overview
15
36
 
16
37
  [Wandelbots NOVA OS](https://www.wandelbots.com/) is a robot-agnostic operating system that enables developers to plan, program, control, and operate fleets of six-axis industrial robots through a unified API, across all major robot brands. It integrates modern development tools like Python and JavaScript APIs with AI-based control and motion planning, allowing developers to build automation tasks such as gluing, grinding, welding, and palletizing without needing to account for hardware differences. The software offers a powerful set of tools that support the creation of custom automation solutions throughout the entire automation lifecycle.
17
38
 
@@ -21,15 +42,23 @@ The SDK will help you to build your own apps and services using Python on top of
21
42
  - Valid NOVA API credentials
22
43
  - Python >=3.10
23
44
 
45
+ ## Quickstart
46
+
47
+ 1. Install the SDK using `pip` or set up a local `uv` project with extras for visualization. Refer to the [Installation](#installation) section for both options.
48
+ 2. Copy `.env.template` to `.env` and fill in the base URL and access token for your NOVA deployment. Details are covered in [Configure environment variables](#configure-environment-variables).
49
+ 3. Run an example to validate the setup, e.g. `uv run python examples/basic.py`. Install the rerun extras and execute `uv run download-models` if you want interactive 3D visualization out of the box.
50
+
24
51
  ## Installation
25
52
 
53
+ ### Install with pip
54
+
26
55
  Install the library using pip:
27
56
 
28
57
  ```bash
29
58
  pip install wandelbots-nova
30
59
  ```
31
60
 
32
- ### Recommended: uv project and Rerun Visualization
61
+ ### Install with uv and rerun visualization
33
62
 
34
63
  Install [uv](https://docs.astral.sh/uv/getting-started/installation/) on your system.
35
64
 
@@ -52,7 +81,7 @@ Download the robot models to visualize them in the rerun viewer.
52
81
  uv run download-models
53
82
  ```
54
83
 
55
- ### Environment variables for NOVA configuration
84
+ ### Configure Environment Variables
56
85
 
57
86
  Copy the provided `.env.template` file and rename it to `.env`:
58
87
 
@@ -65,73 +94,16 @@ Open the `.env` file in a text editor and fill in the values. Here's what each v
65
94
  | Variable | Description | Required | Default | Example |
66
95
  | ------------------- | ----------------------------------------------------------------------------------- | -------- | ------- | ------------------------------------------------ |
67
96
  | `NOVA_API` | Base URL or hostname of the Wandelbots NOVA server instance | Yes | None | `https://nova.example.com` or `http://172.0.0.1` |
68
- | `NOVA_USERNAME` | Username credential used for authentication with the NOVA service | Yes\* | None | `my_username` |
69
- | `NOVA_PASSWORD` | Password credential used in conjunction with `NOVA_USERNAME` | Yes\* | None | `my_password` |
70
- | `NOVA_ACCESS_TOKEN` | Pre-obtained access token for Wandelbots NOVA (if using token-based authentication) | Yes\* | None | `eyJhbGciOi...` |
97
+ | `NOVA_ACCESS_TOKEN` | Pre-obtained access token for Wandelbots NOVA (cloud or self-hosted deployments) | Yes\* | None | `eyJhbGciOi...` |
71
98
 
72
99
  > **Note:**
73
- > You can authenticate with Wandelbots NOVA using either **username/password credentials** or a **pre-obtained access token**, depending on your setup and security model:
74
- >
75
- > - **Username/password authentication**: Ensure both `NOVA_USERNAME` and `NOVA_PASSWORD` are set, and leave `NOVA_ACCESS_TOKEN` unset.
76
- > - **Token-based authentication**: Ensure `NOVA_ACCESS_TOKEN` is set, and leave `NOVA_USERNAME` and `NOVA_PASSWORD` unset.
77
- >
78
- > **Use only one method at a time**. If both are set, token-based authentication takes precedence.
79
-
80
- ## Wandelscript
81
-
82
- Wandelscript is a domain-specific language for programming robots.
83
- It is a declarative language that allows you to describe the robot's behavior in a high-level way.
84
- Wandelscript is suited to get yourself familiar with robot programming.
85
-
86
- ```bash
87
- uv add wandelbots-nova --extra wandelscript
88
- ```
89
-
90
- Here is a simple example of a Wandelscript program:
91
-
92
- ```python
93
- robot = get_controller("controller")[0]
94
- tcp("Flange")
95
- home = read(robot, "pose")
96
- sync
97
-
98
- # Set the velocity of the robot to 200 mm/s
99
- velocity(200)
100
-
101
- for i = 0..3:
102
- move via ptp() to home
103
- # Move to a pose concatenating the home pose
104
- move via line() to (50, 20, 30, 0, 0, 0) :: home
105
- move via line() to (100, 20, 30, 0, 0, 0) :: home
106
- move via line() to (50, 20, 30, 0, 0, 0) :: home
107
- move via ptp() to home
108
- ```
109
-
110
- To get started, use the [Quickstart](https://docs.wandelbots.io/latest/pathplanning-maintained/wandelscript/quickstart).
111
- implementation details or contributing to Wandelscript, refer to the [Wandelscript readme](/wandelscript/README.md).
112
-
113
- ## NOVAx
114
-
115
- NOVAx is an app framework for building server applications on top of Wandelbots NOVA.
116
- It provides common core concepts like the handling of programs and their execution.
117
-
118
- You can create a new NOVAx app using the [NOVA CLI](https://github.com/wandelbotsgmbh/nova-cli) generator:
119
-
120
- ```bash
121
- nova app create "your-nova-app" -g python_app
122
- ```
123
-
124
- For more information on using NOVAx see the [README](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/README.md). Explore [this example](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/your-nova-app/app.py) to use the NOVAx entry point.
125
-
126
- > **Important:** When using NOVAx, you must import the actual program functions from their respective Python files. Only importing the program files won't suffice. This ensures proper function registration and execution within the NOVAx runtime environment.
127
-
128
- ## 🚀 Quickstart
100
+ > - `NOVA_API` is mandatory in every deployment. Always point it to the NOVA base URL you are targeting.
101
+ > - `NOVA_ACCESS_TOKEN` is the supported authentication mechanism. It is mandatory for the Wandelbots Cloud environment; for self-hosted deployments generate and supply a token with the required permissions.
102
+ > - Username/password authentication (`NOVA_USERNAME`/`NOVA_PASSWORD`) is deprecated and no longer supported.
129
103
 
130
- See the [examples](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples) for usage of this library including 3D visualization.
104
+ ## Using the SDK
131
105
 
132
- For more details check out the [technical wiki](https://deepwiki.com/wandelbotsgmbh/wandelbots-nova) (powered by deepwiki), the [official documentation](https://docs.wandelbots.io/) or the [code documentation](https://wandelbotsgmbh.github.io/wandelbots-nova/).
133
-
134
- ## Usage
106
+ ### API essentials
135
107
 
136
108
  Import the library in your code to get started.
137
109
 
@@ -147,15 +119,15 @@ from nova import api
147
119
 
148
120
  Check out the [basic](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/basic.py) and [plan_and_execute](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/plan_and_execute.py) examples to learn how to use the library.
149
121
 
150
- ## Examples
122
+ ### Example gallery
151
123
 
152
- You can find different categories of examples in the repository:
124
+ Curated examples in this repository showcase typical SDK workflows:
153
125
 
154
126
  - **[Advanced SDK usage](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples)**
155
127
  - **[3D visualization](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples)**
156
128
  - **[Advanced Rerun integration](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/nova_rerun_bridge/examples)**
157
129
 
158
- ### Basic usage
130
+ #### Basic usage
159
131
 
160
132
  ```python
161
133
  import nova
@@ -191,7 +163,7 @@ async def main():
191
163
  current_pose = await motion_group.tcp_pose(tcp)
192
164
  ```
193
165
 
194
- ### Robot motion examples
166
+ #### Robot motion recipes
195
167
 
196
168
  1. **Basic Point-to-Point movement**
197
169
 
@@ -248,7 +220,7 @@ More information in [move_multiple_robots](https://github.com/wandelbotsgmbh/wan
248
220
  4. **Synchronous execution start of multiple motion groups**
249
221
  Explore coordinated execution with [multi_motion_group](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/multi_motion_group.py).
250
222
 
251
- ### Advanced features
223
+ #### Advanced features
252
224
 
253
225
  1. **Input/Output control**
254
226
 
@@ -296,7 +268,7 @@ async def main():
296
268
  )
297
269
  ```
298
270
 
299
- > **Note**: Install [rerun extras](#recommended-uv-project-and-rerun-visualization) to enable visualization
271
+ > **Note**: Install [rerun extras](#install-with-uv-and-rerun-visualization) to enable visualization
300
272
 
301
273
  <img width="1242" alt="pointcloud" src="https://github.com/user-attachments/assets/8e981f09-81ae-4e71-9851-42611f6b1843" />
302
274
 
@@ -448,6 +420,54 @@ async def setup_coordinated_robots():
448
420
 
449
421
  <img width="100%" alt="thumbnail" src="https://github.com/user-attachments/assets/6f0c441e-b133-4a3a-bf0e-0e947d3efad4" />
450
422
 
423
+ ## Wandelscript
424
+
425
+ Wandelscript is a domain-specific language for programming robots.
426
+ It is a declarative language that allows you to describe the robot's behavior in a high-level way.
427
+ Wandelscript is suited to get yourself familiar with robot programming.
428
+
429
+ ```bash
430
+ uv add wandelbots-nova --extra wandelscript
431
+ ```
432
+
433
+ Here is a simple example of a Wandelscript program:
434
+
435
+ ```python
436
+ robot = get_controller("controller")[0]
437
+ tcp("Flange")
438
+ home = read(robot, "pose")
439
+ sync
440
+
441
+ # Set the velocity of the robot to 200 mm/s
442
+ velocity(200)
443
+
444
+ for i = 0..3:
445
+ move via ptp() to home
446
+ # Move to a pose concatenating the home pose
447
+ move via line() to (50, 20, 30, 0, 0, 0) :: home
448
+ move via line() to (100, 20, 30, 0, 0, 0) :: home
449
+ move via line() to (50, 20, 30, 0, 0, 0) :: home
450
+ move via ptp() to home
451
+ ```
452
+
453
+ To get started, use the [Quickstart](https://docs.wandelbots.io/latest/pathplanning-maintained/wandelscript/quickstart).
454
+ For implementation details or contributing to Wandelscript, refer to the [Wandelscript readme](/wandelscript/README.md).
455
+
456
+ ## NOVAx
457
+
458
+ NOVAx is an app framework for building server applications on top of Wandelbots NOVA.
459
+ It provides common core concepts like the handling of programs and their execution.
460
+
461
+ You can create a new NOVAx app using the [NOVA CLI](https://github.com/wandelbotsgmbh/nova-cli) generator:
462
+
463
+ ```bash
464
+ nova app create "your-nova-app" -g python_app
465
+ ```
466
+
467
+ For more information on using NOVAx see the [README](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/README.md). Explore [this example](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples/your-nova-app/your-nova-app/app.py) to use the NOVAx entry point.
468
+
469
+ > **Important:** When using NOVAx, you must import the actual program functions from their respective Python files. Only importing the program files won't suffice. This ensures proper function registration and execution within the NOVAx runtime environment.
470
+
451
471
  ## Development
452
472
 
453
473
  To install development dependencies, run
@@ -524,3 +544,10 @@ Need a temporary test build? Use GitHub actions:
524
544
  ```bash
525
545
  pip install "wandelbots-nova @ git+https://github.com/wandelbotsgmbh/wandelbots-nova.git@<commit>"
526
546
  ```
547
+
548
+ ## Additional resources
549
+
550
+ - [Examples](https://github.com/wandelbotsgmbh/wandelbots-nova/tree/main/examples) covering basic to advanced SDK scenarios
551
+ - [Technical wiki](https://deepwiki.com/wandelbotsgmbh/wandelbots-nova) with architecture notes and troubleshooting tips
552
+ - [Official documentation](https://docs.wandelbots.io/) for platform concepts and API guides
553
+ - [Code documentation](https://wandelbotsgmbh.github.io/wandelbots-nova/) generated from the latest SDK build
@@ -1,5 +1,5 @@
1
1
  import asyncio
2
- from enum import StrEnum, auto
2
+ from enum import Enum, auto
3
3
  from functools import singledispatch
4
4
  from math import ceil, floor
5
5
  from typing import Any, AsyncIterator, Optional
@@ -117,7 +117,7 @@ def move_forward(context: MovementControllerContext) -> MovementControllerFuncti
117
117
  return movement_controller
118
118
 
119
119
 
120
- class OperationType(StrEnum):
120
+ class OperationType(Enum):
121
121
  FORWARD = auto()
122
122
  BACKWARD = auto()
123
123
  FORWARD_TO = auto()
@@ -138,18 +138,18 @@ class OperationResult:
138
138
  error: Optional[Exception] = None
139
139
 
140
140
 
141
- class MovementOption(StrEnum):
142
- CAN_MOVE_FORWARD = auto()
143
- CAN_MOVE_BACKWARD = auto()
141
+ class MovementOption(str, Enum):
142
+ CAN_MOVE_FORWARD = "CAN_MOVE_FORWARD"
143
+ CAN_MOVE_BACKWARD = "CAN_MOVE_BACKWARD"
144
144
 
145
145
 
146
146
  motion_started = signal("motion_started")
147
147
  motion_stopped = signal("motion_stopped")
148
148
 
149
149
 
150
- class MotionEventType(StrEnum):
151
- STARTED = auto()
152
- STOPPED = auto()
150
+ class MotionEventType(str, Enum):
151
+ STARTED = "STARTED"
152
+ STOPPED = "STOPPED"
153
153
 
154
154
 
155
155
  class MotionEvent(pydantic.BaseModel):
@@ -224,7 +224,7 @@ class TrajectoryCursor:
224
224
  return index
225
225
 
226
226
  def get_movement_options(self) -> set[MovementOption]:
227
- options = {
227
+ options: dict[MovementOption, bool] = {
228
228
  MovementOption.CAN_MOVE_FORWARD: self._current_location < self.end_location,
229
229
  MovementOption.CAN_MOVE_BACKWARD: self._current_location > 0.0,
230
230
  }
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "wandelbots-nova"
3
- version = "3.4.0"
3
+ version = "3.4.2"
4
4
  description = "Official Python SDK for the Wandelbots Nova"
5
5
  authors = [
6
6
  { name = "Wandelbots GmbH" },
@@ -11,7 +11,7 @@ authors = [
11
11
  { name = "Stefan Wagner", email = "stefan.wagner@wandelbots.com" },
12
12
  { name = "André Kühnert", email = "andre.kuhnert@wandelbots.com" },
13
13
  ]
14
- requires-python = ">=3.11, <3.13"
14
+ requires-python = ">=3.10, <3.13"
15
15
  readme = "README.md"
16
16
  dependencies = [
17
17
  "httpx>=0.28.0,<0.29",
@@ -124,7 +124,7 @@ markers = """
124
124
  """
125
125
 
126
126
  [tool.mypy]
127
- python_version = "3.11"
127
+ python_version = "3.10"
128
128
  ignore_missing_imports = true
129
129
  warn_unreachable = true
130
130
  warn_unused_configs = true
File without changes