isar 1.25.1__py3-none-any.whl → 1.25.3__py3-none-any.whl

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.

@@ -1 +0,0 @@
1
- from .models import InputPose, StartMissionResponse
@@ -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,
isar/config/settings.py CHANGED
@@ -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):
@@ -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
@@ -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:
isar/modules.py CHANGED
@@ -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
@@ -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
@@ -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}"
isar/storage/uploader.py CHANGED
@@ -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
 
@@ -1,14 +1,14 @@
1
1
  isar/__init__.py,sha256=cH8p8bVveu3FUL6kBhldcSlLaoHgD82Kd0-SwSNfGXw,87
2
- isar/modules.py,sha256=da1oE79leMID2cQKrVgahFyo-NAqNa_UA0PNHCA3Zt8,7361
2
+ isar/modules.py,sha256=BeBg2kJi1q-7DzupOM3jFloeMScRk7qkNog9-yGwV5c,7355
3
3
  isar/script.py,sha256=MRC_w1kzWuutE9C7QNVtPhKbsld-uWKiMrcUWufiNzQ,5988
4
4
  isar/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  isar/apis/api.py,sha256=vUy7QbHrKcTHjh2rkU7lqQPkCasI6umha8r6H88JiXE,13942
6
- isar/apis/models/__init__.py,sha256=NI1BYyN__Ogr00Qqe0XJ-9gEVPva2brXo2RJsbrS4tM,52
6
+ isar/apis/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  isar/apis/models/models.py,sha256=HzLaWhjAv0uJRBWipIgYg_F75eaQ5jl9Pi4UnYbDJ-M,1749
8
8
  isar/apis/models/start_mission_definition.py,sha256=yaWICdWJrCYFIm5Aq1K3BVxD9oyVuXYaaY9hJG2aoVY,8820
9
- isar/apis/robot_control/robot_controller.py,sha256=en6j-dHIxUXraREz7JETqtxgHl79ks7TBgBwPKc6VQE,1019
9
+ isar/apis/robot_control/robot_controller.py,sha256=w0giQf8k1TCL_J_kAcBB8Tgk02laWDCiDiFE8E5sPrg,915
10
10
  isar/apis/schedule/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- isar/apis/schedule/scheduling_controller.py,sha256=JvuioSWmJohiCqfGSCDvOq-CK2Y7ACHfXLfH-UhVQJ8,11371
11
+ isar/apis/schedule/scheduling_controller.py,sha256=9S7OtFCfO0hR9gWtj2u2oqa2Hxj9ynpcXxgqdk5liQ4,11328
12
12
  isar/apis/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  isar/apis/security/authentication.py,sha256=TI8U9Y_L6ihHLMeM50ZONd5EPfuHdw_XMU_Q987W4AY,1975
14
14
  isar/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -16,7 +16,7 @@ isar/config/configuration_error.py,sha256=rO6WOhafX6xvVib8WxV-eY483Z0PpN-9PxGsq5
16
16
  isar/config/log.py,sha256=zHFLmGWQRn8TrcsxUS6KHpJt2JE86kYazU7b-bkcN9o,2285
17
17
  isar/config/logging.conf,sha256=mYO1xf27gAopEMHhGzY7-mwyfN16rwRLkPNMvy3zn2g,1127
18
18
  isar/config/settings.env,sha256=hJFfyl4S84nmcyf70Pz8nbGlPf4KTVx0UkgP3uf6T8E,534
19
- isar/config/settings.py,sha256=lbpuXAyeSCHFcEuIQvbqwyJIOp23Rtdqpajf_HrUjbU,13491
19
+ isar/config/settings.py,sha256=NdFZSRTEeULulvU8tX904YblUFxZPwQpLu1opA5hbNE,12998
20
20
  isar/config/certs/ca-cert.pem,sha256=qoNljfad_qcMxhXJIUMLd7nT-Qwf_d4dYSdoOFEOE8I,2179
21
21
  isar/config/keyvault/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  isar/config/keyvault/keyvault_error.py,sha256=zvPCsZLjboxsxthYkxpRERCTFxYV8R5WmACewAUQLwk,41
@@ -38,16 +38,16 @@ isar/config/predefined_missions/default_turtlebot.json,sha256=8Vk1_0P0BBsG0vwh4v
38
38
  isar/mission_planner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  isar/mission_planner/local_planner.py,sha256=45zVP3hzUHdZ5Ty4KWRL85_AUWiTmBhTtlsAruUDMD4,2561
