standardbots 2.0.0.dev1760378411__py3-none-any.whl → 2.0.0.dev1768505129__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.
@@ -833,6 +833,49 @@ class Default:
833
833
  self._request_manager = request_manager
834
834
 
835
835
 
836
+ def list_global_spaces(
837
+ self,
838
+ ) -> Response[
839
+ Union[
840
+ models.SpacesPaginatedResponse,
841
+ models.ErrorResponse,
842
+ None
843
+ ],
844
+ models.SpacesPaginatedResponse
845
+ ]:
846
+ """
847
+ List Global Spaces
848
+ """
849
+ path = "/api/v1/space/globals"
850
+ try:
851
+ response = self._request_manager.request(
852
+ "GET",
853
+ path,
854
+ headers=self._request_manager.json_headers(),
855
+ )
856
+ parsed = None
857
+ if response.status == 200:
858
+ parsed = models.parse_spaces_paginated_response(json.loads(response.data))
859
+
860
+ is_user_error = response.status >= 400 and response.status <= 500
861
+ is_unavailable = response.status == 503
862
+ if parsed is None and (is_user_error or is_unavailable):
863
+ parsed = models.parse_error_response(json.loads(response.data))
864
+
865
+ return Response(
866
+ parsed,
867
+ response.status,
868
+ response
869
+ )
870
+ except urllib3.exceptions.MaxRetryError:
871
+ return Response(
872
+ models.ErrorResponse(
873
+ error=models.ErrorEnum.InternalServerError,
874
+ message="Connection Refused"
875
+ ),
876
+ 503,
877
+ None
878
+ )
836
879
  def list_planes(
837
880
  self,
838
881
  limit: int,
@@ -889,6 +932,7 @@ class Default:
889
932
 
890
933
  def get_state(
891
934
  self,
935
+ client_id: str,
892
936
  ) -> Response[
893
937
  Union[
894
938
  models.TeleopState,
@@ -906,6 +950,9 @@ class Default:
906
950
  "GET",
907
951
  path,
908
952
  headers=self._request_manager.json_headers(),
953
+ fields={
954
+ "client_id": models.serialize_str(client_id),
955
+ }
909
956
  )
910
957
  parsed = None
911
958
  if response.status == 200:
@@ -1022,6 +1069,8 @@ class Default:
1022
1069
  )
1023
1070
  def start_teleop(
1024
1071
  self,
1072
+ client_id: str,
1073
+ secondary_client_id: str,
1025
1074
  ) -> Response[
1026
1075
  Union[
1027
1076
  models.StartTeleopResponse,
@@ -1039,6 +1088,10 @@ class Default:
1039
1088
  "POST",
1040
1089
  path,
1041
1090
  headers=self._request_manager.json_headers(),
1091
+ fields={
1092
+ "client_id": models.serialize_str(client_id),
1093
+ "secondary_client_id": models.serialize_str(secondary_client_id),
1094
+ }
1042
1095
  )
1043
1096
  parsed = None
1044
1097
  if response.status == 200:
@@ -1065,6 +1118,9 @@ class Default:
1065
1118
  )
1066
1119
  def stop_teleop(
1067
1120
  self,
1121
+ client_id: str,
1122
+ secondary_client_id: str,
1123
+ force: bool,
1068
1124
  ) -> Response[
1069
1125
  Union[
1070
1126
  models.StopTeleopResponse,
@@ -1082,6 +1138,11 @@ class Default:
1082
1138
  "POST",
1083
1139
  path,
1084
1140
  headers=self._request_manager.json_headers(),
1141
+ fields={
1142
+ "client_id": models.serialize_str(client_id),
1143
+ "secondary_client_id": models.serialize_str(secondary_client_id),
1144
+ "force": models.serialize_bool(force),
1145
+ }
1085
1146
  )
1086
1147
  parsed = None
1087
1148
  if response.status == 200:
@@ -1118,7 +1179,7 @@ class Default:
1118
1179
  models.TeleopState
1119
1180
  ]:
1120
1181
  """
1121
- Set ratio control parameters
1182
+ Set ratio control parameters for movement and rotation
1122
1183
  """
1123
1184
  path = "/api/v1/teleop/set-ratio-control"
1124
1185
  try:
@@ -1137,6 +1198,186 @@ class Default:
1137
1198
  if parsed is None and (is_user_error or is_unavailable):
1138
1199
  parsed = models.parse_error_response(json.loads(response.data))
1139
1200
 
1201
+ return Response(
1202
+ parsed,
1203
+ response.status,
1204
+ response
1205
+ )
1206
+ except urllib3.exceptions.MaxRetryError:
1207
+ return Response(
1208
+ models.ErrorResponse(
1209
+ error=models.ErrorEnum.InternalServerError,
1210
+ message="Connection Refused"
1211
+ ),
1212
+ 503,
1213
+ None
1214
+ )
1215
+ def set_gripper_bounds(
1216
+ self,
1217
+ body: models.SetGripperBoundsRequest,
1218
+ ) -> Response[
1219
+ Union[
1220
+ models.TeleopState,
1221
+ models.ErrorResponse,
1222
+ None
1223
+ ],
1224
+ models.TeleopState
1225
+ ]:
1226
+ """
1227
+ Set gripper bounds for primary and secondary bots
1228
+ """
1229
+ path = "/api/v1/teleop/set-gripper-bounds"
1230
+ try:
1231
+ response = self._request_manager.request(
1232
+ "POST",
1233
+ path,
1234
+ headers=self._request_manager.json_headers(),
1235
+ body=json.dumps(models.serialize_set_gripper_bounds_request(body)),
1236
+ )
1237
+ parsed = None
1238
+ if response.status == 200:
1239
+ parsed = models.parse_teleop_state(json.loads(response.data))
1240
+
1241
+ is_user_error = response.status >= 400 and response.status <= 500
1242
+ is_unavailable = response.status == 503
1243
+ if parsed is None and (is_user_error or is_unavailable):
1244
+ parsed = models.parse_error_response(json.loads(response.data))
1245
+
1246
+ return Response(
1247
+ parsed,
1248
+ response.status,
1249
+ response
1250
+ )
1251
+ except urllib3.exceptions.MaxRetryError:
1252
+ return Response(
1253
+ models.ErrorResponse(
1254
+ error=models.ErrorEnum.InternalServerError,
1255
+ message="Connection Refused"
1256
+ ),
1257
+ 503,
1258
+ None
1259
+ )
1260
+ def set_robot_frame(
1261
+ self,
1262
+ body: models.SetRobotFrameRequest,
1263
+ ) -> Response[
1264
+ Union[
1265
+ models.TeleopState,
1266
+ models.ErrorResponse,
1267
+ None
1268
+ ],
1269
+ models.TeleopState
1270
+ ]:
1271
+ """
1272
+ Set robot frame
1273
+ """
1274
+ path = "/api/v1/teleop/set-robot-frame"
1275
+ try:
1276
+ response = self._request_manager.request(
1277
+ "POST",
1278
+ path,
1279
+ headers=self._request_manager.json_headers(),
1280
+ body=json.dumps(models.serialize_set_robot_frame_request(body)),
1281
+ )
1282
+ parsed = None
1283
+ if response.status == 200:
1284
+ parsed = models.parse_teleop_state(json.loads(response.data))
1285
+
1286
+ is_user_error = response.status >= 400 and response.status <= 500
1287
+ is_unavailable = response.status == 503
1288
+ if parsed is None and (is_user_error or is_unavailable):
1289
+ parsed = models.parse_error_response(json.loads(response.data))
1290
+
1291
+ return Response(
1292
+ parsed,
1293
+ response.status,
1294
+ response
1295
+ )
1296
+ except urllib3.exceptions.MaxRetryError:
1297
+ return Response(
1298
+ models.ErrorResponse(
1299
+ error=models.ErrorEnum.InternalServerError,
1300
+ message="Connection Refused"
1301
+ ),
1302
+ 503,
1303
+ None
1304
+ )
1305
+ def set_bolt_head_position(
1306
+ self,
1307
+ body: models.SetBoltHeadPositionRequest,
1308
+ ) -> Response[
1309
+ Union[
1310
+ models.TeleopState,
1311
+ models.ErrorResponse,
1312
+ None
1313
+ ],
1314
+ models.TeleopState
1315
+ ]:
1316
+ """
1317
+ Set static bolt head position
1318
+ """
1319
+ path = "/api/v1/teleop/set-bolt-head-position"
1320
+ try:
1321
+ response = self._request_manager.request(
1322
+ "POST",
1323
+ path,
1324
+ headers=self._request_manager.json_headers(),
1325
+ body=json.dumps(models.serialize_set_bolt_head_position_request(body)),
1326
+ )
1327
+ parsed = None
1328
+ if response.status == 200:
1329
+ parsed = models.parse_teleop_state(json.loads(response.data))
1330
+
1331
+ is_user_error = response.status >= 400 and response.status <= 500
1332
+ is_unavailable = response.status == 503
1333
+ if parsed is None and (is_user_error or is_unavailable):
1334
+ parsed = models.parse_error_response(json.loads(response.data))
1335
+
1336
+ return Response(
1337
+ parsed,
1338
+ response.status,
1339
+ response
1340
+ )
1341
+ except urllib3.exceptions.MaxRetryError:
1342
+ return Response(
1343
+ models.ErrorResponse(
1344
+ error=models.ErrorEnum.InternalServerError,
1345
+ message="Connection Refused"
1346
+ ),
1347
+ 503,
1348
+ None
1349
+ )
1350
+ def set_filter_type(
1351
+ self,
1352
+ body: models.SetFilterTypeRequest,
1353
+ ) -> Response[
1354
+ Union[
1355
+ models.TeleopState,
1356
+ models.ErrorResponse,
1357
+ None
1358
+ ],
1359
+ models.TeleopState
1360
+ ]:
1361
+ """
1362
+ Set filter type
1363
+ """
1364
+ path = "/api/v1/teleop/set-filter-type"
1365
+ try:
1366
+ response = self._request_manager.request(
1367
+ "POST",
1368
+ path,
1369
+ headers=self._request_manager.json_headers(),
1370
+ body=json.dumps(models.serialize_set_filter_type_request(body)),
1371
+ )
1372
+ parsed = None
1373
+ if response.status == 200:
1374
+ parsed = models.parse_teleop_state(json.loads(response.data))
1375
+
1376
+ is_user_error = response.status >= 400 and response.status <= 500
1377
+ is_unavailable = response.status == 503
1378
+ if parsed is None and (is_user_error or is_unavailable):
1379
+ parsed = models.parse_error_response(json.loads(response.data))
1380
+
1140
1381
  return Response(
1141
1382
  parsed,
1142
1383
  response.status,
@@ -1781,6 +2022,55 @@ class Camera:
1781
2022
  )
1782
2023
  parsed = None
1783
2024
 
2025
+ is_user_error = response.status >= 400 and response.status <= 500
2026
+ is_unavailable = response.status == 503
2027
+ if parsed is None and (is_user_error or is_unavailable):
2028
+ parsed = models.parse_error_response(json.loads(response.data))
2029
+
2030
+ return Response(
2031
+ parsed,
2032
+ response.status,
2033
+ response
2034
+ )
2035
+ except urllib3.exceptions.MaxRetryError:
2036
+ return Response(
2037
+ models.ErrorResponse(
2038
+ error=models.ErrorEnum.InternalServerError,
2039
+ message="Connection Refused"
2040
+ ),
2041
+ 503,
2042
+ None
2043
+ )
2044
+ def get_camera_frame(
2045
+ self,
2046
+ camera_id: str,
2047
+ stream_name: str,
2048
+ ) -> Response[
2049
+ Union[
2050
+ models.CameraFrameResponse,
2051
+ models.ErrorResponse,
2052
+ None
2053
+ ],
2054
+ models.CameraFrameResponse
2055
+ ]:
2056
+ """
2057
+ Retrieve the latest frame from a specific camera by camera ID using the messenger GetFrame method. Returns a JSON object containing the frame as a base64 string in JPEG format, along with frame metadata including timestamp, camera ID, and stream name.
2058
+ """
2059
+ path = "/api/v1/camera/{camera_id}/frame"
2060
+ path = path.replace("{camera_id}", str(camera_id))
2061
+ try:
2062
+ response = self._request_manager.request(
2063
+ "GET",
2064
+ path,
2065
+ headers=self._request_manager.json_headers(),
2066
+ fields={
2067
+ "stream_name": models.serialize_str(stream_name),
2068
+ }
2069
+ )
2070
+ parsed = None
2071
+ if response.status == 200:
2072
+ parsed = models.parse_camera_frame_response(json.loads(response.data))
2073
+
1784
2074
  is_user_error = response.status >= 400 and response.status <= 500
1785
2075
  is_unavailable = response.status == 503
1786
2076
  if parsed is None and (is_user_error or is_unavailable):