standardbots 2.20241120.1__py3-none-any.whl → 2.20250128.2__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 standardbots might be problematic. Click here for more details.
- standardbots/auto_generated/apis.py +166 -65
- standardbots/auto_generated/models.py +1903 -466
- {standardbots-2.20241120.1.dist-info → standardbots-2.20250128.2.dist-info}/METADATA +9 -2
- standardbots-2.20250128.2.dist-info/RECORD +11 -0
- {standardbots-2.20241120.1.dist-info → standardbots-2.20250128.2.dist-info}/WHEEL +1 -1
- {standardbots-2.20241120.1.dist-info → standardbots-2.20250128.2.dist-info}/top_level.txt +1 -0
- tests/fixtures/__init__.py +0 -0
- tests/fixtures/client_fixt.py +25 -0
- tests/fixtures/routines_fixt.py +48 -0
- standardbots-2.20241120.1.dist-info/RECORD +0 -8
|
@@ -76,6 +76,55 @@ class RequestManager:
|
|
|
76
76
|
|
|
77
77
|
class Default:
|
|
78
78
|
_request_manager: RequestManager
|
|
79
|
+
class Calibration:
|
|
80
|
+
def __init__(self, request_manager: RequestManager):
|
|
81
|
+
self._request_manager = request_manager
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def get_active_calibration(
|
|
85
|
+
self,
|
|
86
|
+
) -> Response[
|
|
87
|
+
Union[
|
|
88
|
+
models.ActiveCalibrationResponse,
|
|
89
|
+
models.ErrorResponse,
|
|
90
|
+
None
|
|
91
|
+
],
|
|
92
|
+
models.ActiveCalibrationResponse
|
|
93
|
+
]:
|
|
94
|
+
"""
|
|
95
|
+
Get the active calibration for the robot.
|
|
96
|
+
|
|
97
|
+
"""
|
|
98
|
+
path = "/api/v1/calibration/active"
|
|
99
|
+
try:
|
|
100
|
+
response = self._request_manager.request(
|
|
101
|
+
"GET",
|
|
102
|
+
path,
|
|
103
|
+
headers=self._request_manager.json_headers(),
|
|
104
|
+
)
|
|
105
|
+
parsed = None
|
|
106
|
+
if response.status == 200:
|
|
107
|
+
parsed = models.parse_active_calibration_response(json.loads(response.data))
|
|
108
|
+
|
|
109
|
+
is_user_error = response.status >= 400 and response.status <= 500
|
|
110
|
+
is_unavailable = response.status == 503
|
|
111
|
+
if parsed is None and (is_user_error or is_unavailable):
|
|
112
|
+
parsed = models.parse_error_response(json.loads(response.data))
|
|
113
|
+
|
|
114
|
+
return Response(
|
|
115
|
+
parsed,
|
|
116
|
+
response.status,
|
|
117
|
+
response
|
|
118
|
+
)
|
|
119
|
+
except urllib3.exceptions.MaxRetryError:
|
|
120
|
+
return Response(
|
|
121
|
+
models.ErrorResponse(
|
|
122
|
+
error=models.ErrorEnum.InternalServerError,
|
|
123
|
+
message="Connection Refused"
|
|
124
|
+
),
|
|
125
|
+
503,
|
|
126
|
+
None
|
|
127
|
+
)
|
|
79
128
|
class Equipment:
|
|
80
129
|
def __init__(self, request_manager: RequestManager):
|
|
81
130
|
self._request_manager = request_manager
|
|
@@ -188,7 +237,7 @@ class Default:
|
|
|
188
237
|
return self.control_gripper(
|
|
189
238
|
body=models.GripperCommandRequest(
|
|
190
239
|
kind=models.GripperKindEnum.DhCgi,
|
|
191
|
-
|
|
240
|
+
dh_cgi=models.DHCGIGripperCommandRequest(
|
|
192
241
|
target_diameter, target_force, target_speed
|
|
193
242
|
),
|
|
194
243
|
),
|
|
@@ -382,12 +431,14 @@ class Default:
|
|
|
382
431
|
None
|
|
383
432
|
)
|
|
384
433
|
|
|
434
|
+
calibration: Calibration
|
|
385
435
|
equipment: Equipment
|
|
386
436
|
sensors: Sensors
|
|
387
437
|
space: Space
|
|
388
438
|
|
|
389
439
|
def __init__(self, request_manager: RequestManager):
|
|
390
440
|
self._request_manager = request_manager
|
|
441
|
+
self.calibration = Default.Calibration(request_manager)
|
|
391
442
|
self.equipment = Default.Equipment(request_manager)
|
|
392
443
|
self.sensors = Default.Sensors(request_manager)
|
|
393
444
|
self.space = Default.Space(request_manager)
|
|
@@ -713,7 +764,7 @@ class Camera:
|
|
|
713
764
|
None
|
|
714
765
|
]:
|
|
715
766
|
"""
|
|
716
|
-
Retrieve the latest RGB frame from the camera.
|
|
767
|
+
Retrieve the latest RGB frame from the camera. In JPEG format.
|
|
717
768
|
"""
|
|
718
769
|
path = "/api/v1/camera/frame/rgb"
|
|
719
770
|
try:
|
|
@@ -932,6 +983,113 @@ class Faults:
|
|
|
932
983
|
self._request_manager = request_manager
|
|
933
984
|
self.user_faults = Faults.UserFaults(request_manager)
|
|
934
985
|
|
|
986
|
+
class General:
|
|
987
|
+
_request_manager: RequestManager
|
|
988
|
+
class BotIdentity:
|
|
989
|
+
def __init__(self, request_manager: RequestManager):
|
|
990
|
+
self._request_manager = request_manager
|
|
991
|
+
|
|
992
|
+
|
|
993
|
+
def bot_identity(
|
|
994
|
+
self,
|
|
995
|
+
) -> Response[
|
|
996
|
+
Union[
|
|
997
|
+
models.BotIdentityData,
|
|
998
|
+
models.ErrorResponse,
|
|
999
|
+
None
|
|
1000
|
+
],
|
|
1001
|
+
models.BotIdentityData
|
|
1002
|
+
]:
|
|
1003
|
+
"""
|
|
1004
|
+
Get information about the robot's identity.
|
|
1005
|
+
"""
|
|
1006
|
+
path = "/api/v1/identity/bot_identity"
|
|
1007
|
+
try:
|
|
1008
|
+
response = self._request_manager.request(
|
|
1009
|
+
"GET",
|
|
1010
|
+
path,
|
|
1011
|
+
headers=self._request_manager.json_headers(),
|
|
1012
|
+
)
|
|
1013
|
+
parsed = None
|
|
1014
|
+
if response.status == 200:
|
|
1015
|
+
parsed = models.parse_bot_identity_data(json.loads(response.data))
|
|
1016
|
+
|
|
1017
|
+
is_user_error = response.status >= 400 and response.status <= 500
|
|
1018
|
+
is_unavailable = response.status == 503
|
|
1019
|
+
if parsed is None and (is_user_error or is_unavailable):
|
|
1020
|
+
parsed = models.parse_error_response(json.loads(response.data))
|
|
1021
|
+
|
|
1022
|
+
return Response(
|
|
1023
|
+
parsed,
|
|
1024
|
+
response.status,
|
|
1025
|
+
response
|
|
1026
|
+
)
|
|
1027
|
+
except urllib3.exceptions.MaxRetryError:
|
|
1028
|
+
return Response(
|
|
1029
|
+
models.ErrorResponse(
|
|
1030
|
+
error=models.ErrorEnum.InternalServerError,
|
|
1031
|
+
message="Connection Refused"
|
|
1032
|
+
),
|
|
1033
|
+
503,
|
|
1034
|
+
None
|
|
1035
|
+
)
|
|
1036
|
+
class Joints:
|
|
1037
|
+
def __init__(self, request_manager: RequestManager):
|
|
1038
|
+
self._request_manager = request_manager
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
def get_joints_state(
|
|
1042
|
+
self,
|
|
1043
|
+
) -> Response[
|
|
1044
|
+
Union[
|
|
1045
|
+
models.JointsStateResponse,
|
|
1046
|
+
models.ErrorResponse,
|
|
1047
|
+
None
|
|
1048
|
+
],
|
|
1049
|
+
models.JointsStateResponse
|
|
1050
|
+
]:
|
|
1051
|
+
"""
|
|
1052
|
+
Retrieves information about the state of each joint
|
|
1053
|
+
"""
|
|
1054
|
+
path = "/api/v1/joints"
|
|
1055
|
+
try:
|
|
1056
|
+
response = self._request_manager.request(
|
|
1057
|
+
"GET",
|
|
1058
|
+
path,
|
|
1059
|
+
headers=self._request_manager.json_headers(),
|
|
1060
|
+
)
|
|
1061
|
+
parsed = None
|
|
1062
|
+
if response.status == 200:
|
|
1063
|
+
parsed = models.parse_joints_state_response(json.loads(response.data))
|
|
1064
|
+
|
|
1065
|
+
is_user_error = response.status >= 400 and response.status <= 500
|
|
1066
|
+
is_unavailable = response.status == 503
|
|
1067
|
+
if parsed is None and (is_user_error or is_unavailable):
|
|
1068
|
+
parsed = models.parse_error_response(json.loads(response.data))
|
|
1069
|
+
|
|
1070
|
+
return Response(
|
|
1071
|
+
parsed,
|
|
1072
|
+
response.status,
|
|
1073
|
+
response
|
|
1074
|
+
)
|
|
1075
|
+
except urllib3.exceptions.MaxRetryError:
|
|
1076
|
+
return Response(
|
|
1077
|
+
models.ErrorResponse(
|
|
1078
|
+
error=models.ErrorEnum.InternalServerError,
|
|
1079
|
+
message="Connection Refused"
|
|
1080
|
+
),
|
|
1081
|
+
503,
|
|
1082
|
+
None
|
|
1083
|
+
)
|
|
1084
|
+
|
|
1085
|
+
bot_identity: BotIdentity
|
|
1086
|
+
joints: Joints
|
|
1087
|
+
|
|
1088
|
+
def __init__(self, request_manager: RequestManager):
|
|
1089
|
+
self._request_manager = request_manager
|
|
1090
|
+
self.bot_identity = General.BotIdentity(request_manager)
|
|
1091
|
+
self.joints = General.Joints(request_manager)
|
|
1092
|
+
|
|
935
1093
|
class ChatGPT:
|
|
936
1094
|
_request_manager: RequestManager
|
|
937
1095
|
class Data:
|
|
@@ -1136,63 +1294,6 @@ class IO:
|
|
|
1136
1294
|
self.control = IO.Control(request_manager)
|
|
1137
1295
|
self.status = IO.Status(request_manager)
|
|
1138
1296
|
|
|
1139
|
-
class General:
|
|
1140
|
-
_request_manager: RequestManager
|
|
1141
|
-
class Joints:
|
|
1142
|
-
def __init__(self, request_manager: RequestManager):
|
|
1143
|
-
self._request_manager = request_manager
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
def get_joints_state(
|
|
1147
|
-
self,
|
|
1148
|
-
) -> Response[
|
|
1149
|
-
Union[
|
|
1150
|
-
models.JointsStateResponse,
|
|
1151
|
-
models.ErrorResponse,
|
|
1152
|
-
None
|
|
1153
|
-
],
|
|
1154
|
-
models.JointsStateResponse
|
|
1155
|
-
]:
|
|
1156
|
-
"""
|
|
1157
|
-
Retrieves information about the state of each joint
|
|
1158
|
-
"""
|
|
1159
|
-
path = "/api/v1/joints"
|
|
1160
|
-
try:
|
|
1161
|
-
response = self._request_manager.request(
|
|
1162
|
-
"GET",
|
|
1163
|
-
path,
|
|
1164
|
-
headers=self._request_manager.json_headers(),
|
|
1165
|
-
)
|
|
1166
|
-
parsed = None
|
|
1167
|
-
if response.status == 200:
|
|
1168
|
-
parsed = models.parse_joints_state_response(json.loads(response.data))
|
|
1169
|
-
|
|
1170
|
-
is_user_error = response.status >= 400 and response.status <= 500
|
|
1171
|
-
is_unavailable = response.status == 503
|
|
1172
|
-
if parsed is None and (is_user_error or is_unavailable):
|
|
1173
|
-
parsed = models.parse_error_response(json.loads(response.data))
|
|
1174
|
-
|
|
1175
|
-
return Response(
|
|
1176
|
-
parsed,
|
|
1177
|
-
response.status,
|
|
1178
|
-
response
|
|
1179
|
-
)
|
|
1180
|
-
except urllib3.exceptions.MaxRetryError:
|
|
1181
|
-
return Response(
|
|
1182
|
-
models.ErrorResponse(
|
|
1183
|
-
error=models.ErrorEnum.InternalServerError,
|
|
1184
|
-
message="Connection Refused"
|
|
1185
|
-
),
|
|
1186
|
-
503,
|
|
1187
|
-
None
|
|
1188
|
-
)
|
|
1189
|
-
|
|
1190
|
-
joints: Joints
|
|
1191
|
-
|
|
1192
|
-
def __init__(self, request_manager: RequestManager):
|
|
1193
|
-
self._request_manager = request_manager
|
|
1194
|
-
self.joints = General.Joints(request_manager)
|
|
1195
|
-
|
|
1196
1297
|
class Poses:
|
|
1197
1298
|
_request_manager: RequestManager
|
|
1198
1299
|
class ConstructPose:
|
|
@@ -1662,15 +1763,15 @@ class Recovery:
|
|
|
1662
1763
|
self,
|
|
1663
1764
|
) -> Response[
|
|
1664
1765
|
Union[
|
|
1665
|
-
models.
|
|
1766
|
+
models.FailureStateResponse,
|
|
1666
1767
|
models.ErrorResponse,
|
|
1667
1768
|
models.ErrorResponse,
|
|
1668
1769
|
None
|
|
1669
1770
|
],
|
|
1670
|
-
models.
|
|
1771
|
+
models.FailureStateResponse
|
|
1671
1772
|
]:
|
|
1672
1773
|
"""
|
|
1673
|
-
|
|
1774
|
+
Attempts to recover the robot from a fault state. Inspect the response to determine if additional recovery actions are required.
|
|
1674
1775
|
|
|
1675
1776
|
"""
|
|
1676
1777
|
path = "/api/v1/recovery/recover"
|
|
@@ -1682,7 +1783,7 @@ class Recovery:
|
|
|
1682
1783
|
)
|
|
1683
1784
|
parsed = None
|
|
1684
1785
|
if response.status == 200:
|
|
1685
|
-
parsed = models.
|
|
1786
|
+
parsed = models.parse_failure_state_response(json.loads(response.data))
|
|
1686
1787
|
if response.status == 400:
|
|
1687
1788
|
parsed = models.parse_error_response(json.loads(response.data))
|
|
1688
1789
|
|
|
@@ -2493,9 +2594,9 @@ class StandardBotsRobot(Default):
|
|
|
2493
2594
|
movement: Movement
|
|
2494
2595
|
camera: Camera
|
|
2495
2596
|
faults: Faults
|
|
2597
|
+
general: General
|
|
2496
2598
|
chat_gpt: ChatGPT
|
|
2497
2599
|
io: IO
|
|
2498
|
-
general: General
|
|
2499
2600
|
poses: Poses
|
|
2500
2601
|
recovery: Recovery
|
|
2501
2602
|
ros: ROS
|
|
@@ -2517,9 +2618,9 @@ class StandardBotsRobot(Default):
|
|
|
2517
2618
|
self.movement = Movement(self._request_manager)
|
|
2518
2619
|
self.camera = Camera(self._request_manager)
|
|
2519
2620
|
self.faults = Faults(self._request_manager)
|
|
2621
|
+
self.general = General(self._request_manager)
|
|
2520
2622
|
self.chat_gpt = ChatGPT(self._request_manager)
|
|
2521
2623
|
self.io = IO(self._request_manager)
|
|
2522
|
-
self.general = General(self._request_manager)
|
|
2523
2624
|
self.poses = Poses(self._request_manager)
|
|
2524
2625
|
self.recovery = Recovery(self._request_manager)
|
|
2525
2626
|
self.ros = ROS(self._request_manager)
|