isar 1.30.1__tar.gz → 1.30.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.

Potentially problematic release.


This version of isar might be problematic. Click here for more details.

Files changed (221) hide show
  1. isar-1.30.2/.env.test +3 -0
  2. {isar-1.30.1 → isar-1.30.2}/.github/workflows/pythonpackage.yml +1 -0
  3. {isar-1.30.1 → isar-1.30.2}/PKG-INFO +18 -5
  4. {isar-1.30.1 → isar-1.30.2}/README.md +17 -3
  5. {isar-1.30.1 → isar-1.30.2}/pyproject.toml +0 -1
  6. {isar-1.30.1 → isar-1.30.2}/requirements.txt +14 -14
  7. {isar-1.30.1 → isar-1.30.2}/src/isar/config/settings.py +6 -26
  8. {isar-1.30.1 → isar-1.30.2}/src/isar/modules.py +0 -7
  9. {isar-1.30.1 → isar-1.30.2}/src/isar/robot/robot_start_mission.py +2 -2
  10. {isar-1.30.1 → isar-1.30.2}/src/isar/script.py +0 -1
  11. {isar-1.30.1 → isar-1.30.2}/src/isar.egg-info/PKG-INFO +18 -5
  12. {isar-1.30.1 → isar-1.30.2}/src/isar.egg-info/SOURCES.txt +1 -2
  13. {isar-1.30.1 → isar-1.30.2}/src/isar.egg-info/requires.txt +0 -1
  14. {isar-1.30.1 → isar-1.30.2}/tests/conftest.py +0 -6
  15. {isar-1.30.1 → isar-1.30.2}/tests/isar/state_machine/test_state_machine.py +6 -0
  16. isar-1.30.1/src/isar/config/settings.env +0 -23
  17. isar-1.30.1/src/isar/storage/slimm_storage.py +0 -190
  18. {isar-1.30.1 → isar-1.30.2}/.dockerignore +0 -0
  19. {isar-1.30.1 → isar-1.30.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  20. {isar-1.30.1 → isar-1.30.2}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  21. {isar-1.30.1 → isar-1.30.2}/.github/ISSUE_TEMPLATE/improvement.md +0 -0
  22. {isar-1.30.1 → isar-1.30.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  23. {isar-1.30.1 → isar-1.30.2}/.github/release.yml +0 -0
  24. {isar-1.30.1 → isar-1.30.2}/.github/workflows/compile_requirements.yml +0 -0
  25. {isar-1.30.1 → isar-1.30.2}/.github/workflows/project_automations.yml +0 -0
  26. {isar-1.30.1 → isar-1.30.2}/.github/workflows/pythonpublish.yml +0 -0
  27. {isar-1.30.1 → isar-1.30.2}/.github/workflows/stale.yml +0 -0
  28. {isar-1.30.1 → isar-1.30.2}/.gitignore +0 -0
  29. {isar-1.30.1 → isar-1.30.2}/.pre-commit-config.yaml +0 -0
  30. {isar-1.30.1 → isar-1.30.2}/LICENSE +0 -0
  31. {isar-1.30.1 → isar-1.30.2}/SECURITY.md +0 -0
  32. {isar-1.30.1 → isar-1.30.2}/docs/Makefile +0 -0
  33. {isar-1.30.1 → isar-1.30.2}/docs/full_state_machine_diagram.png +0 -0
  34. {isar-1.30.1 → isar-1.30.2}/docs/make.bat +0 -0
  35. {isar-1.30.1 → isar-1.30.2}/docs/mission_state_machine_diagram.png +0 -0
  36. {isar-1.30.1 → isar-1.30.2}/docs/robot_status_state_machine_diagram.png +0 -0
  37. {isar-1.30.1 → isar-1.30.2}/docs/rst_processing.py +0 -0
  38. {isar-1.30.1 → isar-1.30.2}/docs/source/conf.py +0 -0
  39. {isar-1.30.1 → isar-1.30.2}/docs/source/index.rst +0 -0
  40. {isar-1.30.1 → isar-1.30.2}/docs/source/readme_link.md +0 -0
  41. {isar-1.30.1 → isar-1.30.2}/docs/update_state_diagram.py +0 -0
  42. {isar-1.30.1 → isar-1.30.2}/main.py +0 -0
  43. {isar-1.30.1 → isar-1.30.2}/radixconfig.yml +0 -0
  44. {isar-1.30.1 → isar-1.30.2}/setup.cfg +0 -0
  45. {isar-1.30.1 → isar-1.30.2}/src/isar/__init__.py +0 -0
  46. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/__init__.py +0 -0
  47. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/api.py +0 -0
  48. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/models/__init__.py +0 -0
  49. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/models/models.py +0 -0
  50. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/models/start_mission_definition.py +0 -0
  51. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/robot_control/robot_controller.py +0 -0
  52. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/schedule/__init__.py +0 -0
  53. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/schedule/scheduling_controller.py +0 -0
  54. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/security/__init__.py +0 -0
  55. {isar-1.30.1 → isar-1.30.2}/src/isar/apis/security/authentication.py +0 -0
  56. {isar-1.30.1 → isar-1.30.2}/src/isar/config/__init__.py +0 -0
  57. {isar-1.30.1 → isar-1.30.2}/src/isar/config/certs/ca-cert.pem +0 -0
  58. {isar-1.30.1 → isar-1.30.2}/src/isar/config/configuration_error.py +0 -0
  59. {isar-1.30.1 → isar-1.30.2}/src/isar/config/keyvault/__init__.py +0 -0
  60. {isar-1.30.1 → isar-1.30.2}/src/isar/config/keyvault/keyvault_error.py +0 -0
  61. {isar-1.30.1 → isar-1.30.2}/src/isar/config/keyvault/keyvault_service.py +0 -0
  62. {isar-1.30.1 → isar-1.30.2}/src/isar/config/log.py +0 -0
  63. {isar-1.30.1 → isar-1.30.2}/src/isar/config/logging.conf +0 -0
  64. {isar-1.30.1 → isar-1.30.2}/src/isar/config/maps/JSP1_intermediate_deck.json +0 -0
  65. {isar-1.30.1 → isar-1.30.2}/src/isar/config/maps/JSP1_weather_deck.json +0 -0
  66. {isar-1.30.1 → isar-1.30.2}/src/isar/config/maps/default_map.json +0 -0
  67. {isar-1.30.1 → isar-1.30.2}/src/isar/config/maps/klab_b.json +0 -0
  68. {isar-1.30.1 → isar-1.30.2}/src/isar/config/maps/klab_compressor.json +0 -0
  69. {isar-1.30.1 → isar-1.30.2}/src/isar/config/maps/klab_turtlebot.json +0 -0
  70. {isar-1.30.1 → isar-1.30.2}/src/isar/config/maps/turtleworld.json +0 -0
  71. {isar-1.30.1 → isar-1.30.2}/src/isar/config/predefined_mission_definition/__init__.py +0 -0
  72. {isar-1.30.1 → isar-1.30.2}/src/isar/config/predefined_mission_definition/default_exr.json +0 -0
  73. {isar-1.30.1 → isar-1.30.2}/src/isar/config/predefined_mission_definition/default_mission.json +0 -0
  74. {isar-1.30.1 → isar-1.30.2}/src/isar/config/predefined_mission_definition/default_turtlebot.json +0 -0
  75. {isar-1.30.1 → isar-1.30.2}/src/isar/config/predefined_missions/__init__.py +0 -0
  76. {isar-1.30.1 → isar-1.30.2}/src/isar/config/predefined_missions/default.json +0 -0
  77. {isar-1.30.1 → isar-1.30.2}/src/isar/config/predefined_missions/default_turtlebot.json +0 -0
  78. {isar-1.30.1 → isar-1.30.2}/src/isar/mission_planner/__init__.py +0 -0
  79. {isar-1.30.1 → isar-1.30.2}/src/isar/mission_planner/local_planner.py +0 -0
  80. {isar-1.30.1 → isar-1.30.2}/src/isar/mission_planner/mission_planner_interface.py +0 -0
  81. {isar-1.30.1 → isar-1.30.2}/src/isar/mission_planner/sequential_task_selector.py +0 -0
  82. {isar-1.30.1 → isar-1.30.2}/src/isar/mission_planner/task_selector_interface.py +0 -0
  83. {isar-1.30.1 → isar-1.30.2}/src/isar/models/__init__.py +0 -0
  84. {isar-1.30.1 → isar-1.30.2}/src/isar/models/communication/__init__.py +0 -0
  85. {isar-1.30.1 → isar-1.30.2}/src/isar/models/communication/message.py +0 -0
  86. {isar-1.30.1 → isar-1.30.2}/src/isar/models/communication/queues/__init__.py +0 -0
  87. {isar-1.30.1 → isar-1.30.2}/src/isar/models/communication/queues/events.py +0 -0
  88. {isar-1.30.1 → isar-1.30.2}/src/isar/models/communication/queues/queue_io.py +0 -0
  89. {isar-1.30.1 → isar-1.30.2}/src/isar/models/communication/queues/queue_timeout_error.py +0 -0
  90. {isar-1.30.1 → isar-1.30.2}/src/isar/models/communication/queues/queue_utils.py +0 -0
  91. {isar-1.30.1 → isar-1.30.2}/src/isar/models/communication/queues/status_queue.py +0 -0
  92. {isar-1.30.1 → isar-1.30.2}/src/isar/models/mission_metadata/__init__.py +0 -0
  93. {isar-1.30.1 → isar-1.30.2}/src/isar/robot/robot.py +0 -0
  94. {isar-1.30.1 → isar-1.30.2}/src/isar/robot/robot_status.py +0 -0
  95. {isar-1.30.1 → isar-1.30.2}/src/isar/robot/robot_stop_mission.py +0 -0
  96. {isar-1.30.1 → isar-1.30.2}/src/isar/robot/robot_task_status.py +0 -0
  97. {isar-1.30.1 → isar-1.30.2}/src/isar/services/__init__.py +0 -0
  98. {isar-1.30.1 → isar-1.30.2}/src/isar/services/auth/__init__.py +0 -0
  99. {isar-1.30.1 → isar-1.30.2}/src/isar/services/auth/azure_credentials.py +0 -0
  100. {isar-1.30.1 → isar-1.30.2}/src/isar/services/service_connections/__init__.py +0 -0
  101. {isar-1.30.1 → isar-1.30.2}/src/isar/services/service_connections/mqtt/__init__.py +0 -0
  102. {isar-1.30.1 → isar-1.30.2}/src/isar/services/service_connections/mqtt/mqtt_client.py +0 -0
  103. {isar-1.30.1 → isar-1.30.2}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py +0 -0
  104. {isar-1.30.1 → isar-1.30.2}/src/isar/services/service_connections/mqtt/robot_info_publisher.py +0 -0
  105. {isar-1.30.1 → isar-1.30.2}/src/isar/services/service_connections/request_handler.py +0 -0
  106. {isar-1.30.1 → isar-1.30.2}/src/isar/services/service_connections/stid/__init__.py +0 -0
  107. {isar-1.30.1 → isar-1.30.2}/src/isar/services/utilities/__init__.py +0 -0
  108. {isar-1.30.1 → isar-1.30.2}/src/isar/services/utilities/queue_utilities.py +0 -0
  109. {isar-1.30.1 → isar-1.30.2}/src/isar/services/utilities/robot_utilities.py +0 -0
  110. {isar-1.30.1 → isar-1.30.2}/src/isar/services/utilities/scheduling_utilities.py +0 -0
  111. {isar-1.30.1 → isar-1.30.2}/src/isar/services/utilities/threaded_request.py +0 -0
  112. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/__init__.py +0 -0
  113. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/state_machine.py +0 -0
  114. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/__init__.py +0 -0
  115. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/await_next_mission.py +0 -0
  116. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/blocked_protective_stop.py +0 -0
  117. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/home.py +0 -0
  118. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/monitor.py +0 -0
  119. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/offline.py +0 -0
  120. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/paused.py +0 -0
  121. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/returning_home.py +0 -0
  122. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/robot_standing_still.py +0 -0
  123. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/stopping.py +0 -0
  124. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states/unknown_status.py +0 -0
  125. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/states_enum.py +0 -0
  126. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/functions/fail_mission.py +0 -0
  127. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/functions/finish_mission.py +0 -0
  128. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/functions/pause.py +0 -0
  129. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/functions/resume.py +0 -0
  130. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/functions/return_home.py +0 -0
  131. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/functions/robot_status.py +0 -0
  132. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/functions/start_mission.py +0 -0
  133. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/functions/stop.py +0 -0
  134. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/functions/utils.py +0 -0
  135. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/mission.py +0 -0
  136. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/return_home.py +0 -0
  137. {isar-1.30.1 → isar-1.30.2}/src/isar/state_machine/transitions/robot_status.py +0 -0
  138. {isar-1.30.1 → isar-1.30.2}/src/isar/storage/__init__.py +0 -0
  139. {isar-1.30.1 → isar-1.30.2}/src/isar/storage/blob_storage.py +0 -0
  140. {isar-1.30.1 → isar-1.30.2}/src/isar/storage/local_storage.py +0 -0
  141. {isar-1.30.1 → isar-1.30.2}/src/isar/storage/storage_interface.py +0 -0
  142. {isar-1.30.1 → isar-1.30.2}/src/isar/storage/uploader.py +0 -0
  143. {isar-1.30.1 → isar-1.30.2}/src/isar/storage/utilities.py +0 -0
  144. {isar-1.30.1 → isar-1.30.2}/src/isar.egg-info/dependency_links.txt +0 -0
  145. {isar-1.30.1 → isar-1.30.2}/src/isar.egg-info/entry_points.txt +0 -0
  146. {isar-1.30.1 → isar-1.30.2}/src/isar.egg-info/top_level.txt +0 -0
  147. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/__init__.py +0 -0
  148. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/__init__.py +0 -0
  149. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/exceptions/__init__.py +0 -0
  150. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/exceptions/robot_exceptions.py +0 -0
  151. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/initialize/__init__.py +0 -0
  152. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/inspection/__init__.py +0 -0
  153. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/inspection/inspection.py +0 -0
  154. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/mission/__init__.py +0 -0
  155. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/mission/mission.py +0 -0
  156. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/mission/status.py +0 -0
  157. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/mission/task.py +0 -0
  158. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/robots/__init__.py +0 -0
  159. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/robots/battery_state.py +0 -0
  160. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/robots/media.py +0 -0
  161. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/models/robots/robot_model.py +0 -0
  162. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/robot_interface.py +0 -0
  163. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/telemetry/__init__.py +0 -0
  164. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/telemetry/mqtt_client.py +0 -0
  165. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/telemetry/payloads.py +0 -0
  166. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/test_robot_interface.py +0 -0
  167. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/utilities/__init__.py +0 -0
  168. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/utilities/json_service.py +0 -0
  169. {isar-1.30.1 → isar-1.30.2}/src/robot_interface/utilities/uuid_string_factory.py +0 -0
  170. {isar-1.30.1 → isar-1.30.2}/tests/__init__.py +0 -0
  171. {isar-1.30.1 → isar-1.30.2}/tests/integration/__init__.py +0 -0
  172. {isar-1.30.1 → isar-1.30.2}/tests/integration/turtlebot/__init__.py +0 -0
  173. {isar-1.30.1 → isar-1.30.2}/tests/integration/turtlebot/config/__init__.py +0 -0
  174. {isar-1.30.1 → isar-1.30.2}/tests/integration/turtlebot/config/maps/__init__.py +0 -0
  175. {isar-1.30.1 → isar-1.30.2}/tests/integration/turtlebot/config/maps/turtleworld.json +0 -0
  176. {isar-1.30.1 → isar-1.30.2}/tests/integration/turtlebot/config/missions/__init__.py +0 -0
  177. {isar-1.30.1 → isar-1.30.2}/tests/integration/turtlebot/config/missions/default.json +0 -0
  178. {isar-1.30.1 → isar-1.30.2}/tests/integration/turtlebot/test_successful_mission.py +0 -0
  179. {isar-1.30.1 → isar-1.30.2}/tests/isar/__init__.py +0 -0
  180. {isar-1.30.1 → isar-1.30.2}/tests/isar/apis/__init__.py +0 -0
  181. {isar-1.30.1 → isar-1.30.2}/tests/isar/apis/models/__init__.py +0 -0
  182. {isar-1.30.1 → isar-1.30.2}/tests/isar/apis/models/example_mission_definition.json +0 -0
  183. {isar-1.30.1 → isar-1.30.2}/tests/isar/apis/models/test_start_mission_definition.py +0 -0
  184. {isar-1.30.1 → isar-1.30.2}/tests/isar/apis/scheduler/__init__.py +0 -0
  185. {isar-1.30.1 → isar-1.30.2}/tests/isar/apis/scheduler/test_scheduler_router.py +0 -0
  186. {isar-1.30.1 → isar-1.30.2}/tests/isar/apis/security/__init__.py +0 -0
  187. {isar-1.30.1 → isar-1.30.2}/tests/isar/apis/security/test_authentication.py +0 -0
  188. {isar-1.30.1 → isar-1.30.2}/tests/isar/mission/__init__.py +0 -0
  189. {isar-1.30.1 → isar-1.30.2}/tests/isar/mission/test_mission.py +0 -0
  190. {isar-1.30.1 → isar-1.30.2}/tests/isar/models/__init__.py +0 -0
  191. {isar-1.30.1 → isar-1.30.2}/tests/isar/models/communication/__init__.py +0 -0
  192. {isar-1.30.1 → isar-1.30.2}/tests/isar/models/communication/test_queues.py +0 -0
  193. {isar-1.30.1 → isar-1.30.2}/tests/isar/services/__init__.py +0 -0
  194. {isar-1.30.1 → isar-1.30.2}/tests/isar/services/readers/__init__.py +0 -0
  195. {isar-1.30.1 → isar-1.30.2}/tests/isar/services/readers/test_mission_reader.py +0 -0
  196. {isar-1.30.1 → isar-1.30.2}/tests/isar/services/service_connections/__init__.py +0 -0
  197. {isar-1.30.1 → isar-1.30.2}/tests/isar/services/service_connections/echo/__init__.py +0 -0
  198. {isar-1.30.1 → isar-1.30.2}/tests/isar/services/service_connections/test_base_request_handler.py +0 -0
  199. {isar-1.30.1 → isar-1.30.2}/tests/isar/services/utilities/__init__.py +0 -0
  200. {isar-1.30.1 → isar-1.30.2}/tests/isar/services/utilities/test_queue_utilities.py +0 -0
  201. {isar-1.30.1 → isar-1.30.2}/tests/isar/services/utilities/test_scheduling_utilities.py +0 -0
  202. {isar-1.30.1 → isar-1.30.2}/tests/isar/state_machine/__init__.py +0 -0
  203. {isar-1.30.1 → isar-1.30.2}/tests/isar/state_machine/states/__init__.py +0 -0
  204. {isar-1.30.1 → isar-1.30.2}/tests/isar/state_machine/states/test_monitor.py +0 -0
  205. {isar-1.30.1 → isar-1.30.2}/tests/isar/storage/test_blob_storage.py +0 -0
  206. {isar-1.30.1 → isar-1.30.2}/tests/isar/storage/test_uploader.py +0 -0
  207. {isar-1.30.1 → isar-1.30.2}/tests/mocks/__init__.py +0 -0
  208. {isar-1.30.1 → isar-1.30.2}/tests/mocks/blob_storage.py +0 -0
  209. {isar-1.30.1 → isar-1.30.2}/tests/mocks/mission_definition.py +0 -0
  210. {isar-1.30.1 → isar-1.30.2}/tests/mocks/mqtt_client.py +0 -0
  211. {isar-1.30.1 → isar-1.30.2}/tests/mocks/pose.py +0 -0
  212. {isar-1.30.1 → isar-1.30.2}/tests/mocks/request.py +0 -0
  213. {isar-1.30.1 → isar-1.30.2}/tests/mocks/robot_interface.py +0 -0
  214. {isar-1.30.1 → isar-1.30.2}/tests/mocks/status.py +0 -0
  215. {isar-1.30.1 → isar-1.30.2}/tests/mocks/task.py +0 -0
  216. {isar-1.30.1 → isar-1.30.2}/tests/mocks/token.py +0 -0
  217. {isar-1.30.1 → isar-1.30.2}/tests/test_data/test_map_config/test_map_config.json +0 -0
  218. {isar-1.30.1 → isar-1.30.2}/tests/test_data/test_mission_not_working.json +0 -0
  219. {isar-1.30.1 → isar-1.30.2}/tests/test_data/test_mission_working.json +0 -0
  220. {isar-1.30.1 → isar-1.30.2}/tests/test_data/test_mission_working_no_tasks.json +0 -0
  221. {isar-1.30.1 → isar-1.30.2}/tests/test_data/test_thermal_image_mission.json +0 -0
isar-1.30.2/.env.test ADDED
@@ -0,0 +1,3 @@
1
+ ISAR_MQTT_ENABLED=true
2
+ ISAR_FSM_SLEEP_TIME=0.001
3
+ ISAR_UPLOAD_FAILURE_MAX_WAIT=3
@@ -44,6 +44,7 @@ jobs:
44
44
  pytest
45
45
  env:
46
46
  ENVIRONMENT: local
47
+ ISAR_ENV: test
47
48
 
48
49
  - name: Run black
49
50
  run: |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: isar
3
- Version: 1.30.1
3
+ Version: 1.30.2
4
4
  Summary: Integration and Supervisory control of Autonomous Robots
5
5
  Author-email: Equinor ASA <fg_robots_dev@equinor.com>
6
6
  License: Eclipse Public License version 2.0
@@ -132,7 +132,6 @@ Requires-Dist: isort; extra == "dev"
132
132
  Requires-Dist: mypy; extra == "dev"
133
133
  Requires-Dist: pip-tools; extra == "dev"
134
134
  Requires-Dist: pre-commit; extra == "dev"
135
- Requires-Dist: pytest-dotenv; extra == "dev"
136
135
  Requires-Dist: pytest-mock; extra == "dev"
137
136
  Requires-Dist: pytest-xdist; extra == "dev"
138
137
  Requires-Dist: pytest; extra == "dev"
@@ -236,7 +235,7 @@ ISAR_DEFAULT_MAP = turtleworld
236
235
  To run ISAR:
237
236
 
238
237
  ```bash
239
- python main.py
238
+ isar-start
240
239
  ```
241
240
 
242
241
  Note, running the full system requires that an implementation of a robot has been installed. See
@@ -281,6 +280,20 @@ There are two methods of specifying configuration.
281
280
  By adding environment variables with the prefix `ISAR_` to the [settings.env](./src/isar/config/settings.env) file
282
281
  the configuration variables will be overwritten by the values in this file.
283
282
 
283
+ ### Setup for testing
284
+ To be able to execute the tests you need to set the `ISAR_ENV` environment variable beforehand. Depending on your operating system and the command line you are using you can use one of the following commands:
285
+
286
+ **Bash/Zsh**
287
+ ```bash
288
+ export ISAR_ENV=test
289
+ ```
290
+ **Windows Command prompt**
291
+ ```cmd
292
+ set ISAR_ENV=test
293
+ ```
294
+
295
+ Remember to set `ISAR_ENV` back to `None` when you want to run `isar-start` afterwards.
296
+
284
297
  ### Running tests
285
298
 
286
299
  After following the steps in [Development](#install), you can run the tests:
@@ -375,10 +388,10 @@ overriding the configuration through an environment variable. It accepts a json
375
388
  in the list to retrieve the corresponding handler. The current options are
376
389
 
377
390
  ```
378
- ISAR_STORAGE = '["local", "blob", "slimm"]'
391
+ ISAR_STORAGE = '["local", "blob"]'
379
392
  ```
380
393
 
381
- Note that the `blob` and `slimm` options require special configuration to authenticate to these endpoints.
394
+ Note that the `blob` option requires special configuration to authenticate to these endpoints.
382
395
 
383
396
  ### Implement your own storage module
384
397
 
@@ -94,7 +94,7 @@ ISAR_DEFAULT_MAP = turtleworld
94
94
  To run ISAR:
95
95
 
96
96
  ```bash
97
- python main.py
97
+ isar-start
98
98
  ```
99
99
 
100
100
  Note, running the full system requires that an implementation of a robot has been installed. See
@@ -139,6 +139,20 @@ There are two methods of specifying configuration.
139
139
  By adding environment variables with the prefix `ISAR_` to the [settings.env](./src/isar/config/settings.env) file
140
140
  the configuration variables will be overwritten by the values in this file.
141
141
 
142
+ ### Setup for testing
143
+ To be able to execute the tests you need to set the `ISAR_ENV` environment variable beforehand. Depending on your operating system and the command line you are using you can use one of the following commands:
144
+
145
+ **Bash/Zsh**
146
+ ```bash
147
+ export ISAR_ENV=test
148
+ ```
149
+ **Windows Command prompt**
150
+ ```cmd
151
+ set ISAR_ENV=test
152
+ ```
153
+
154
+ Remember to set `ISAR_ENV` back to `None` when you want to run `isar-start` afterwards.
155
+
142
156
  ### Running tests
143
157
 
144
158
  After following the steps in [Development](#install), you can run the tests:
@@ -233,10 +247,10 @@ overriding the configuration through an environment variable. It accepts a json
233
247
  in the list to retrieve the corresponding handler. The current options are
234
248
 
235
249
  ```
236
- ISAR_STORAGE = '["local", "blob", "slimm"]'
250
+ ISAR_STORAGE = '["local", "blob"]'
237
251
  ```
238
252
 
239
- Note that the `blob` and `slimm` options require special configuration to authenticate to these endpoints.
253
+ Note that the `blob` option requires special configuration to authenticate to these endpoints.
240
254
 
241
255
  ### Implement your own storage module
242
256
 
@@ -65,7 +65,6 @@ dev = [
65
65
  "mypy",
66
66
  "pip-tools",
67
67
  "pre-commit",
68
- "pytest-dotenv",
69
68
  "pytest-mock",
70
69
  "pytest-xdist",
71
70
  "pytest",
@@ -22,7 +22,7 @@ azure-identity==1.23.0
22
22
  # via
23
23
  # isar (pyproject.toml)
24
24
  # opencensus-ext-azure
25
- azure-keyvault-secrets==4.9.0
25
+ azure-keyvault-secrets==4.10.0
26
26
  # via isar (pyproject.toml)
27
27
  azure-storage-blob==12.25.1
28
28
  # via isar (pyproject.toml)
@@ -30,7 +30,7 @@ backoff==2.2.1
30
30
  # via isar (pyproject.toml)
31
31
  cachetools==5.5.2
32
32
  # via google-auth
33
- certifi==2025.4.26
33
+ certifi==2025.6.15
34
34
  # via
35
35
  # httpcore
36
36
  # httpx
@@ -43,7 +43,7 @@ click==8.2.1
43
43
  # via
44
44
  # isar (pyproject.toml)
45
45
  # uvicorn
46
- cryptography==45.0.2
46
+ cryptography==45.0.4
47
47
  # via
48
48
  # azure-identity
49
49
  # azure-storage-blob
@@ -54,17 +54,17 @@ dacite==1.9.2
54
54
  # via
55
55
  # alitra
56
56
  # isar (pyproject.toml)
57
- dependency-injector==4.46.0
57
+ dependency-injector==4.48.0
58
58
  # via isar (pyproject.toml)
59
- fastapi==0.115.12
59
+ fastapi==0.115.13
60
60
  # via
61
61
  # fastapi-azure-auth
62
62
  # isar (pyproject.toml)
63
63
  fastapi-azure-auth==5.1.1
64
64
  # via isar (pyproject.toml)
65
- google-api-core==2.24.2
65
+ google-api-core==2.25.1
66
66
  # via opencensus
67
- google-auth==2.40.2
67
+ google-auth==2.40.3
68
68
  # via google-api-core
69
69
  googleapis-common-protos==1.70.0
70
70
  # via google-api-core
@@ -91,7 +91,7 @@ msal==1.32.3
91
91
  # msal-extensions
92
92
  msal-extensions==1.3.1
93
93
  # via azure-identity
94
- numpy==2.2.6
94
+ numpy==2.3.0
95
95
  # via
96
96
  # alitra
97
97
  # isar (pyproject.toml)
@@ -103,7 +103,7 @@ opencensus==0.11.4
103
103
  # opencensus-ext-requests
104
104
  opencensus-context==0.1.3
105
105
  # via opencensus
106
- opencensus-ext-azure==1.1.14
106
+ opencensus-ext-azure==1.1.15
107
107
  # via isar (pyproject.toml)
108
108
  opencensus-ext-logging==0.1.1
109
109
  # via isar (pyproject.toml)
@@ -113,7 +113,7 @@ paho-mqtt==2.1.0
113
113
  # via isar (pyproject.toml)
114
114
  proto-plus==1.26.1
115
115
  # via google-api-core
116
- protobuf==6.31.0
116
+ protobuf==6.31.1
117
117
  # via
118
118
  # google-api-core
119
119
  # googleapis-common-protos
@@ -128,7 +128,7 @@ pyasn1-modules==0.4.2
128
128
  # via google-auth
129
129
  pycparser==2.22
130
130
  # via cffi
131
- pydantic==2.11.4
131
+ pydantic==2.11.7
132
132
  # via
133
133
  # fastapi
134
134
  # isar (pyproject.toml)
@@ -148,7 +148,7 @@ python-dotenv==1.1.0
148
148
  # pydantic-settings
149
149
  pyyaml==6.0.2
150
150
  # via isar (pyproject.toml)
151
- requests==2.32.3
151
+ requests==2.32.4
152
152
  # via
153
153
  # azure-core
154
154
  # google-api-core
@@ -174,7 +174,7 @@ starlette==0.46.2
174
174
  # via fastapi
175
175
  transitions==0.9.2
176
176
  # via isar (pyproject.toml)
177
- typing-extensions==4.13.2
177
+ typing-extensions==4.14.0
178
178
  # via
179
179
  # azure-core
180
180
  # azure-identity
@@ -190,7 +190,7 @@ typing-inspection==0.4.1
190
190
  # pydantic-settings
191
191
  urllib3==2.4.0
192
192
  # via requests
193
- uvicorn==0.34.2
193
+ uvicorn==0.34.3
194
194
  # via isar (pyproject.toml)
195
195
  wrapt==1.17.2
196
196
  # via opencensus-ext-requests
@@ -12,15 +12,6 @@ from robot_interface.telemetry.payloads import DocumentInfo
12
12
 
13
13
 
14
14
  class Settings(BaseSettings):
15
- def __init__(self) -> None:
16
- try:
17
- source = files("isar").joinpath("config").joinpath("settings.env")
18
- with as_file(source) as eml:
19
- env_file = eml
20
- except ModuleNotFoundError:
21
- env_file = None
22
- super().__init__(_env_file=env_file)
23
-
24
15
  # Determines which robot package ISAR will attempt to import
25
16
  # Name must match with an installed python package in the local environment
26
17
  ROBOT_PACKAGE: str = Field(default="isar_robot")
@@ -98,7 +89,6 @@ class Settings(BaseSettings):
98
89
  # Selecting a different storage module than local may require certain access rights
99
90
  STORAGE_LOCAL_ENABLED: bool = Field(default=True)
100
91
  STORAGE_BLOB_ENABLED: bool = Field(default=False)
101
- STORAGE_SLIMM_ENABLED: bool = Field(default=False)
102
92
 
103
93
  # Determines whether the MQTT publishing module should be enabled or not
104
94
  # The publishing module will attempt to connect to the MQTT broker configured in
@@ -153,21 +143,6 @@ class Settings(BaseSettings):
153
143
  # Name of blob container in Azure Blob Storage [slimm test]
154
144
  BLOB_CONTAINER: str = Field(default="test")
155
145
 
156
- # Client ID for SLIMM App Registration
157
- SLIMM_CLIENT_ID: str = Field(default="c630ca4d-d8d6-45ab-8cc6-68a363d0de9e")
158
-
159
- # Scope for access to SLIMM Ingestion API
160
- SLIMM_APP_SCOPE: str = Field(default=".default")
161
-
162
- # URL for SLIMM endpoint
163
- SLIMM_API_URL: str = Field(
164
- default="https://scinspectioningestapitest.azurewebsites.net/Ingest"
165
- )
166
-
167
- # Whether the results should be copied directly into the SLIMM datalake or only the
168
- # metadata
169
- COPY_FILES_TO_SLIMM_DATALAKE: bool = Field(default=False)
170
-
171
146
  # The configuration of this section is tightly coupled with the metadata that is
172
147
  # submitted with the results once they have been uploaded.
173
148
 
@@ -298,7 +273,12 @@ class Settings(BaseSettings):
298
273
  )
299
274
 
300
275
 
301
- load_dotenv()
276
+ env = os.environ.get("ISAR_ENV")
277
+
278
+ if env == "test":
279
+ load_dotenv(".env.test", override=True)
280
+ else:
281
+ load_dotenv()
302
282
  settings = Settings()
303
283
 
304
284
 
@@ -14,13 +14,11 @@ from isar.mission_planner.sequential_task_selector import SequentialTaskSelector
14
14
  from isar.mission_planner.task_selector_interface import TaskSelectorInterface
15
15
  from isar.models.communication.queues.events import Events, SharedState
16
16
  from isar.robot.robot import Robot
17
- from isar.services.service_connections.request_handler import RequestHandler
18
17
  from isar.services.utilities.robot_utilities import RobotUtilities
19
18
  from isar.services.utilities.scheduling_utilities import SchedulingUtilities
20
19
  from isar.state_machine.state_machine import StateMachine
21
20
  from isar.storage.blob_storage import BlobStorage
22
21
  from isar.storage.local_storage import LocalStorage
23
- from isar.storage.slimm_storage import SlimmStorage
24
22
  from isar.storage.uploader import Uploader
25
23
  from robot_interface.telemetry.mqtt_client import MqttPublisher
26
24
 
@@ -77,11 +75,6 @@ class ApplicationContainer(containers.DeclarativeContainer):
77
75
  if settings.STORAGE_BLOB_ENABLED:
78
76
  blob_storage = providers.Singleton(BlobStorage, keyvault=keyvault)
79
77
  storage_handlers_temp.append(blob_storage)
80
- if settings.STORAGE_SLIMM_ENABLED:
81
- slimm_storage = providers.Singleton(
82
- SlimmStorage, request_handler=providers.Singleton(RequestHandler)
83
- )
84
- storage_handlers_temp.append(slimm_storage)
85
78
  storage_handlers = providers.List(*storage_handlers_temp)
86
79
 
87
80
  # Mqtt client
@@ -48,7 +48,7 @@ class RobotStartMissionThread(Thread):
48
48
  )
49
49
 
50
50
  if retries >= settings.INITIATE_FAILURE_COUNTER_LIMIT:
51
- error_description = (
51
+ self.logger.error(
52
52
  f"Mission will be cancelled after failing to initiate "
53
53
  f"{settings.INITIATE_FAILURE_COUNTER_LIMIT} times because: "
54
54
  f"{e.error_description}"
@@ -58,7 +58,7 @@ class RobotStartMissionThread(Thread):
58
58
  self.robot_service_events.mission_failed,
59
59
  ErrorMessage(
60
60
  error_reason=e.error_reason,
61
- error_description=error_description,
61
+ error_description=e.error_description,
62
62
  ),
63
63
  )
64
64
  break
@@ -68,7 +68,6 @@ def print_startup_info():
68
68
  print_setting("Mission planner", settings.MISSION_PLANNER)
69
69
  print_setting("Using local storage", settings.STORAGE_LOCAL_ENABLED)
70
70
  print_setting("Using blob storage", settings.STORAGE_BLOB_ENABLED)
71
- print_setting("Using SLIMM storage", settings.STORAGE_SLIMM_ENABLED)
72
71
  print_setting("Using async inspection uploading", settings.UPLOAD_INSPECTIONS_ASYNC)
73
72
  print_setting("Plant code", settings.PLANT_CODE)
74
73
  print_setting("Plant name", settings.PLANT_NAME)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: isar
3
- Version: 1.30.1
3
+ Version: 1.30.2
4
4
  Summary: Integration and Supervisory control of Autonomous Robots
5
5
  Author-email: Equinor ASA <fg_robots_dev@equinor.com>
6
6
  License: Eclipse Public License version 2.0
@@ -132,7 +132,6 @@ Requires-Dist: isort; extra == "dev"
132
132
  Requires-Dist: mypy; extra == "dev"
133
133
  Requires-Dist: pip-tools; extra == "dev"
134
134
  Requires-Dist: pre-commit; extra == "dev"
135
- Requires-Dist: pytest-dotenv; extra == "dev"
136
135
  Requires-Dist: pytest-mock; extra == "dev"
137
136
  Requires-Dist: pytest-xdist; extra == "dev"
138
137
  Requires-Dist: pytest; extra == "dev"
@@ -236,7 +235,7 @@ ISAR_DEFAULT_MAP = turtleworld
236
235
  To run ISAR:
237
236
 
238
237
  ```bash
239
- python main.py
238
+ isar-start
240
239
  ```
241
240
 
242
241
  Note, running the full system requires that an implementation of a robot has been installed. See
@@ -281,6 +280,20 @@ There are two methods of specifying configuration.
281
280
  By adding environment variables with the prefix `ISAR_` to the [settings.env](./src/isar/config/settings.env) file
282
281
  the configuration variables will be overwritten by the values in this file.
283
282
 
283
+ ### Setup for testing
284
+ To be able to execute the tests you need to set the `ISAR_ENV` environment variable beforehand. Depending on your operating system and the command line you are using you can use one of the following commands:
285
+
286
+ **Bash/Zsh**
287
+ ```bash
288
+ export ISAR_ENV=test
289
+ ```
290
+ **Windows Command prompt**
291
+ ```cmd
292
+ set ISAR_ENV=test
293
+ ```
294
+
295
+ Remember to set `ISAR_ENV` back to `None` when you want to run `isar-start` afterwards.
296
+
284
297
  ### Running tests
285
298
 
286
299
  After following the steps in [Development](#install), you can run the tests:
@@ -375,10 +388,10 @@ overriding the configuration through an environment variable. It accepts a json
375
388
  in the list to retrieve the corresponding handler. The current options are
376
389
 
377
390
  ```
378
- ISAR_STORAGE = '["local", "blob", "slimm"]'
391
+ ISAR_STORAGE = '["local", "blob"]'
379
392
  ```
380
393
 
381
- Note that the `blob` and `slimm` options require special configuration to authenticate to these endpoints.
394
+ Note that the `blob` option requires special configuration to authenticate to these endpoints.
382
395
 
383
396
  ### Implement your own storage module
384
397
 
@@ -1,4 +1,5 @@
1
1
  .dockerignore
2
+ .env.test
2
3
  .gitignore
3
4
  .pre-commit-config.yaml
4
5
  LICENSE
@@ -51,7 +52,6 @@ src/isar/config/__init__.py
51
52
  src/isar/config/configuration_error.py
52
53
  src/isar/config/log.py
53
54
  src/isar/config/logging.conf
54
- src/isar/config/settings.env
55
55
  src/isar/config/settings.py
56
56
  src/isar/config/certs/ca-cert.pem
57
57
  src/isar/config/keyvault/__init__.py
@@ -135,7 +135,6 @@ src/isar/state_machine/transitions/functions/utils.py
135
135
  src/isar/storage/__init__.py
136
136
  src/isar/storage/blob_storage.py
137
137
  src/isar/storage/local_storage.py
138
- src/isar/storage/slimm_storage.py
139
138
  src/isar/storage/storage_interface.py
140
139
  src/isar/storage/uploader.py
141
140
  src/isar/storage/utilities.py
@@ -29,7 +29,6 @@ isort
29
29
  mypy
30
30
  pip-tools
31
31
  pre-commit
32
- pytest-dotenv
33
32
  pytest-mock
34
33
  pytest-xdist
35
34
  pytest
@@ -6,7 +6,6 @@ from dependency_injector.wiring import providers
6
6
  from fastapi.testclient import TestClient
7
7
 
8
8
  from isar.apis.security.authentication import Authenticator
9
- from isar.config.settings import settings
10
9
  from isar.modules import ApplicationContainer
11
10
  from isar.robot.robot import Robot
12
11
  from isar.state_machine.state_machine import StateMachine
@@ -22,11 +21,6 @@ from tests.mocks.blob_storage import StorageMock
22
21
  from tests.mocks.mqtt_client import MqttClientMock
23
22
  from tests.mocks.robot_interface import MockRobot
24
23
 
25
- # Speed up tests
26
- settings.FSM_SLEEP_TIME = 0.001
27
- settings.ROBOT_API_STATUS_POLL_INTERVAL = 0
28
- settings.UPLOAD_FAILURE_MAX_WAIT = 3
29
-
30
24
 
31
25
  @pytest.fixture()
32
26
  def container():
@@ -354,6 +354,12 @@ def test_state_machine_idle_to_blocked_protective_stop_to_idle(
354
354
  robot_service_thread: RobotServiceThreadMock,
355
355
  mocker,
356
356
  ) -> None:
357
+ # Robot status check happens every 5 seconds by default, so we mock the behavior
358
+ # to poll for status imediately
359
+ mocker.patch.object(
360
+ RobotStatusThread, "_is_ready_to_poll_for_status", return_value=True
361
+ )
362
+
357
363
  robot_service_thread.robot_service.robot = (
358
364
  MockRobotBlockedProtectiveStopToRobotStandingStillTest(
359
365
  robot_service_thread.robot_service.shared_state.state
@@ -1,23 +0,0 @@
1
- ISAR_ROBOT_PACKAGE = isar_robot
2
-
3
- ISAR_STORAGE_LOCAL_ENABLED = true
4
- ISAR_STORAGE_BLOB_ENABLED = false
5
- ISAR_STORAGE_SLIMM_ENABLED = false
6
-
7
- ISAR_LOG_HANDLER_LOCAL_ENABLED = true
8
- ISAR_LOG_HANDLER_APPLICATION_INSIGHTS_ENABLED = false
9
-
10
- ISAR_MQTT_ENABLED = true
11
- ISAR_MQTT_SSL_ENABLED = true
12
-
13
- ISAR_AUTHENTICATION_ENABLED = true
14
-
15
- ISAR_PLANT_SHORT_NAME = HUA
16
-
17
- ISAR_API_HOST_VIEWED_EXTERNALLY = 0.0.0.0
18
-
19
- ISAR_MQTT_USERNAME = isar
20
- ISAR_MQTT_HOST = localhost
21
- ISAR_MQTT_PORT = 1883
22
-
23
- ISAR_KEYVAULT_NAME = IsarDevKv