isar 1.25.1__tar.gz → 1.25.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (207) hide show
  1. {isar-1.25.1 → isar-1.25.3}/.github/workflows/pythonpackage.yml +1 -0
  2. {isar-1.25.1 → isar-1.25.3}/PKG-INFO +2 -4
  3. {isar-1.25.1 → isar-1.25.3}/pyproject.toml +1 -3
  4. {isar-1.25.1 → isar-1.25.3}/src/isar/apis/robot_control/robot_controller.py +1 -6
  5. {isar-1.25.1 → isar-1.25.3}/src/isar/apis/schedule/scheduling_controller.py +2 -2
  6. {isar-1.25.1 → isar-1.25.3}/src/isar/config/settings.py +1 -17
  7. {isar-1.25.1 → isar-1.25.3}/src/isar/mission_planner/sequential_task_selector.py +1 -1
  8. {isar-1.25.1 → isar-1.25.3}/src/isar/mission_planner/task_selector_interface.py +1 -1
  9. {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/queues/status_queue.py +2 -2
  10. {isar-1.25.1 → isar-1.25.3}/src/isar/modules.py +6 -5
  11. {isar-1.25.1 → isar-1.25.3}/src/isar/services/service_connections/mqtt/robot_info_publisher.py +0 -1
  12. {isar-1.25.1 → isar-1.25.3}/src/isar/services/utilities/scheduling_utilities.py +6 -2
  13. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/state_machine.py +8 -10
  14. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/monitor.py +2 -1
  15. {isar-1.25.1 → isar-1.25.3}/src/isar/storage/blob_storage.py +1 -1
  16. {isar-1.25.1 → isar-1.25.3}/src/isar/storage/uploader.py +1 -1
  17. {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/PKG-INFO +2 -4
  18. {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/SOURCES.txt +1 -0
  19. {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/requires.txt +1 -3
  20. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/mission/task.py +1 -1
  21. isar-1.25.3/src/robot_interface/models/robots/battery_state.py +6 -0
  22. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/robot_interface.py +1 -1
  23. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/telemetry/payloads.py +3 -9
  24. {isar-1.25.1 → isar-1.25.3}/tests/conftest.py +3 -1
  25. {isar-1.25.1 → isar-1.25.3}/tests/isar/models/communication/test_queues.py +1 -1
  26. isar-1.25.3/tests/isar/services/service_connections/echo/__init__.py +0 -0
  27. isar-1.25.3/tests/isar/services/utilities/__init__.py +0 -0
  28. {isar-1.25.1 → isar-1.25.3}/tests/isar/services/utilities/test_scheduling_utilities.py +2 -1
  29. isar-1.25.3/tests/isar/state_machine/__init__.py +0 -0
  30. isar-1.25.3/tests/isar/state_machine/states/__init__.py +0 -0
  31. {isar-1.25.1 → isar-1.25.3}/tests/isar/state_machine/test_state_machine.py +0 -4
  32. isar-1.25.3/tests/mocks/__init__.py +0 -0
  33. {isar-1.25.1 → isar-1.25.3}/tests/mocks/robot_interface.py +1 -1
  34. isar-1.25.1/src/isar/apis/models/__init__.py +0 -1
  35. isar-1.25.1/src/isar/models/communication/queues/__init__.py +0 -4
  36. isar-1.25.1/src/isar/state_machine/states/__init__.py +0 -8
  37. isar-1.25.1/src/robot_interface/models/initialize/__init__.py +0 -1
  38. isar-1.25.1/src/robot_interface/models/inspection/__init__.py +0 -13
  39. {isar-1.25.1 → isar-1.25.3}/.dockerignore +0 -0
  40. {isar-1.25.1 → isar-1.25.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  41. {isar-1.25.1 → isar-1.25.3}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  42. {isar-1.25.1 → isar-1.25.3}/.github/ISSUE_TEMPLATE/improvement.md +0 -0
  43. {isar-1.25.1 → isar-1.25.3}/.github/release.yml +0 -0
  44. {isar-1.25.1 → isar-1.25.3}/.github/workflows/compile_requirements.yml +0 -0
  45. {isar-1.25.1 → isar-1.25.3}/.github/workflows/project_automations.yml +0 -0
  46. {isar-1.25.1 → isar-1.25.3}/.github/workflows/publish_isar_base_image.yml +0 -0
  47. {isar-1.25.1 → isar-1.25.3}/.github/workflows/pythonpublish.yml +0 -0
  48. {isar-1.25.1 → isar-1.25.3}/.github/workflows/stale.yml +0 -0
  49. {isar-1.25.1 → isar-1.25.3}/.gitignore +0 -0
  50. {isar-1.25.1 → isar-1.25.3}/.pre-commit-config.yaml +0 -0
  51. {isar-1.25.1 → isar-1.25.3}/Dockerfile +0 -0
  52. {isar-1.25.1 → isar-1.25.3}/LICENSE +0 -0
  53. {isar-1.25.1 → isar-1.25.3}/README.md +0 -0
  54. {isar-1.25.1 → isar-1.25.3}/SECURITY.md +0 -0
  55. {isar-1.25.1 → isar-1.25.3}/docker-compose-turtlebot.yml +0 -0
  56. {isar-1.25.1 → isar-1.25.3}/docker-compose.yml +0 -0
  57. {isar-1.25.1 → isar-1.25.3}/docs/Makefile +0 -0
  58. {isar-1.25.1 → isar-1.25.3}/docs/make.bat +0 -0
  59. {isar-1.25.1 → isar-1.25.3}/docs/rst_processing.py +0 -0
  60. {isar-1.25.1 → isar-1.25.3}/docs/source/conf.py +0 -0
  61. {isar-1.25.1 → isar-1.25.3}/docs/source/index.rst +0 -0
  62. {isar-1.25.1 → isar-1.25.3}/docs/source/readme_link.md +0 -0
  63. {isar-1.25.1 → isar-1.25.3}/docs/state_machine_diagram.png +0 -0
  64. {isar-1.25.1 → isar-1.25.3}/main.py +0 -0
  65. {isar-1.25.1 → isar-1.25.3}/radixconfig.yml +0 -0
  66. {isar-1.25.1 → isar-1.25.3}/requirements.txt +0 -0
  67. {isar-1.25.1 → isar-1.25.3}/setup.cfg +0 -0
  68. {isar-1.25.1 → isar-1.25.3}/src/isar/__init__.py +0 -0
  69. {isar-1.25.1 → isar-1.25.3}/src/isar/apis/__init__.py +0 -0
  70. {isar-1.25.1 → isar-1.25.3}/src/isar/apis/api.py +0 -0
  71. {isar-1.25.1/src/isar/apis/schedule → isar-1.25.3/src/isar/apis/models}/__init__.py +0 -0
  72. {isar-1.25.1 → isar-1.25.3}/src/isar/apis/models/models.py +0 -0
  73. {isar-1.25.1 → isar-1.25.3}/src/isar/apis/models/start_mission_definition.py +0 -0
  74. {isar-1.25.1/src/isar/apis/security → isar-1.25.3/src/isar/apis/schedule}/__init__.py +0 -0
  75. {isar-1.25.1/src/isar/config → isar-1.25.3/src/isar/apis/security}/__init__.py +0 -0
  76. {isar-1.25.1 → isar-1.25.3}/src/isar/apis/security/authentication.py +0 -0
  77. {isar-1.25.1/src/isar/config/keyvault → isar-1.25.3/src/isar/config}/__init__.py +0 -0
  78. {isar-1.25.1 → isar-1.25.3}/src/isar/config/certs/ca-cert.pem +0 -0
  79. {isar-1.25.1 → isar-1.25.3}/src/isar/config/configuration_error.py +0 -0
  80. {isar-1.25.1/src/isar/config/predefined_mission_definition → isar-1.25.3/src/isar/config/keyvault}/__init__.py +0 -0
  81. {isar-1.25.1 → isar-1.25.3}/src/isar/config/keyvault/keyvault_error.py +0 -0
  82. {isar-1.25.1 → isar-1.25.3}/src/isar/config/keyvault/keyvault_service.py +0 -0
  83. {isar-1.25.1 → isar-1.25.3}/src/isar/config/log.py +0 -0
  84. {isar-1.25.1 → isar-1.25.3}/src/isar/config/logging.conf +0 -0
  85. {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/JSP1_intermediate_deck.json +0 -0
  86. {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/JSP1_weather_deck.json +0 -0
  87. {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/default_map.json +0 -0
  88. {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/klab_b.json +0 -0
  89. {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/klab_compressor.json +0 -0
  90. {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/klab_turtlebot.json +0 -0
  91. {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/turtleworld.json +0 -0
  92. {isar-1.25.1/src/isar/config/predefined_missions → isar-1.25.3/src/isar/config/predefined_mission_definition}/__init__.py +0 -0
  93. {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_mission_definition/default_exr.json +0 -0
  94. {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_mission_definition/default_mission.json +0 -0
  95. {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_mission_definition/default_turtlebot.json +0 -0
  96. {isar-1.25.1/src/isar/mission_planner → isar-1.25.3/src/isar/config/predefined_missions}/__init__.py +0 -0
  97. {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_missions/default.json +0 -0
  98. {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_missions/default_turtlebot.json +0 -0
  99. {isar-1.25.1 → isar-1.25.3}/src/isar/config/settings.env +0 -0
  100. {isar-1.25.1/src/isar/models → isar-1.25.3/src/isar/mission_planner}/__init__.py +0 -0
  101. {isar-1.25.1 → isar-1.25.3}/src/isar/mission_planner/local_planner.py +0 -0
  102. {isar-1.25.1 → isar-1.25.3}/src/isar/mission_planner/mission_planner_interface.py +0 -0
  103. {isar-1.25.1/src/isar/models/communication → isar-1.25.3/src/isar/models}/__init__.py +0 -0
  104. {isar-1.25.1/src/isar/models/mission_metadata → isar-1.25.3/src/isar/models/communication}/__init__.py +0 -0
  105. {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/message.py +0 -0
  106. {isar-1.25.1/src/isar/services → isar-1.25.3/src/isar/models/communication/queues}/__init__.py +0 -0
  107. {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/queues/queue_io.py +0 -0
  108. {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/queues/queue_timeout_error.py +0 -0
  109. {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/queues/queues.py +0 -0
  110. {isar-1.25.1/src/isar/services/auth → isar-1.25.3/src/isar/models/mission_metadata}/__init__.py +0 -0
  111. {isar-1.25.1 → isar-1.25.3}/src/isar/script.py +0 -0
  112. {isar-1.25.1/src/isar/services/service_connections → isar-1.25.3/src/isar/services}/__init__.py +0 -0
  113. {isar-1.25.1/src/isar/services/service_connections/mqtt → isar-1.25.3/src/isar/services/auth}/__init__.py +0 -0
  114. {isar-1.25.1 → isar-1.25.3}/src/isar/services/auth/azure_credentials.py +0 -0
  115. {isar-1.25.1/src/isar/services/service_connections/stid → isar-1.25.3/src/isar/services/service_connections}/__init__.py +0 -0
  116. {isar-1.25.1/src/isar/services/utilities → isar-1.25.3/src/isar/services/service_connections/mqtt}/__init__.py +0 -0
  117. {isar-1.25.1 → isar-1.25.3}/src/isar/services/service_connections/mqtt/mqtt_client.py +0 -0
  118. {isar-1.25.1 → isar-1.25.3}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py +0 -0
  119. {isar-1.25.1 → isar-1.25.3}/src/isar/services/service_connections/request_handler.py +0 -0
  120. {isar-1.25.1/src/isar/state_machine → isar-1.25.3/src/isar/services/service_connections/stid}/__init__.py +0 -0
  121. {isar-1.25.1/src/isar/storage → isar-1.25.3/src/isar/services/utilities}/__init__.py +0 -0
  122. {isar-1.25.1 → isar-1.25.3}/src/isar/services/utilities/queue_utilities.py +0 -0
  123. {isar-1.25.1 → isar-1.25.3}/src/isar/services/utilities/robot_utilities.py +0 -0
  124. {isar-1.25.1 → isar-1.25.3}/src/isar/services/utilities/threaded_request.py +0 -0
  125. {isar-1.25.1/src/robot_interface → isar-1.25.3/src/isar/state_machine}/__init__.py +0 -0
  126. {isar-1.25.1/src/robot_interface/models → isar-1.25.3/src/isar/state_machine/states}/__init__.py +0 -0
  127. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/idle.py +0 -0
  128. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/initialize.py +0 -0
  129. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/initiate.py +0 -0
  130. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/off.py +0 -0
  131. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/offline.py +0 -0
  132. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/paused.py +0 -0
  133. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/stop.py +0 -0
  134. {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states_enum.py +0 -0
  135. {isar-1.25.1/src/robot_interface/models/exceptions → isar-1.25.3/src/isar/storage}/__init__.py +0 -0
  136. {isar-1.25.1 → isar-1.25.3}/src/isar/storage/local_storage.py +0 -0
  137. {isar-1.25.1 → isar-1.25.3}/src/isar/storage/slimm_storage.py +0 -0
  138. {isar-1.25.1 → isar-1.25.3}/src/isar/storage/storage_interface.py +0 -0
  139. {isar-1.25.1 → isar-1.25.3}/src/isar/storage/utilities.py +0 -0
  140. {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/dependency_links.txt +0 -0
  141. {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/entry_points.txt +0 -0
  142. {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/top_level.txt +0 -0
  143. {isar-1.25.1/src/robot_interface/models/mission → isar-1.25.3/src/robot_interface}/__init__.py +0 -0
  144. {isar-1.25.1/src/robot_interface/models/robots → isar-1.25.3/src/robot_interface/models}/__init__.py +0 -0
  145. {isar-1.25.1/src/robot_interface/telemetry → isar-1.25.3/src/robot_interface/models/exceptions}/__init__.py +0 -0
  146. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/exceptions/robot_exceptions.py +0 -0
  147. {isar-1.25.1/src/robot_interface/utilities → isar-1.25.3/src/robot_interface/models/initialize}/__init__.py +0 -0
  148. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/initialize/initialize_params.py +0 -0
  149. {isar-1.25.1/tests → isar-1.25.3/src/robot_interface/models/inspection}/__init__.py +0 -0
  150. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/inspection/inspection.py +0 -0
  151. {isar-1.25.1/tests/integration → isar-1.25.3/src/robot_interface/models/mission}/__init__.py +0 -0
  152. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/mission/mission.py +0 -0
  153. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/mission/status.py +0 -0
  154. {isar-1.25.1/tests/integration/turtlebot → isar-1.25.3/src/robot_interface/models/robots}/__init__.py +0 -0
  155. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/robots/media.py +0 -0
  156. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/robots/robot_model.py +0 -0
  157. {isar-1.25.1/tests/integration/turtlebot/config → isar-1.25.3/src/robot_interface/telemetry}/__init__.py +0 -0
  158. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/telemetry/mqtt_client.py +0 -0
  159. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/test_robot_interface.py +0 -0
  160. {isar-1.25.1/tests/integration/turtlebot/config/maps → isar-1.25.3/src/robot_interface/utilities}/__init__.py +0 -0
  161. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/utilities/json_service.py +0 -0
  162. {isar-1.25.1 → isar-1.25.3}/src/robot_interface/utilities/uuid_string_factory.py +0 -0
  163. {isar-1.25.1/tests/integration/turtlebot/config/missions → isar-1.25.3/tests}/__init__.py +0 -0
  164. {isar-1.25.1/tests/isar → isar-1.25.3/tests/integration}/__init__.py +0 -0
  165. {isar-1.25.1/tests/isar/apis → isar-1.25.3/tests/integration/turtlebot}/__init__.py +0 -0
  166. {isar-1.25.1/tests/isar/apis/models → isar-1.25.3/tests/integration/turtlebot/config}/__init__.py +0 -0
  167. {isar-1.25.1/tests/isar/apis/scheduler → isar-1.25.3/tests/integration/turtlebot/config/maps}/__init__.py +0 -0
  168. {isar-1.25.1 → isar-1.25.3}/tests/integration/turtlebot/config/maps/turtleworld.json +0 -0
  169. {isar-1.25.1/tests/isar/apis/security → isar-1.25.3/tests/integration/turtlebot/config/missions}/__init__.py +0 -0
  170. {isar-1.25.1 → isar-1.25.3}/tests/integration/turtlebot/config/missions/default.json +0 -0
  171. {isar-1.25.1 → isar-1.25.3}/tests/integration/turtlebot/test_successful_mission.py +0 -0
  172. {isar-1.25.1/tests/isar/mission → isar-1.25.3/tests/isar}/__init__.py +0 -0
  173. {isar-1.25.1/tests/isar/models → isar-1.25.3/tests/isar/apis}/__init__.py +0 -0
  174. {isar-1.25.1/tests/isar/models/communication → isar-1.25.3/tests/isar/apis/models}/__init__.py +0 -0
  175. {isar-1.25.1 → isar-1.25.3}/tests/isar/apis/models/example_mission_definition.json +0 -0
  176. {isar-1.25.1 → isar-1.25.3}/tests/isar/apis/models/test_start_mission_definition.py +0 -0
  177. {isar-1.25.1/tests/isar/services → isar-1.25.3/tests/isar/apis/scheduler}/__init__.py +0 -0
  178. {isar-1.25.1 → isar-1.25.3}/tests/isar/apis/scheduler/test_scheduler_router.py +0 -0
  179. {isar-1.25.1/tests/isar/services/readers → isar-1.25.3/tests/isar/apis/security}/__init__.py +0 -0
  180. {isar-1.25.1 → isar-1.25.3}/tests/isar/apis/security/test_authentication.py +0 -0
  181. {isar-1.25.1/tests/isar/services/service_connections → isar-1.25.3/tests/isar/mission}/__init__.py +0 -0
  182. {isar-1.25.1 → isar-1.25.3}/tests/isar/mission/test_mission.py +0 -0
  183. {isar-1.25.1/tests/isar/services/service_connections/echo → isar-1.25.3/tests/isar/models}/__init__.py +0 -0
  184. {isar-1.25.1/tests/isar/services/utilities → isar-1.25.3/tests/isar/models/communication}/__init__.py +0 -0
  185. {isar-1.25.1/tests/isar/state_machine → isar-1.25.3/tests/isar/services}/__init__.py +0 -0
  186. {isar-1.25.1/tests/isar/state_machine/states → isar-1.25.3/tests/isar/services/readers}/__init__.py +0 -0
  187. {isar-1.25.1 → isar-1.25.3}/tests/isar/services/readers/test_mission_reader.py +0 -0
  188. {isar-1.25.1/tests/mocks → isar-1.25.3/tests/isar/services/service_connections}/__init__.py +0 -0
  189. {isar-1.25.1 → isar-1.25.3}/tests/isar/services/service_connections/test_base_request_handler.py +0 -0
  190. {isar-1.25.1 → isar-1.25.3}/tests/isar/services/utilities/test_queue_utilities.py +0 -0
  191. {isar-1.25.1 → isar-1.25.3}/tests/isar/state_machine/states/test_monitor.py +0 -0
  192. {isar-1.25.1 → isar-1.25.3}/tests/isar/storage/test_blob_storage.py +0 -0
  193. {isar-1.25.1 → isar-1.25.3}/tests/isar/storage/test_uploader.py +0 -0
  194. {isar-1.25.1 → isar-1.25.3}/tests/mocks/blob_storage.py +0 -0
  195. {isar-1.25.1 → isar-1.25.3}/tests/mocks/mission_definition.py +0 -0
  196. {isar-1.25.1 → isar-1.25.3}/tests/mocks/mqtt_client.py +0 -0
  197. {isar-1.25.1 → isar-1.25.3}/tests/mocks/pose.py +0 -0
  198. {isar-1.25.1 → isar-1.25.3}/tests/mocks/request.py +0 -0
  199. {isar-1.25.1 → isar-1.25.3}/tests/mocks/status.py +0 -0
  200. {isar-1.25.1 → isar-1.25.3}/tests/mocks/task.py +0 -0
  201. {isar-1.25.1 → isar-1.25.3}/tests/mocks/token.py +0 -0
  202. {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_map_config/test_map_config.json +0 -0
  203. {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_mission_not_working.json +0 -0
  204. {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_mission_working.json +0 -0
  205. {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_mission_working_no_tasks.json +0 -0
  206. {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_thermal_image_mission.json +0 -0
  207. {isar-1.25.1 → isar-1.25.3}/tests/test_modules.py +0 -0
@@ -48,3 +48,4 @@ jobs:
48
48
  run: |
49
49
  black --check .
50
50
  mypy .
51
+ ruff check .
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: isar
3
- Version: 1.25.1
3
+ Version: 1.25.3
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
@@ -127,9 +127,7 @@ Requires-Dist: transitions
127
127
  Requires-Dist: uvicorn
128
128
  Provides-Extra: dev
129
129
  Requires-Dist: black; extra == "dev"
130
- Requires-Dist: flake8; extra == "dev"
131
130
  Requires-Dist: mypy; extra == "dev"
132
- Requires-Dist: myst-parser; extra == "dev"
133
131
  Requires-Dist: pip-tools; extra == "dev"
134
132
  Requires-Dist: pre-commit; extra == "dev"
135
133
  Requires-Dist: pytest-dotenv; extra == "dev"
@@ -137,7 +135,7 @@ Requires-Dist: pytest-mock; extra == "dev"
137
135
  Requires-Dist: pytest-xdist; extra == "dev"
138
136
  Requires-Dist: pytest; extra == "dev"
139
137
  Requires-Dist: requests-mock; extra == "dev"
140
- Requires-Dist: sphinx; extra == "dev"
138
+ Requires-Dist: ruff; extra == "dev"
141
139
 
142
140
  # ISAR
143
141
 
@@ -60,9 +60,7 @@ repository = "https://github.com/equinor/isar.git"
60
60
  [project.optional-dependencies]
61
61
  dev = [
62
62
  "black",
63
- "flake8",
64
63
  "mypy",
65
- "myst-parser",
66
64
  "pip-tools",
67
65
  "pre-commit",
68
66
  "pytest-dotenv",
@@ -70,7 +68,7 @@ dev = [
70
68
  "pytest-xdist",
71
69
  "pytest",
72
70
  "requests-mock",
73
- "sphinx",
71
+ "ruff",
74
72
  ]
75
73
 
76
74
  [tool.setuptools_scm]
@@ -1,15 +1,10 @@
1
1
  import logging
2
- from typing import List
3
2
 
4
3
  from injector import inject
5
4
 
6
- from isar.apis.models.models import (
7
- RobotInfoResponse,
8
- TaskResponse,
9
- )
5
+ from isar.apis.models.models import RobotInfoResponse
10
6
  from isar.config.settings import robot_settings, settings
11
7
  from isar.services.utilities.robot_utilities import RobotUtilities
12
- from robot_interface.models.mission.task import Task
13
8
 
14
9
 
15
10
  class RobotController:
@@ -6,11 +6,11 @@ from alitra import Pose
6
6
  from fastapi import Body, HTTPException, Path
7
7
  from injector import inject
8
8
 
9
- from isar.apis.models import InputPose, StartMissionResponse
10
9
  from isar.apis.models.models import (
11
10
  ControlMissionResponse,
12
- RobotInfoResponse,
13
11
  TaskResponse,
12
+ InputPose,
13
+ StartMissionResponse,
14
14
  )
15
15
  from isar.apis.models.start_mission_definition import (
16
16
  StartMissionDefinition,
@@ -8,7 +8,7 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
8
8
 
9
9
  from isar.config import predefined_missions
10
10
  from robot_interface.models.robots.robot_model import RobotModel
11
- from robot_interface.telemetry.payloads import DocumentInfo, VideoStream
11
+ from robot_interface.telemetry.payloads import DocumentInfo
12
12
 
13
13
 
14
14
  class Settings(BaseSettings):
@@ -194,22 +194,6 @@ class Settings(BaseSettings):
194
194
  # Info about robot documentation
195
195
  DOCUMENTATION: List[DocumentInfo] = Field(default=[])
196
196
 
197
- # Endpoints to reach video streams for the robot
198
- VIDEO_STREAMS: List[VideoStream] = Field(
199
- default=[
200
- VideoStream(
201
- name="Front camera",
202
- url="http://localhost:5000/videostream/front",
203
- type="turtlebot",
204
- ),
205
- VideoStream(
206
- name="Rear camera",
207
- url="http://localhost:5000/videostream/rear",
208
- type="turtlebot",
209
- ),
210
- ]
211
- )
212
-
213
197
  # Data scheme the robot should adhere to
214
198
  # Options [DS0001]
215
199
  DATA_SCHEME: str = Field(default="DS0001")
@@ -4,7 +4,7 @@ from isar.mission_planner.task_selector_interface import (
4
4
  TaskSelectorInterface,
5
5
  TaskSelectorStop,
6
6
  )
7
- from robot_interface.models.mission.task import TASKS, Task
7
+ from robot_interface.models.mission.task import TASKS
8
8
 
9
9
 
10
10
  class SequentialTaskSelector(TaskSelectorInterface):
@@ -1,7 +1,7 @@
1
1
  from abc import ABCMeta, abstractmethod
2
2
  from typing import List
3
3
 
4
- from robot_interface.models.mission.task import TASKS, Task
4
+ from robot_interface.models.mission.task import TASKS
5
5
 
6
6
 
7
7
  class TaskSelectorInterface(metaclass=ABCMeta):
@@ -11,8 +11,8 @@ class StatusQueue(Queue):
11
11
  if not self._qsize():
12
12
  raise Empty
13
13
  with self.mutex:
14
- l = list(self.queue)
15
- return l.pop()
14
+ queueList = list(self.queue)
15
+ return queueList.pop()
16
16
 
17
17
  def update(self, item: Any):
18
18
  with self.mutex:
@@ -7,8 +7,8 @@ from typing import Dict, List, Tuple, Union
7
7
  from injector import Injector, Module, multiprovider, provider, singleton
8
8
 
9
9
  from isar.apis.api import API
10
- from isar.apis.schedule.scheduling_controller import SchedulingController
11
10
  from isar.apis.robot_control.robot_controller import RobotController
11
+ from isar.apis.schedule.scheduling_controller import SchedulingController
12
12
  from isar.apis.security.authentication import Authenticator
13
13
  from isar.config.keyvault.keyvault_service import Keyvault
14
14
  from isar.config.settings import settings
@@ -18,8 +18,8 @@ from isar.mission_planner.sequential_task_selector import SequentialTaskSelector
18
18
  from isar.mission_planner.task_selector_interface import TaskSelectorInterface
19
19
  from isar.models.communication.queues.queues import Queues
20
20
  from isar.services.service_connections.request_handler import RequestHandler
21
- from isar.services.utilities.scheduling_utilities import SchedulingUtilities
22
21
  from isar.services.utilities.robot_utilities import RobotUtilities
22
+ from isar.services.utilities.scheduling_utilities import SchedulingUtilities
23
23
  from isar.state_machine.state_machine import StateMachine
24
24
  from isar.storage.blob_storage import BlobStorage
25
25
  from isar.storage.local_storage import LocalStorage
@@ -70,9 +70,10 @@ class RobotModule(Module):
70
70
  @provider
71
71
  @singleton
72
72
  def provide_robot_interface(self) -> RobotInterface:
73
- robot_package_name: str = settings.ROBOT_PACKAGE
74
- robot: ModuleType = import_module(robot_package_name)
75
- return robot.robotinterface.Robot() # type: ignore
73
+ robot_interface: ModuleType = import_module(
74
+ f"{settings.ROBOT_PACKAGE}.robotinterface"
75
+ )
76
+ return robot_interface.Robot() # type: ignore
76
77
 
77
78
 
78
79
  class QueuesModule(Module):
@@ -22,7 +22,6 @@ class RobotInfoPublisher:
22
22
  robot_serial_number=settings.SERIAL_NUMBER,
23
23
  robot_asset=settings.PLANT_SHORT_NAME,
24
24
  documentation=settings.DOCUMENTATION,
25
- video_streams=settings.VIDEO_STREAMS,
26
25
  host=settings.API_HOST_VIEWED_EXTERNALLY,
27
26
  port=settings.API_PORT,
28
27
  capabilities=robot_settings.CAPABILITIES,
@@ -17,7 +17,11 @@ from isar.mission_planner.mission_planner_interface import (
17
17
  MissionPlannerInterface,
18
18
  )
19
19
  from isar.models.communication.message import StartMissionMessage
20
- from isar.models.communication.queues import QueueIO, Queues, QueueTimeoutError
20
+ from isar.models.communication.queues.queue_io import QueueIO
21
+ from isar.models.communication.queues.queues import Queues
22
+ from isar.models.communication.queues.queue_timeout_error import (
23
+ QueueTimeoutError,
24
+ )
21
25
  from isar.services.utilities.queue_utilities import QueueUtilities
22
26
  from isar.state_machine.states_enum import States
23
27
  from robot_interface.models.mission.mission import Mission
@@ -101,7 +105,7 @@ class SchedulingUtilities:
101
105
  is_capable: bool = True
102
106
  missing_capabilities: Set[str] = set()
103
107
  for task in mission.tasks:
104
- if not task.type in robot_capabilities:
108
+ if task.type not in robot_capabilities:
105
109
  is_capable = False
106
110
  missing_capabilities.add(task.type)
107
111
 
@@ -18,16 +18,14 @@ from isar.mission_planner.task_selector_interface import (
18
18
  )
19
19
  from isar.models.communication.message import StartMissionMessage
20
20
  from isar.models.communication.queues.queues import Queues
21
- from isar.state_machine.states import (
22
- Idle,
23
- Initialize,
24
- Initiate,
25
- Monitor,
26
- Off,
27
- Offline,
28
- Paused,
29
- Stop,
30
- )
21
+ from isar.state_machine.states.idle import Idle
22
+ from isar.state_machine.states.initialize import Initialize
23
+ from isar.state_machine.states.initiate import Initiate
24
+ from isar.state_machine.states.monitor import Monitor
25
+ from isar.state_machine.states.off import Off
26
+ from isar.state_machine.states.offline import Offline
27
+ from isar.state_machine.states.paused import Paused
28
+ from isar.state_machine.states.stop import Stop
31
29
  from isar.state_machine.states_enum import States
32
30
  from robot_interface.models.exceptions.robot_exceptions import ErrorMessage
33
31
  from robot_interface.models.initialize.initialize_params import InitializeParams
@@ -110,7 +110,8 @@ class Monitor(State):
110
110
 
111
111
  if not isinstance(status, TaskStatus):
112
112
  self.logger.error(
113
- f"Received an invalid status update when monitoring mission. Only TaskStatus is expected."
113
+ f"Received an invalid status update {status} when monitoring mission. "
114
+ "Only TaskStatus is expected."
114
115
  )
115
116
  break
116
117
 
@@ -47,7 +47,7 @@ class BlobStorage(StorageInterface):
47
47
  def _upload_file(self, path: Path, data: bytes) -> Union[str, dict]:
48
48
  blob_client = self._get_blob_client(path)
49
49
  try:
50
- blob_properties = blob_client.upload_blob(data=data)
50
+ blob_client.upload_blob(data=data)
51
51
  except ResourceExistsError as e:
52
52
  self.logger.error(
53
53
  f"Blob {path.as_posix()} already exists in container. Error: {e}"
@@ -8,7 +8,7 @@ from typing import List, Union
8
8
  from injector import inject
9
9
 
10
10
  from isar.config.settings import settings
11
- from isar.models.communication.queues import Queues
11
+ from isar.models.communication.queues.queues import Queues
12
12
  from isar.storage.storage_interface import StorageException, StorageInterface
13
13
  from robot_interface.models.inspection.inspection import Inspection
14
14
  from robot_interface.models.mission.mission import Mission
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: isar
3
- Version: 1.25.1
3
+ Version: 1.25.3
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
@@ -127,9 +127,7 @@ Requires-Dist: transitions
127
127
  Requires-Dist: uvicorn
128
128
  Provides-Extra: dev
129
129
  Requires-Dist: black; extra == "dev"
130
- Requires-Dist: flake8; extra == "dev"
131
130
  Requires-Dist: mypy; extra == "dev"
132
- Requires-Dist: myst-parser; extra == "dev"
133
131
  Requires-Dist: pip-tools; extra == "dev"
134
132
  Requires-Dist: pre-commit; extra == "dev"
135
133
  Requires-Dist: pytest-dotenv; extra == "dev"
@@ -137,7 +135,7 @@ Requires-Dist: pytest-mock; extra == "dev"
137
135
  Requires-Dist: pytest-xdist; extra == "dev"
138
136
  Requires-Dist: pytest; extra == "dev"
139
137
  Requires-Dist: requests-mock; extra == "dev"
140
- Requires-Dist: sphinx; extra == "dev"
138
+ Requires-Dist: ruff; extra == "dev"
141
139
 
142
140
  # ISAR
143
141
 
@@ -134,6 +134,7 @@ src/robot_interface/models/mission/mission.py
134
134
  src/robot_interface/models/mission/status.py
135
135
  src/robot_interface/models/mission/task.py
136
136
  src/robot_interface/models/robots/__init__.py
137
+ src/robot_interface/models/robots/battery_state.py
137
138
  src/robot_interface/models/robots/media.py
138
139
  src/robot_interface/models/robots/robot_model.py
139
140
  src/robot_interface/telemetry/__init__.py
@@ -25,9 +25,7 @@ uvicorn
25
25
 
26
26
  [dev]
27
27
  black
28
- flake8
29
28
  mypy
30
- myst-parser
31
29
  pip-tools
32
30
  pre-commit
33
31
  pytest-dotenv
@@ -35,4 +33,4 @@ pytest-mock
35
33
  pytest-xdist
36
34
  pytest
37
35
  requests-mock
38
- sphinx
36
+ ruff
@@ -5,7 +5,7 @@ from alitra import Pose, Position
5
5
  from pydantic import BaseModel, Field
6
6
 
7
7
  from robot_interface.models.exceptions.robot_exceptions import ErrorMessage
8
- from robot_interface.models.inspection import (
8
+ from robot_interface.models.inspection.inspection import (
9
9
  Audio,
10
10
  Image,
11
11
  Inspection,
@@ -0,0 +1,6 @@
1
+ from enum import Enum
2
+
3
+
4
+ class BatteryState(Enum):
5
+ Normal: str = "Normal"
6
+ Charging: str = "Charging"
@@ -3,7 +3,7 @@ from queue import Queue
3
3
  from threading import Thread
4
4
  from typing import Callable, List, Optional
5
5
 
6
- from robot_interface.models.initialize import InitializeParams
6
+ from robot_interface.models.initialize.initialize_params import InitializeParams
7
7
  from robot_interface.models.inspection.inspection import Inspection
8
8
  from robot_interface.models.mission.mission import Mission
9
9
  from robot_interface.models.mission.status import RobotStatus, TaskStatus
@@ -1,11 +1,12 @@
1
1
  from dataclasses import dataclass
2
2
  from datetime import datetime
3
- from typing import List
3
+ from typing import List, Optional
4
4
 
5
5
  from alitra import Pose
6
6
  from transitions import State
7
7
 
8
8
  from robot_interface.models.mission.status import RobotStatus
9
+ from robot_interface.models.robots.battery_state import BatteryState
9
10
 
10
11
 
11
12
  @dataclass
@@ -30,6 +31,7 @@ class TelemetryPosePayload(TelemetryPayload):
30
31
  @dataclass
31
32
  class TelemetryBatteryPayload(TelemetryPayload):
32
33
  battery_level: float
34
+ battery_state: Optional[BatteryState] = None
33
35
 
34
36
 
35
37
  @dataclass
@@ -48,13 +50,6 @@ class DocumentInfo:
48
50
  url: str
49
51
 
50
52
 
51
- @dataclass
52
- class VideoStream:
53
- name: str
54
- url: str
55
- type: str
56
-
57
-
58
53
  @dataclass
59
54
  class RobotStatusPayload:
60
55
  isar_id: str
@@ -76,7 +71,6 @@ class RobotInfoPayload:
76
71
  robot_serial_number: str
77
72
  robot_asset: str
78
73
  documentation: List[DocumentInfo]
79
- video_streams: List[VideoStream]
80
74
  host: str
81
75
  port: int
82
76
  capabilities: List[str]
@@ -20,7 +20,9 @@ from isar.modules import (
20
20
  from isar.services.service_connections.request_handler import RequestHandler
21
21
  from isar.services.utilities.scheduling_utilities import SchedulingUtilities
22
22
  from isar.state_machine.state_machine import StateMachine
23
- from isar.state_machine.states import Idle, Initiate, Monitor
23
+ from isar.state_machine.states.idle import Idle
24
+ from isar.state_machine.states.initiate import Initiate
25
+ from isar.state_machine.states.monitor import Monitor
24
26
  from robot_interface.telemetry.mqtt_client import MqttClientInterface
25
27
  from tests.mocks.robot_interface import MockRobot
26
28
  from tests.test_modules import (
@@ -2,7 +2,7 @@ from queue import Empty
2
2
 
3
3
  import pytest
4
4
 
5
- from isar.models.communication.queues import Queues, StatusQueue
5
+ from isar.models.communication.queues.queues import Queues, StatusQueue
6
6
 
7
7
 
8
8
  class TestQueues:
File without changes
@@ -4,7 +4,8 @@ import pytest
4
4
  from fastapi import HTTPException
5
5
  from pytest_mock import MockerFixture
6
6
 
7
- from isar.models.communication.queues import QueueIO, QueueTimeoutError
7
+ from isar.models.communication.queues.queues import QueueIO
8
+ from isar.models.communication.queues.queue_timeout_error import QueueTimeoutError
8
9
  from isar.services.utilities.queue_utilities import QueueUtilities
9
10
  from isar.services.utilities.scheduling_utilities import SchedulingUtilities
10
11
  from isar.state_machine.states_enum import States
File without changes
@@ -1,6 +1,5 @@
1
1
  import time
2
2
  from collections import deque
3
- from pathlib import Path
4
3
  from threading import Thread
5
4
  from typing import List
6
5
 
@@ -8,8 +7,6 @@ import pytest
8
7
  from injector import Injector
9
8
  from pytest_mock import MockerFixture
10
9
 
11
- from isar.config.settings import settings
12
- from isar.mission_planner.local_planner import LocalPlanner
13
10
  from isar.models.communication.queues.queues import Queues
14
11
  from isar.services.utilities.scheduling_utilities import SchedulingUtilities
15
12
  from isar.state_machine.state_machine import StateMachine, main
@@ -32,7 +29,6 @@ from tests.mocks.task import MockTask
32
29
 
33
30
  class StateMachineThread(object):
34
31
  def __init__(self, injector) -> None:
35
- # settings.UPLOAD_INSPECTIONS_ASYNC = False
36
32
  self.injector: Injector = injector
37
33
  self.state_machine: StateMachine = injector.get(StateMachine)
38
34
  self._thread: Thread = Thread(target=main, args=[self.state_machine])
File without changes
@@ -5,7 +5,7 @@ from typing import Callable, List
5
5
 
6
6
  from alitra import Frame, Orientation, Pose, Position
7
7
 
8
- from robot_interface.models.initialize import InitializeParams
8
+ from robot_interface.models.initialize.initialize_params import InitializeParams
9
9
  from robot_interface.models.inspection.inspection import (
10
10
  Image,
11
11
  ImageMetadata,
@@ -1 +0,0 @@
1
- from .models import InputPose, StartMissionResponse
@@ -1,4 +0,0 @@
1
- from .queue_io import QueueIO
2
- from .queue_timeout_error import QueueTimeoutError
3
- from .queues import Queues
4
- from .status_queue import StatusQueue
@@ -1,8 +0,0 @@
1
- from .idle import Idle
2
- from .initialize import Initialize
3
- from .initiate import Initiate
4
- from .monitor import Monitor
5
- from .off import Off
6
- from .offline import Offline
7
- from .paused import Paused
8
- from .stop import Stop
@@ -1 +0,0 @@
1
- from .initialize_params import InitializeParams
@@ -1,13 +0,0 @@
1
- from .inspection import (
2
- Audio,
3
- Image,
4
- ImageMetadata,
5
- Inspection,
6
- InspectionMetadata,
7
- ThermalImage,
8
- ThermalImageMetadata,
9
- ThermalVideo,
10
- ThermalVideoMetadata,
11
- Video,
12
- VideoMetadata,
13
- )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes