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.
- {isar-1.25.1 → isar-1.25.3}/.github/workflows/pythonpackage.yml +1 -0
- {isar-1.25.1 → isar-1.25.3}/PKG-INFO +2 -4
- {isar-1.25.1 → isar-1.25.3}/pyproject.toml +1 -3
- {isar-1.25.1 → isar-1.25.3}/src/isar/apis/robot_control/robot_controller.py +1 -6
- {isar-1.25.1 → isar-1.25.3}/src/isar/apis/schedule/scheduling_controller.py +2 -2
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/settings.py +1 -17
- {isar-1.25.1 → isar-1.25.3}/src/isar/mission_planner/sequential_task_selector.py +1 -1
- {isar-1.25.1 → isar-1.25.3}/src/isar/mission_planner/task_selector_interface.py +1 -1
- {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/queues/status_queue.py +2 -2
- {isar-1.25.1 → isar-1.25.3}/src/isar/modules.py +6 -5
- {isar-1.25.1 → isar-1.25.3}/src/isar/services/service_connections/mqtt/robot_info_publisher.py +0 -1
- {isar-1.25.1 → isar-1.25.3}/src/isar/services/utilities/scheduling_utilities.py +6 -2
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/state_machine.py +8 -10
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/monitor.py +2 -1
- {isar-1.25.1 → isar-1.25.3}/src/isar/storage/blob_storage.py +1 -1
- {isar-1.25.1 → isar-1.25.3}/src/isar/storage/uploader.py +1 -1
- {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/PKG-INFO +2 -4
- {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/SOURCES.txt +1 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/requires.txt +1 -3
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/mission/task.py +1 -1
- isar-1.25.3/src/robot_interface/models/robots/battery_state.py +6 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/robot_interface.py +1 -1
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/telemetry/payloads.py +3 -9
- {isar-1.25.1 → isar-1.25.3}/tests/conftest.py +3 -1
- {isar-1.25.1 → isar-1.25.3}/tests/isar/models/communication/test_queues.py +1 -1
- isar-1.25.3/tests/isar/services/service_connections/echo/__init__.py +0 -0
- isar-1.25.3/tests/isar/services/utilities/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/services/utilities/test_scheduling_utilities.py +2 -1
- isar-1.25.3/tests/isar/state_machine/__init__.py +0 -0
- isar-1.25.3/tests/isar/state_machine/states/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/state_machine/test_state_machine.py +0 -4
- isar-1.25.3/tests/mocks/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/mocks/robot_interface.py +1 -1
- isar-1.25.1/src/isar/apis/models/__init__.py +0 -1
- isar-1.25.1/src/isar/models/communication/queues/__init__.py +0 -4
- isar-1.25.1/src/isar/state_machine/states/__init__.py +0 -8
- isar-1.25.1/src/robot_interface/models/initialize/__init__.py +0 -1
- isar-1.25.1/src/robot_interface/models/inspection/__init__.py +0 -13
- {isar-1.25.1 → isar-1.25.3}/.dockerignore +0 -0
- {isar-1.25.1 → isar-1.25.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {isar-1.25.1 → isar-1.25.3}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {isar-1.25.1 → isar-1.25.3}/.github/ISSUE_TEMPLATE/improvement.md +0 -0
- {isar-1.25.1 → isar-1.25.3}/.github/release.yml +0 -0
- {isar-1.25.1 → isar-1.25.3}/.github/workflows/compile_requirements.yml +0 -0
- {isar-1.25.1 → isar-1.25.3}/.github/workflows/project_automations.yml +0 -0
- {isar-1.25.1 → isar-1.25.3}/.github/workflows/publish_isar_base_image.yml +0 -0
- {isar-1.25.1 → isar-1.25.3}/.github/workflows/pythonpublish.yml +0 -0
- {isar-1.25.1 → isar-1.25.3}/.github/workflows/stale.yml +0 -0
- {isar-1.25.1 → isar-1.25.3}/.gitignore +0 -0
- {isar-1.25.1 → isar-1.25.3}/.pre-commit-config.yaml +0 -0
- {isar-1.25.1 → isar-1.25.3}/Dockerfile +0 -0
- {isar-1.25.1 → isar-1.25.3}/LICENSE +0 -0
- {isar-1.25.1 → isar-1.25.3}/README.md +0 -0
- {isar-1.25.1 → isar-1.25.3}/SECURITY.md +0 -0
- {isar-1.25.1 → isar-1.25.3}/docker-compose-turtlebot.yml +0 -0
- {isar-1.25.1 → isar-1.25.3}/docker-compose.yml +0 -0
- {isar-1.25.1 → isar-1.25.3}/docs/Makefile +0 -0
- {isar-1.25.1 → isar-1.25.3}/docs/make.bat +0 -0
- {isar-1.25.1 → isar-1.25.3}/docs/rst_processing.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/docs/source/conf.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/docs/source/index.rst +0 -0
- {isar-1.25.1 → isar-1.25.3}/docs/source/readme_link.md +0 -0
- {isar-1.25.1 → isar-1.25.3}/docs/state_machine_diagram.png +0 -0
- {isar-1.25.1 → isar-1.25.3}/main.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/radixconfig.yml +0 -0
- {isar-1.25.1 → isar-1.25.3}/requirements.txt +0 -0
- {isar-1.25.1 → isar-1.25.3}/setup.cfg +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/apis/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/apis/api.py +0 -0
- {isar-1.25.1/src/isar/apis/schedule → isar-1.25.3/src/isar/apis/models}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/apis/models/models.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/apis/models/start_mission_definition.py +0 -0
- {isar-1.25.1/src/isar/apis/security → isar-1.25.3/src/isar/apis/schedule}/__init__.py +0 -0
- {isar-1.25.1/src/isar/config → isar-1.25.3/src/isar/apis/security}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/apis/security/authentication.py +0 -0
- {isar-1.25.1/src/isar/config/keyvault → isar-1.25.3/src/isar/config}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/certs/ca-cert.pem +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/configuration_error.py +0 -0
- {isar-1.25.1/src/isar/config/predefined_mission_definition → isar-1.25.3/src/isar/config/keyvault}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/keyvault/keyvault_error.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/keyvault/keyvault_service.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/log.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/logging.conf +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/JSP1_intermediate_deck.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/JSP1_weather_deck.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/default_map.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/klab_b.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/klab_compressor.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/klab_turtlebot.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/maps/turtleworld.json +0 -0
- {isar-1.25.1/src/isar/config/predefined_missions → isar-1.25.3/src/isar/config/predefined_mission_definition}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_mission_definition/default_exr.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_mission_definition/default_mission.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_mission_definition/default_turtlebot.json +0 -0
- {isar-1.25.1/src/isar/mission_planner → isar-1.25.3/src/isar/config/predefined_missions}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_missions/default.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/predefined_missions/default_turtlebot.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/config/settings.env +0 -0
- {isar-1.25.1/src/isar/models → isar-1.25.3/src/isar/mission_planner}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/mission_planner/local_planner.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/mission_planner/mission_planner_interface.py +0 -0
- {isar-1.25.1/src/isar/models/communication → isar-1.25.3/src/isar/models}/__init__.py +0 -0
- {isar-1.25.1/src/isar/models/mission_metadata → isar-1.25.3/src/isar/models/communication}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/message.py +0 -0
- {isar-1.25.1/src/isar/services → isar-1.25.3/src/isar/models/communication/queues}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/queues/queue_io.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/queues/queue_timeout_error.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/models/communication/queues/queues.py +0 -0
- {isar-1.25.1/src/isar/services/auth → isar-1.25.3/src/isar/models/mission_metadata}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/script.py +0 -0
- {isar-1.25.1/src/isar/services/service_connections → isar-1.25.3/src/isar/services}/__init__.py +0 -0
- {isar-1.25.1/src/isar/services/service_connections/mqtt → isar-1.25.3/src/isar/services/auth}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/services/auth/azure_credentials.py +0 -0
- {isar-1.25.1/src/isar/services/service_connections/stid → isar-1.25.3/src/isar/services/service_connections}/__init__.py +0 -0
- {isar-1.25.1/src/isar/services/utilities → isar-1.25.3/src/isar/services/service_connections/mqtt}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/services/service_connections/mqtt/mqtt_client.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/services/service_connections/request_handler.py +0 -0
- {isar-1.25.1/src/isar/state_machine → isar-1.25.3/src/isar/services/service_connections/stid}/__init__.py +0 -0
- {isar-1.25.1/src/isar/storage → isar-1.25.3/src/isar/services/utilities}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/services/utilities/queue_utilities.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/services/utilities/robot_utilities.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/services/utilities/threaded_request.py +0 -0
- {isar-1.25.1/src/robot_interface → isar-1.25.3/src/isar/state_machine}/__init__.py +0 -0
- {isar-1.25.1/src/robot_interface/models → isar-1.25.3/src/isar/state_machine/states}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/idle.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/initialize.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/initiate.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/off.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/offline.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/paused.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states/stop.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/state_machine/states_enum.py +0 -0
- {isar-1.25.1/src/robot_interface/models/exceptions → isar-1.25.3/src/isar/storage}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/storage/local_storage.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/storage/slimm_storage.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/storage/storage_interface.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar/storage/utilities.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/dependency_links.txt +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/entry_points.txt +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/isar.egg-info/top_level.txt +0 -0
- {isar-1.25.1/src/robot_interface/models/mission → isar-1.25.3/src/robot_interface}/__init__.py +0 -0
- {isar-1.25.1/src/robot_interface/models/robots → isar-1.25.3/src/robot_interface/models}/__init__.py +0 -0
- {isar-1.25.1/src/robot_interface/telemetry → isar-1.25.3/src/robot_interface/models/exceptions}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/exceptions/robot_exceptions.py +0 -0
- {isar-1.25.1/src/robot_interface/utilities → isar-1.25.3/src/robot_interface/models/initialize}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/initialize/initialize_params.py +0 -0
- {isar-1.25.1/tests → isar-1.25.3/src/robot_interface/models/inspection}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/inspection/inspection.py +0 -0
- {isar-1.25.1/tests/integration → isar-1.25.3/src/robot_interface/models/mission}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/mission/mission.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/mission/status.py +0 -0
- {isar-1.25.1/tests/integration/turtlebot → isar-1.25.3/src/robot_interface/models/robots}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/robots/media.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/models/robots/robot_model.py +0 -0
- {isar-1.25.1/tests/integration/turtlebot/config → isar-1.25.3/src/robot_interface/telemetry}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/telemetry/mqtt_client.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/test_robot_interface.py +0 -0
- {isar-1.25.1/tests/integration/turtlebot/config/maps → isar-1.25.3/src/robot_interface/utilities}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/utilities/json_service.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/src/robot_interface/utilities/uuid_string_factory.py +0 -0
- {isar-1.25.1/tests/integration/turtlebot/config/missions → isar-1.25.3/tests}/__init__.py +0 -0
- {isar-1.25.1/tests/isar → isar-1.25.3/tests/integration}/__init__.py +0 -0
- {isar-1.25.1/tests/isar/apis → isar-1.25.3/tests/integration/turtlebot}/__init__.py +0 -0
- {isar-1.25.1/tests/isar/apis/models → isar-1.25.3/tests/integration/turtlebot/config}/__init__.py +0 -0
- {isar-1.25.1/tests/isar/apis/scheduler → isar-1.25.3/tests/integration/turtlebot/config/maps}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/integration/turtlebot/config/maps/turtleworld.json +0 -0
- {isar-1.25.1/tests/isar/apis/security → isar-1.25.3/tests/integration/turtlebot/config/missions}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/integration/turtlebot/config/missions/default.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/integration/turtlebot/test_successful_mission.py +0 -0
- {isar-1.25.1/tests/isar/mission → isar-1.25.3/tests/isar}/__init__.py +0 -0
- {isar-1.25.1/tests/isar/models → isar-1.25.3/tests/isar/apis}/__init__.py +0 -0
- {isar-1.25.1/tests/isar/models/communication → isar-1.25.3/tests/isar/apis/models}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/apis/models/example_mission_definition.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/apis/models/test_start_mission_definition.py +0 -0
- {isar-1.25.1/tests/isar/services → isar-1.25.3/tests/isar/apis/scheduler}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/apis/scheduler/test_scheduler_router.py +0 -0
- {isar-1.25.1/tests/isar/services/readers → isar-1.25.3/tests/isar/apis/security}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/apis/security/test_authentication.py +0 -0
- {isar-1.25.1/tests/isar/services/service_connections → isar-1.25.3/tests/isar/mission}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/mission/test_mission.py +0 -0
- {isar-1.25.1/tests/isar/services/service_connections/echo → isar-1.25.3/tests/isar/models}/__init__.py +0 -0
- {isar-1.25.1/tests/isar/services/utilities → isar-1.25.3/tests/isar/models/communication}/__init__.py +0 -0
- {isar-1.25.1/tests/isar/state_machine → isar-1.25.3/tests/isar/services}/__init__.py +0 -0
- {isar-1.25.1/tests/isar/state_machine/states → isar-1.25.3/tests/isar/services/readers}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/services/readers/test_mission_reader.py +0 -0
- {isar-1.25.1/tests/mocks → isar-1.25.3/tests/isar/services/service_connections}/__init__.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/services/service_connections/test_base_request_handler.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/services/utilities/test_queue_utilities.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/state_machine/states/test_monitor.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/storage/test_blob_storage.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/isar/storage/test_uploader.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/mocks/blob_storage.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/mocks/mission_definition.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/mocks/mqtt_client.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/mocks/pose.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/mocks/request.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/mocks/status.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/mocks/task.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/mocks/token.py +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_map_config/test_map_config.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_mission_not_working.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_mission_working.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_mission_working_no_tasks.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/test_data/test_thermal_image_mission.json +0 -0
- {isar-1.25.1 → isar-1.25.3}/tests/test_modules.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: isar
|
|
3
|
-
Version: 1.25.
|
|
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:
|
|
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
|
-
"
|
|
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
|
|
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
|
|
7
|
+
from robot_interface.models.mission.task import TASKS
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class SequentialTaskSelector(TaskSelectorInterface):
|
|
@@ -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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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):
|
{isar-1.25.1 → isar-1.25.3}/src/isar/services/service_connections/mqtt/robot_info_publisher.py
RENAMED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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:
|
|
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
|
|
@@ -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,
|
|
@@ -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
|
|
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 (
|
|
File without changes
|
|
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
|
|
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
|
|
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 +0,0 @@
|
|
|
1
|
-
from .initialize_params import InitializeParams
|
|
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
|
|
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
|