40
40
  isar/mission_planner/mission_planner_interface.py,sha256=UgpPIM4FbrWOD7fGY3Ul64k3uYb8wo0FwSWGewYoVbc,485
41
- isar/mission_planner/sequential_task_selector.py,sha256=lzBPV97wGBfqwpEh4l_7qhijx56yQtOmIM9DhIMOGFY,649
42
- isar/mission_planner/task_selector_interface.py,sha256=mzZEQfvU9BLCo_pu3fXXuYIjwjdjcr0vJ2pUCtFsr68,713
41
+ isar/mission_planner/sequential_task_selector.py,sha256=66agRPHuJnEa1vArPyty4muTasAZ50XPjjrSaTdY_Cc,643
42
+ isar/mission_planner/task_selector_interface.py,sha256=pnLeaGPIuyXThcflZ_A7YL2b2xQjFT88hAZidkMomxU,707
43
43
  isar/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
44
  isar/models/communication/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  isar/models/communication/message.py,sha256=yN4SXYM-W_6u3Cf9yuAE3jy4e6mMrL3yUr-iVV4r55E,241
46
- isar/models/communication/queues/__init__.py,sha256=JqwWbdBQnBeIEhSTjBOkl-O3bYBVBSmjPcWUdscsobw,146
46
+ isar/models/communication/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  isar/models/communication/queues/queue_io.py,sha256=AnHWUCkZ0tunkxKKeBarq-OUkRM97IaMfA-a1pmf1cQ,394
48
48
  isar/models/communication/queues/queue_timeout_error.py,sha256=rF8TlNF7RHS_ueTZ5mp7aFkhLY1j0dcwMwH-Ba6lVpE,45
49
49
  isar/models/communication/queues/queues.py,sha256=FzoqlT4AQ4Q5Jufh6yRPV2uq5iUZd1odrpjBl77yU5o,803
50
- isar/models/communication/queues/status_queue.py,sha256=K_i01uzCu1eciDt9QlDXLBINJnuRLqm6fzrM-PY6qD0,467
50
+ isar/models/communication/queues/status_queue.py,sha256=-6MDxrZ9dUIJgOMAluSJDyaM50xE1ylhoJZOnPIw8hs,483
51
51
  isar/models/mission_metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  isar/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  isar/services/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -57,58 +57,59 @@ isar/services/service_connections/request_handler.py,sha256=0LxC0lu_HXeEf_xmJWjf
57
57
  isar/services/service_connections/mqtt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
58
  isar/services/service_connections/mqtt/mqtt_client.py,sha256=N6o9U1PUmMJdHz-EDI8TA28gnMTVmNoxo_BKlfGyzeU,3547
59
59
  isar/services/service_connections/mqtt/robot_heartbeat_publisher.py,sha256=_bUOG7CfqBlCRvG4vh2XGoMXucBxsJarFIeXIKOH1aw,1019
60
- isar/services/service_connections/mqtt/robot_info_publisher.py,sha256=5G6ahslydhO2Z4Ug3abf5KVHeOiWdWBMxwraRbJZS_I,1456
60
+ isar/services/service_connections/mqtt/robot_info_publisher.py,sha256=AxokGk51hRPTxxD2r0P9braPJCMrf1InaCxrUBKkF4g,1402
61
61
  isar/services/service_connections/stid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
62
  isar/services/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
63
  isar/services/utilities/queue_utilities.py,sha256=Pw3hehSwkXJNeDv-bDVDfs58VOwtt3i5hpiJ2ZpphuQ,1225
64
64
  isar/services/utilities/robot_utilities.py,sha256=4-ob4kcIiRN_GXFDBMwBadfbwpYqKEkyzyC40wzvmko,555
65
- isar/services/utilities/scheduling_utilities.py,sha256=UUMxhudY2mQRG6Edjq6BG7oxwlqmcu5h6fMyw4Vhl_o,8376
65
+ isar/services/utilities/scheduling_utilities.py,sha256=xQ1UqxxTRk2VpTVj7mL_ux9xqoaiSd45W7VAPmpXSfU,8509
66
66
  isar/services/utilities/threaded_request.py,sha256=py4G-_RjnIdHljmKFAcQ6ddqMmp-ZYV39Ece-dqRqjs,1874
67
67
  isar/state_machine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- isar/state_machine/state_machine.py,sha256=9QO1g-uAI6jYuKq9e7a9CoDRAQHNJ-crZ9NuTnaS_wU,21788
68
+ isar/state_machine/state_machine.py,sha256=xACcd64parrom84vqZvofNdGoPWRi6drHxI3CIxQHrY,22067
69
69
  isar/state_machine/states_enum.py,sha256=BlrUcBWkM5K6D_UZXRwTaUgGpAagWmVZH6HhDBGzVU4,278
70
- isar/state_machine/states/__init__.py,sha256=kErbKPDTwNfCLijvdyN6_AuOqDwR23nu9F0Qovsnir4,218
70
+ isar/state_machine/states/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  isar/state_machine/states/idle.py,sha256=YKTOPVJUTGp-XR3N8FSm1s5ol3zoTmGs0THUMiO5h6A,3298
72
72
  isar/state_machine/states/initialize.py,sha256=TVXV5Ps3N4_flM88j9pQiX88kZgLzLwzlJy_6hPbgcA,2359
73
73
  isar/state_machine/states/initiate.py,sha256=j1wvSC3zVODgRkKOVsQROiuWkjihSBtwCs5GsoivLvc,5655
74
- isar/state_machine/states/monitor.py,sha256=pN52wtrrcrXxz913ZcFEELwaStL-eTZ6IIDiYw6oqe0,10253
74
+ isar/state_machine/states/monitor.py,sha256=03h8OHFQ00_BuR_M7FOVeA4h_lJE2L1x37t0SyGZoX8,10285
75
75
  isar/state_machine/states/off.py,sha256=jjqN_oJMpBtWuY7hP-c9f0w3p2CYCfe-NpmYHHPnmyI,544
76
76
  isar/state_machine/states/offline.py,sha256=IfEZ6-kl6OfJSRT1eKHOey7AU23tKiSHqpwGqclmH_c,2166
77
77
  isar/state_machine/states/paused.py,sha256=TIg1iJvAxGUIfzE_qWp0wrq4Ka0a3zEf3GNwIWLIK0M,1177
78
78
  isar/state_machine/states/stop.py,sha256=WVyjhndHcccy7_P9bU7SXyZB3qphsGahdSymaghGc08,3348
79
79
  isar/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
- isar/storage/blob_storage.py,sha256=8sfG1I23nPyVy6uZOq0O0FycZBjsSDIuAWdCVdVMEeM,3217
80
+ isar/storage/blob_storage.py,sha256=L885tgwHeeIp8raIz20Hhbc1IMsQP0wK6HOX9I4sZlw,3199
81
81
  isar/storage/local_storage.py,sha256=Bnmoi5gyN8r-oRh0aHrOdGqaH3JqRScFKMRXYojW5kY,1855
82
82
  isar/storage/slimm_storage.py,sha256=iVtc7w_VPFoe0fWyPpI9kjau3C1rn7w2n5EJaqloFIU,8991
83
83
  isar/storage/storage_interface.py,sha256=DYDry4I7aZpDHJhsBF6s8zrgokFAc7fdKJKfA8AvL7o,828
84
- isar/storage/uploader.py,sha256=JBlgaHYdFFUPlkx0eI0HBhP93fr9PIPTaYp6HG0iMeU,6509
84
+ isar/storage/uploader.py,sha256=ztcxDFCUxGu2mkRasB_3mxG-CNBp2RfGqczEEYR4gks,6516
85
85
  isar/storage/utilities.py,sha256=fitsdQ1ox5gr9fk9VuSk_iTBiEAIS8NZAnHabUZORh0,3173
86
86
  robot_interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- robot_interface/robot_interface.py,sha256=KtvWp1MDYgepG3uR9i8pt66zifhaXFl0nInClzL1FG0,9679
87
+ robot_interface/robot_interface.py,sha256=UEhzAj1kXOdyYiWjz8zxEo5BHMHRE-ZHalPFfv-qBfw,9697
88
88
  robot_interface/test_robot_interface.py,sha256=FV1urn7SbsMyWBIcTKjsBwAG4IsXeZ6pLHE0mA9EGGs,692
89
89
  robot_interface/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
90
  robot_interface/models/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
91
  robot_interface/models/exceptions/robot_exceptions.py,sha256=7s9X7GaQVhQiTnXLi-a51qRUX9CU7F4rEUMoRBiWF_I,10548
92
- robot_interface/models/initialize/__init__.py,sha256=rz5neEDr59GDbzzI_FF0DId-C-I-50l113P-h-C_QBY,48
92
+ robot_interface/models/initialize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
93
  robot_interface/models/initialize/initialize_params.py,sha256=2eG5Aq5bDKU6tVkaUMAoc46GERBgyaKkqv6yLupdRLc,164
94
- robot_interface/models/inspection/__init__.py,sha256=14wfuj4XZazrigKD7fL98khFKz-eckIpEgPcYRj40Kg,227
94
+ robot_interface/models/inspection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
95
  robot_interface/models/inspection/inspection.py,sha256=nSoKTDPRWnpaJuoKnaE_2EEJ6oH4dQkqEuECcQTvVhI,2059
96
96
  robot_interface/models/mission/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
97
  robot_interface/models/mission/mission.py,sha256=QZBDQiOmpb4C7nNCf1PaCWwpvAc8jrhwHSznOe2YhX8,842
98
98
  robot_interface/models/mission/status.py,sha256=C_viZWNTYOncWCdurx7Pko_D9d595QmHuJZBT8YMHUg,724
99
- robot_interface/models/mission/task.py,sha256=boRigdjY9dvJzHYxAweqydRGt7CUyXFcCjMVw-lrwJM,4969
99
+ robot_interface/models/mission/task.py,sha256=dk_CYaABD9WxQswd1xX3D5AHpcXwREwnloREEg1JbI0,4980
100
100
  robot_interface/models/robots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
+ robot_interface/models/robots/battery_state.py,sha256=BuZcgC3NaHDU-2WrjZBER2Ps96CnLy3vE2P4v4NajN4,108
101
102
  robot_interface/models/robots/media.py,sha256=Bo6XisTND9MOsxvJe6mWtKumFCpX6pbEBzEnAKpoIpU,232
102
103
  robot_interface/models/robots/robot_model.py,sha256=pZQsqhn9hh6XE3EjMZhWMzYqg5oJ4CJ4CXeOASKvEf8,452
103
104
  robot_interface/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
105
  robot_interface/telemetry/mqtt_client.py,sha256=DkzYZNWFaJkG3AVc0dM4Bj52hZEQj-14Q75zqzQcv9A,2988
105
- robot_interface/telemetry/payloads.py,sha256=JM5E_IHkZpim_zdwc-w52D7dYFBeP4iO1-xupOkHcFQ,1562
106
+ robot_interface/telemetry/payloads.py,sha256=WMR4VtL-K0JmUA22OcCaZ_RJwT5X2UfcLuwSNg9Skno,1580
106
107
  robot_interface/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
108
  robot_interface/utilities/json_service.py,sha256=nU2Q_3P9Fq9hs6F_wtUjWtHfl_g1Siy-yDhXXSKwHwg,1018
108
109
  robot_interface/utilities/uuid_string_factory.py,sha256=_NQIbBQ56w0qqO0MUDP6aPpHbxW7ATRhK8HnQiBSLkc,76
109
- isar-1.25.1.dist-info/LICENSE,sha256=3fc2-ebLwHWwzfQbulGNRdcNob3SBQeCfEVUDYxsuqw,14058
110
- isar-1.25.1.dist-info/METADATA,sha256=QvUtSw8nmGfn1MgIgqxHa9mzQNpH1hudpRrNwmodfwA,30661
111
- isar-1.25.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
112
- isar-1.25.1.dist-info/entry_points.txt,sha256=TFam7uNNw7J0iiDYzsH2gfG0u1eV1wh3JTw_HkhgKLk,49
113
- isar-1.25.1.dist-info/top_level.txt,sha256=UwIML2RtuQKCyJJkatcSnyp6-ldDjboB9k9JgKipO-U,21
114
- isar-1.25.1.dist-info/RECORD,,
110
+ isar-1.25.3.dist-info/LICENSE,sha256=3fc2-ebLwHWwzfQbulGNRdcNob3SBQeCfEVUDYxsuqw,14058
111
+ isar-1.25.3.dist-info/METADATA,sha256=vr0jDbMJpedOe28_CMWh5-5aEPkbjEKhBQh61sdPFa0,30578
112
+ isar-1.25.3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
113
+ isar-1.25.3.dist-info/entry_points.txt,sha256=TFam7uNNw7J0iiDYzsH2gfG0u1eV1wh3JTw_HkhgKLk,49
114
+ isar-1.25.3.dist-info/top_level.txt,sha256=UwIML2RtuQKCyJJkatcSnyp6-ldDjboB9k9JgKipO-U,21
115
+ isar-1.25.3.dist-info/RECORD,,
@@ -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
- )
@@ -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]
File without changes
File without changes