bosdyn-client 3.3.2__py3-none-any.whl → 4.0.1__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.
- bosdyn/client/__init__.py +5 -6
- bosdyn/client/area_callback_region_handler_base.py +19 -4
- bosdyn/client/area_callback_service_servicer.py +29 -1
- bosdyn/client/area_callback_service_utils.py +45 -51
- bosdyn/client/auth.py +13 -28
- bosdyn/client/autowalk.py +3 -0
- bosdyn/client/channel.py +23 -26
- bosdyn/client/command_line.py +64 -13
- bosdyn/client/common.py +4 -4
- bosdyn/client/data_acquisition.py +47 -6
- bosdyn/client/data_acquisition_plugin.py +12 -2
- bosdyn/client/data_acquisition_plugin_service.py +33 -2
- bosdyn/client/data_acquisition_store.py +38 -0
- bosdyn/client/data_buffer.py +22 -8
- bosdyn/client/data_chunk.py +1 -0
- bosdyn/client/directory_registration.py +1 -14
- bosdyn/client/exceptions.py +0 -4
- bosdyn/client/frame_helpers.py +3 -1
- bosdyn/client/gps/NMEAParser.py +189 -0
- bosdyn/client/gps/__init__.py +6 -0
- bosdyn/client/gps/aggregator_client.py +56 -0
- bosdyn/client/gps/gps_listener.py +153 -0
- bosdyn/client/gps/registration_client.py +48 -0
- bosdyn/client/graph_nav.py +50 -20
- bosdyn/client/image.py +20 -7
- bosdyn/client/image_service_helpers.py +14 -14
- bosdyn/client/lease.py +27 -22
- bosdyn/client/lease_validator.py +5 -5
- bosdyn/client/manipulation_api_client.py +1 -1
- bosdyn/client/map_processing.py +10 -5
- bosdyn/client/math_helpers.py +21 -11
- bosdyn/client/metrics_logging.py +147 -0
- bosdyn/client/network_compute_bridge_client.py +6 -0
- bosdyn/client/power.py +40 -0
- bosdyn/client/recording.py +3 -3
- bosdyn/client/robot.py +15 -16
- bosdyn/client/robot_command.py +341 -203
- bosdyn/client/robot_id.py +6 -5
- bosdyn/client/robot_state.py +6 -0
- bosdyn/client/sdk.py +5 -11
- bosdyn/client/server_util.py +11 -11
- bosdyn/client/service_customization_helpers.py +776 -64
- bosdyn/client/signals_helpers.py +105 -0
- bosdyn/client/spot_cam/compositor.py +6 -2
- bosdyn/client/spot_cam/ptz.py +24 -14
- bosdyn/client/spot_check.py +160 -0
- bosdyn/client/time_sync.py +5 -5
- bosdyn/client/units_helpers.py +39 -0
- bosdyn/client/util.py +100 -64
- bosdyn/client/world_object.py +5 -5
- {bosdyn_client-3.3.2.dist-info → bosdyn_client-4.0.1.dist-info}/METADATA +4 -3
- bosdyn_client-4.0.1.dist-info/RECORD +97 -0
- {bosdyn_client-3.3.2.dist-info → bosdyn_client-4.0.1.dist-info}/WHEEL +1 -1
- bosdyn/client/log_annotation.py +0 -359
- bosdyn_client-3.3.2.dist-info/RECORD +0 -90
- {bosdyn_client-3.3.2.dist-info → bosdyn_client-4.0.1.dist-info}/top_level.txt +0 -0
bosdyn/client/world_object.py
CHANGED
|
@@ -334,10 +334,10 @@ def send_add_mutation_requests(world_object_client, world_object_array):
|
|
|
334
334
|
Create and send an "add" mutation request for each world object in an array. Return a matching
|
|
335
335
|
array of the object id's that are assigned when the object is created, so that each object we add
|
|
336
336
|
can be identified and removed individually (if desired) later.
|
|
337
|
-
|
|
337
|
+
|
|
338
338
|
Args:
|
|
339
339
|
world_object_client (WorldObjectClient): Client for World Object service.
|
|
340
|
-
world_object_array (List):
|
|
340
|
+
world_object_array (List): List of objects to add.
|
|
341
341
|
Returns:
|
|
342
342
|
A List containing the object ids associated with the objects created.
|
|
343
343
|
"""
|
|
@@ -354,7 +354,7 @@ def send_delete_mutation_requests(world_object_client, delete_object_id_array):
|
|
|
354
354
|
"""
|
|
355
355
|
Create and send a "delete" mutation request for each world object successfully identified from a
|
|
356
356
|
given list of object id's.
|
|
357
|
-
|
|
357
|
+
|
|
358
358
|
Args:
|
|
359
359
|
world_object_client (WorldObjectClient): Client for World Object service.
|
|
360
360
|
delete_object_id_array (List): List of object id's to send delete requests for.
|
|
@@ -362,11 +362,11 @@ def send_delete_mutation_requests(world_object_client, delete_object_id_array):
|
|
|
362
362
|
world_objects = world_object_client.list_world_objects().world_objects
|
|
363
363
|
for obj in world_objects:
|
|
364
364
|
this_object_id = obj.id
|
|
365
|
-
if
|
|
365
|
+
if isinstance(delete_object_id_array, int):
|
|
366
366
|
delete_object_id_array = [delete_object_id_array]
|
|
367
367
|
for i in range(len(delete_object_id_array)):
|
|
368
368
|
delete_id = delete_object_id_array[i]
|
|
369
369
|
if this_object_id == delete_id:
|
|
370
370
|
del_req = make_delete_world_object_req(obj)
|
|
371
371
|
del_resp = world_object_client.mutate_world_objects(mutation_req=del_req)
|
|
372
|
-
continue
|
|
372
|
+
continue
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: bosdyn-client
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.1
|
|
4
4
|
Summary: Boston Dynamics API client code and interfaces
|
|
5
5
|
Home-page: https://dev.bostondynamics.com/
|
|
6
6
|
Author: Boston Dynamics
|
|
@@ -15,13 +15,14 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
15
15
|
Classifier: License :: Other/Proprietary License
|
|
16
16
|
Classifier: Operating System :: OS Independent
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
|
-
Requires-Dist: bosdyn-api (==
|
|
19
|
-
Requires-Dist: bosdyn-core (==
|
|
18
|
+
Requires-Dist: bosdyn-api (==4.0.1)
|
|
19
|
+
Requires-Dist: bosdyn-core (==4.0.1)
|
|
20
20
|
Requires-Dist: grpcio
|
|
21
21
|
Requires-Dist: pyjwt
|
|
22
22
|
Requires-Dist: numpy
|
|
23
23
|
Requires-Dist: Deprecated (~=1.2.10)
|
|
24
24
|
Requires-Dist: requests (>=2.26.0)
|
|
25
|
+
Requires-Dist: pynmea2 (>=1.16.0)
|
|
25
26
|
|
|
26
27
|
<!--
|
|
27
28
|
Copyright (c) 2023 Boston Dynamics, Inc. All rights reserved.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
bosdyn/__init__.py,sha256=CMQioQKK1NlMk3kZuY49b_Aw-JyvDeOtuqOCAul1I0s,330
|
|
2
|
+
bosdyn/client/__init__.py,sha256=EtinCbRF6c1BFlxRGFKGtcSSzYQQpBjnHTHOXBXxNLM,1312
|
|
3
|
+
bosdyn/client/__main__.py,sha256=g__h-0z_Q6yzuiXdHQQTh9AI3C2cSc3PocpvbLVwa3E,466
|
|
4
|
+
bosdyn/client/area_callback.py,sha256=nQnhJR8-f0PMq9uILpKhYitVuIZHl6VViUDndN2K4u8,6270
|
|
5
|
+
bosdyn/client/area_callback_region_handler_base.py,sha256=cr5SwGogXmuMbAbbMeHvQZQBflYyFTOCj7wrUOgsUHQ,16467
|
|
6
|
+
bosdyn/client/area_callback_service_runner.py,sha256=Rr30BV3TSXHQGcsUGlTa1F-noQDvgq6wv5XxQ_zTIa0,1869
|
|
7
|
+
bosdyn/client/area_callback_service_servicer.py,sha256=o1kYKV83Q-ud-_rmT17XTSqBdHqph_xYsgvvnpjsKtE,13229
|
|
8
|
+
bosdyn/client/area_callback_service_utils.py,sha256=R8ljJe8fPszMI6RyuGRyv_QGu63kw1yZAveZydlpERI,5858
|
|
9
|
+
bosdyn/client/arm_surface_contact.py,sha256=DRfPfsFEzfk6ufe080ViqasUefl2ZUtcvcNENgcf55k,3710
|
|
10
|
+
bosdyn/client/async_tasks.py,sha256=gEPev6_jaUCe-G5PqktMiMGb7ohDy0daunxzQD5jafg,5594
|
|
11
|
+
bosdyn/client/auth.py,sha256=YLo6jP0Ssl_Z6rHtTiPiKUNIweDRYub9w3iHdUe6n40,5302
|
|
12
|
+
bosdyn/client/auto_return.py,sha256=kqT1gaaneLYIPFVAFzpvTHRwa8NYYQ2OBf7wViBQudE,5598
|
|
13
|
+
bosdyn/client/autowalk.py,sha256=e57FcAC4fu2BPD57Yy4j1F8DPIPPic0Qt1E0UM-oZWo,5734
|
|
14
|
+
bosdyn/client/bddf.py,sha256=ok_2JcflSCQfcM25lpEgzKnkEJl0FDcJ16Bgo9Rjyzc,1763
|
|
15
|
+
bosdyn/client/bddf_download.py,sha256=oDztm-aS5J_ABLb-cxomNtwNPrdlnFp8hEuOMVxVRH4,7586
|
|
16
|
+
bosdyn/client/channel.py,sha256=vGnKCECjdkx-OKpGrXcspyTDQYa03jVwEm_fiarrXTQ,8710
|
|
17
|
+
bosdyn/client/command_line.py,sha256=RPjNveh-TkTn7jMnKFVvxxwBYW41EsAXwHqrGA0T22c,88999
|
|
18
|
+
bosdyn/client/common.py,sha256=ePmUB0YSPUBZ4Lg9bKKPt3ANzFSP6MUlKf8-OcUtbyQ,22501
|
|
19
|
+
bosdyn/client/data_acquisition.py,sha256=258-tESROKFEZev9rDr0X1v7TUUYF3iPlx4G4ode7kQ,15267
|
|
20
|
+
bosdyn/client/data_acquisition_helpers.py,sha256=ddhx9tQ5feo_qraOzkmut6ArVtZ9OySamPUIUzBKFr8,14837
|
|
21
|
+
bosdyn/client/data_acquisition_plugin.py,sha256=5IG2IYkL5FDPZhPRB8caoBjx34f63Eem5u5oZTHBaxo,6690
|
|
22
|
+
bosdyn/client/data_acquisition_plugin_service.py,sha256=rvm3GpHyCOVbvWNDXQnWy9mjZ4qejFEzfKuSweXkeJs,26955
|
|
23
|
+
bosdyn/client/data_acquisition_store.py,sha256=dvP1OfvvuMNRlV7X2az3UU8SfRVV-zUFfaWhcAkUc8U,14142
|
|
24
|
+
bosdyn/client/data_buffer.py,sha256=Ta-7CCoy_-StzXDm8cLIjvOnMDgKEzKFc9mcDmVkubc,26661
|
|
25
|
+
bosdyn/client/data_chunk.py,sha256=6xq9zqLD-JH72ZxzEQEKYqhXvb34TlcZoeqAYaXRxCw,1959
|
|
26
|
+
bosdyn/client/data_service.py,sha256=aKfXJCciJ2M2WZRKfdWiLS2n-UEKWSRkOgcTnArbc5o,5201
|
|
27
|
+
bosdyn/client/directory.py,sha256=jWBxnPzBJSrfr4fuLf2VuZGsxOo8Q5iX5tEw6Zx2VY0,4906
|
|
28
|
+
bosdyn/client/directory_registration.py,sha256=tO-OMVYrFr1tU3oVifoFcbjW_EIXWo6bdsdvS_Gr7RA,19101
|
|
29
|
+
bosdyn/client/docking.py,sha256=hYwZNIir3_pt-WvMFiXzMqDCwW8nA5H1BYOUD6_3-00,17596
|
|
30
|
+
bosdyn/client/door.py,sha256=dbBuGcuoZL3gRhxTQoQHKDlnzcML8ELBtQxCQqomYpo,3110
|
|
31
|
+
bosdyn/client/estop.py,sha256=-dy3SP6lcOryyTB_VXe0C_cFk-qK1TNJdSm9DKSz-MM,32073
|
|
32
|
+
bosdyn/client/exceptions.py,sha256=VQg5cSrzB9_pmFcUCbBaRF2QtBUKfdzpR94N3q2rNx0,5323
|
|
33
|
+
bosdyn/client/fault.py,sha256=ymo4M1Vy-bUasD8uOm1pxE1HnjheCds6qA9hZiJbAzY,6050
|
|
34
|
+
bosdyn/client/frame_helpers.py,sha256=ZJtGnJOZfXR_X0AQXDrcVqUMVOpSEKlwR59DyzwIOvQ,12514
|
|
35
|
+
bosdyn/client/graph_nav.py,sha256=uwKk6iGSnmjFywuS5JxGN_pX3ojP4Z0IMQDECBW54XE,66261
|
|
36
|
+
bosdyn/client/gripper_camera_param.py,sha256=QKkHrA08c-BRhyLHrE4pDdh8AGUytoq6OABZpqsvVB0,2631
|
|
37
|
+
bosdyn/client/image.py,sha256=7yyVPgU1o8VrUf0nop6hZaCyvgm3dEJ7SNbZFda2adE,21138
|
|
38
|
+
bosdyn/client/image_service_helpers.py,sha256=zTS38m5QiiMrZ01Xjy8qeubx1A8S88B4T6FDIjFsc1E,39399
|
|
39
|
+
bosdyn/client/inverse_kinematics.py,sha256=KBgvGdnt-JZJvDzbdJ72Kqw8RHoOsqKq_p9rQtvwuKo,1708
|
|
40
|
+
bosdyn/client/ir_enable_disable.py,sha256=6c5MAuO1Fj0RlVcjkP1vhs-qTLiOpM3RnD8F7_ik1Gw,2153
|
|
41
|
+
bosdyn/client/keepalive.py,sha256=C-Vf17-sSfAHq4cbuuVIh7JQM7NLzv2pRekjHJywfdU,13214
|
|
42
|
+
bosdyn/client/lease.py,sha256=-B698QATgRuddH_pc5YN2LhMkZDacZP1kkf1MeYjqec,45412
|
|
43
|
+
bosdyn/client/lease_resource_hierarchy.py,sha256=b_YpVCeiJwVQzAy1Xh5h-1HYjpbzZvmDZAcREGCOgBc,3070
|
|
44
|
+
bosdyn/client/lease_validator.py,sha256=Vo5-2mtfCh50i7MDXLf4NlOBOgqd28ynPp2FF7NNGx0,14505
|
|
45
|
+
bosdyn/client/license.py,sha256=mJRBtwo3UHUVXqAKq-3eBf35v9U_Za_P9lPRXF9q9Lk,1736
|
|
46
|
+
bosdyn/client/local_grid.py,sha256=YszM_pTmeGuGIwExgRwB76PXJciO6rZqfaL2RHLxAf0,3475
|
|
47
|
+
bosdyn/client/log_status.py,sha256=Om5S7RPS5y-lwCfumWPPocygpYmokT5J9A6ri44Q6co,12563
|
|
48
|
+
bosdyn/client/manipulation_api_client.py,sha256=bdTTqZk73m7l9bty9CNC9Bs-hTTRFEA_wDweMb4mLu4,4204
|
|
49
|
+
bosdyn/client/map_processing.py,sha256=SG2id4LlGpCbkPFlKsnxWqjmXshB9aChs6t-EqdwFf0,10281
|
|
50
|
+
bosdyn/client/math_helpers.py,sha256=yWGd4LW32KNXdaZ6TNIEWX-nriV72yBuawu37IjTtC4,47848
|
|
51
|
+
bosdyn/client/metrics_logging.py,sha256=9gjVK5Xu4JpOqMg4_tKMHd-XHOh--xaiU_OP9zcGOMs,6646
|
|
52
|
+
bosdyn/client/network_compute_bridge_client.py,sha256=L7RmgCRKiPBn3SVwIxCqP0hkEkhRhF5k5xz2BpC-Omk,7966
|
|
53
|
+
bosdyn/client/payload.py,sha256=12vZirEI4-gu9KPHsDg6MH0QCmnxbolWR1j81lvgfVw,2271
|
|
54
|
+
bosdyn/client/payload_registration.py,sha256=ilT-2W1iuCZImLeDlPLovPYg5HJCk7nLTHxod0Rn8nY,22316
|
|
55
|
+
bosdyn/client/point_cloud.py,sha256=EZO67eqzTEX31RPHBvWXhu2GSSM82BfNNoWALFv21Xk,8382
|
|
56
|
+
bosdyn/client/power.py,sha256=LLywcQX93WN-fsapE3bvZwW-c2lP9B4sjPegN7l86pI,27244
|
|
57
|
+
bosdyn/client/processors.py,sha256=Z-Djf_I_lhfokB-f_L0PewAY8J95LThdWVju1zJ2BaE,1275
|
|
58
|
+
bosdyn/client/ray_cast.py,sha256=Ca1yJo0aY6OmVAazb19fy44L-9LzcKVxr_fHt_EoQtg,4465
|
|
59
|
+
bosdyn/client/recording.py,sha256=4LQidgu2uwZS-SovodA5qt12OlftbIXk2CgBIzPFG1I,26017
|
|
60
|
+
bosdyn/client/robot.py,sha256=E9Gw2ntMHAI6yueev50NS7FANBymEvsh7xniF8S2jV4,30670
|
|
61
|
+
bosdyn/client/robot_command.py,sha256=SYEKys3GyF6H-Wyxp4Ix5mStlOGG4pHlLSuBT_6GxMc,107624
|
|
62
|
+
bosdyn/client/robot_id.py,sha256=0VZHG9hltwTLAm1_Bt26Xq1O6EROswqNwHvjY7kaplk,2482
|
|
63
|
+
bosdyn/client/robot_state.py,sha256=MSIIGivRY3j0mmCg_vOCCmANoQRNS-VIMTx6KXfn3fE,6284
|
|
64
|
+
bosdyn/client/sdk.py,sha256=u-DOSF-QEERYu0hxRXmfOpRhLCD6R-b5IqgfsqUaOcY,12759
|
|
65
|
+
bosdyn/client/server_util.py,sha256=nzpZijK_GclVK2Zf2g2KCe-2e49NEQbPgdz75fwafXc,10402
|
|
66
|
+
bosdyn/client/service_customization_helpers.py,sha256=mi_xkCNvJE7wX64WFoMAKiJQsUvS33LY8PrhiV8-95w,48357
|
|
67
|
+
bosdyn/client/signals_helpers.py,sha256=Sp91IrMxVU-PeH6TK2njzFCKmFMyshRJqNa4DYRMqDU,3682
|
|
68
|
+
bosdyn/client/spot_check.py,sha256=Jvlli3xTOzlrHE6OadLJ662zoUM87jUyQewGFOYM85o,21119
|
|
69
|
+
bosdyn/client/time_sync.py,sha256=AIkZrEVPcsfbtgZfyx2cL72hkEzTcLIm3bokGj1-kKM,21336
|
|
70
|
+
bosdyn/client/token_cache.py,sha256=Vwf9YfsR7pTyu1fLRzXrvDo9hG5GBJcen8Azlo_5_iA,3507
|
|
71
|
+
bosdyn/client/token_manager.py,sha256=FvDFCXKIiGXZNkagKZM41Ut8Q0ChlYHN3O61CzrqMF8,3144
|
|
72
|
+
bosdyn/client/units_helpers.py,sha256=5SAmL8vsnl06oGNjzb57fUkuUbGvtbeNdg4NgW0wYAY,1084
|
|
73
|
+
bosdyn/client/util.py,sha256=1Kj10p0jqS7opwDrAAx3adfIw1lJCB1OzSZYyfUlJH8,20029
|
|
74
|
+
bosdyn/client/world_object.py,sha256=KbFRkG3jqQEfRN6SmSv1_D6n_9yFVYwbfCUWQ7kYpio,18695
|
|
75
|
+
bosdyn/client/gps/NMEAParser.py,sha256=EMyEt7KJ3QvQpTqq8gwZ9ZIKV7RRGvjJnQyY067i9Q4,8048
|
|
76
|
+
bosdyn/client/gps/__init__.py,sha256=1qUAbnMKYlERYZvxtGz4ThjYef7Tx-ZBclLoVE_ecjU,265
|
|
77
|
+
bosdyn/client/gps/aggregator_client.py,sha256=z5iRAYyCIez7p0EzIqZg3NTJGzxXAy297iENrhaL7CQ,2380
|
|
78
|
+
bosdyn/client/gps/gps_listener.py,sha256=r08r1qCaLVoE1mcMOMyXWHywfKdTTNeFf7SOGpJBkl0,6181
|
|
79
|
+
bosdyn/client/gps/registration_client.py,sha256=LqDLl_Ezv3HNUr9R1B4n2hcMArmGwLgg1asCkGhe2WA,1901
|
|
80
|
+
bosdyn/client/resources/__init__.py,sha256=1qUAbnMKYlERYZvxtGz4ThjYef7Tx-ZBclLoVE_ecjU,265
|
|
81
|
+
bosdyn/client/resources/robot.pem,sha256=kWAr4xK29RtTVC_EhbwW2_NblIuecYqVudR2YIdTh84,1874
|
|
82
|
+
bosdyn/client/spot_cam/__init__.py,sha256=EZAvjRSla78A2iAENu-VJLbmwamNenTZPwQspQ5iyx8,790
|
|
83
|
+
bosdyn/client/spot_cam/audio.py,sha256=8DvUOhfHVYTOXqlQEny5qUjHvvDsijvJ_njqyNJWUrs,9845
|
|
84
|
+
bosdyn/client/spot_cam/compositor.py,sha256=pU3OcyrSX8RukXgTygOC-Eub-slBCxm05u97-b3oKaw,10570
|
|
85
|
+
bosdyn/client/spot_cam/health.py,sha256=HsmLOKVb7iM6bfbZye0UapPezL2naWo4yl_7HQDNGA4,4707
|
|
86
|
+
bosdyn/client/spot_cam/lighting.py,sha256=mEUK8EWs-NRTXzDTu5VSIYD6IfyiTkfMF82Y-agHZ5g,3089
|
|
87
|
+
bosdyn/client/spot_cam/lights_helper.py,sha256=VWhXwcZ1a5X6OQ6Fd1CzGGPdW4BNQ5j636BCn6t9F58,3963
|
|
88
|
+
bosdyn/client/spot_cam/media_log.py,sha256=CJJepePouHr1QoXuev8oJSMhA-JUYpcm6IBUq4k-Bl4,10379
|
|
89
|
+
bosdyn/client/spot_cam/network.py,sha256=W7z91ERPzba3BCK23jio8byDjVr6kYnucQ9zKg9BqUA,3023
|
|
90
|
+
bosdyn/client/spot_cam/power.py,sha256=HS3nJF8hXq9m1JziOIwLHGLtlNMyLgewWBgs-mRZmTM,5181
|
|
91
|
+
bosdyn/client/spot_cam/ptz.py,sha256=8e6fA07aGnymSXV2MB_QBx0Pv4PSAMOihxq1jyoinDU,10815
|
|
92
|
+
bosdyn/client/spot_cam/streamquality.py,sha256=hQzVPdKnzVT91fc8E8AmNqhAPgddt0XE2tzNQD6QefQ,6411
|
|
93
|
+
bosdyn/client/spot_cam/version.py,sha256=R82eyCAY9PfZqbN8D6hNzSeZatpgpsFr995dRt1Mbe0,2856
|
|
94
|
+
bosdyn_client-4.0.1.dist-info/METADATA,sha256=-nVCOAMJSl7H9rk0k8SI83Gf52rvbVN630HU1DnAvQ0,3938
|
|
95
|
+
bosdyn_client-4.0.1.dist-info/WHEEL,sha256=AtBG6SXL3KF_v0NxLf0ehyVOh0cold-JbJYXNGorC6Q,92
|
|
96
|
+
bosdyn_client-4.0.1.dist-info/top_level.txt,sha256=an2OWgx1ej2jFjmBjPWNQ68ZglvUfKhmXWW-WhTtDmA,7
|
|
97
|
+
bosdyn_client-4.0.1.dist-info/RECORD,,
|
bosdyn/client/log_annotation.py
DELETED
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2023 Boston Dynamics, Inc. All rights reserved.
|
|
2
|
-
#
|
|
3
|
-
# Downloading, reproducing, distributing or otherwise using the SDK Software
|
|
4
|
-
# is subject to the terms and conditions of the Boston Dynamics Software
|
|
5
|
-
# Development Kit License (20191101-BDSDK-SL).
|
|
6
|
-
|
|
7
|
-
"""Client for the log-annotation service (DEPRECATED).
|
|
8
|
-
|
|
9
|
-
The log-annotation service is deprecated and will be removed in a later release.
|
|
10
|
-
Instead, please use the data_buffer service going forward.
|
|
11
|
-
"""
|
|
12
|
-
|
|
13
|
-
import logging
|
|
14
|
-
import random
|
|
15
|
-
import string
|
|
16
|
-
import struct
|
|
17
|
-
import sys
|
|
18
|
-
import threading
|
|
19
|
-
import time
|
|
20
|
-
import traceback
|
|
21
|
-
from queue import Queue
|
|
22
|
-
|
|
23
|
-
from deprecated.sphinx import deprecated
|
|
24
|
-
|
|
25
|
-
import bosdyn.api.log_annotation_pb2 as log_annotation_protos
|
|
26
|
-
import bosdyn.api.log_annotation_service_pb2_grpc as log_annotation_service
|
|
27
|
-
from bosdyn import util as core_util
|
|
28
|
-
from bosdyn.client import time_sync
|
|
29
|
-
from bosdyn.client.common import BaseClient, common_header_errors
|
|
30
|
-
from bosdyn.client.exceptions import Error, RpcError, ServerError
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class InvalidArgument(Error):
|
|
34
|
-
"""A given argument could not be used."""
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
@deprecated(reason='The log-annotation client and service have been replaced by data_buffer.',
|
|
38
|
-
version='2.1.0', action="always")
|
|
39
|
-
class LogAnnotationClient(BaseClient):
|
|
40
|
-
"""A client for adding annotations to robot logs."""
|
|
41
|
-
|
|
42
|
-
default_service_name = 'log-annotation'
|
|
43
|
-
service_type = 'bosdyn.api.LogAnnotationService'
|
|
44
|
-
|
|
45
|
-
def __init__(self):
|
|
46
|
-
super(LogAnnotationClient, self).__init__(log_annotation_service.LogAnnotationServiceStub)
|
|
47
|
-
self.log_tick_schemas = {}
|
|
48
|
-
self._timesync_endpoint = None
|
|
49
|
-
|
|
50
|
-
def update_from(self, other):
|
|
51
|
-
super(LogAnnotationClient, self).update_from(other)
|
|
52
|
-
|
|
53
|
-
# Grab a timesync endpoint if it is available.
|
|
54
|
-
try:
|
|
55
|
-
self._timesync_endpoint = other.time_sync.endpoint
|
|
56
|
-
except AttributeError:
|
|
57
|
-
pass # other doesn't have a time_sync accessor
|
|
58
|
-
|
|
59
|
-
def add_text_messages(self, text_messages, **kwargs):
|
|
60
|
-
"""Log text messages to the robot.
|
|
61
|
-
|
|
62
|
-
Args:
|
|
63
|
-
text_messages: Sequence of LogAnnotationTextMessage protos.
|
|
64
|
-
|
|
65
|
-
Raises:
|
|
66
|
-
RpcError: Problem communicating with the robot.
|
|
67
|
-
"""
|
|
68
|
-
return self._do_add_text_messages(self.call, text_messages, **kwargs)
|
|
69
|
-
|
|
70
|
-
def add_text_messages_async(self, text_messages, **kwargs):
|
|
71
|
-
"""Async version of add_text_messages."""
|
|
72
|
-
return self._do_add_text_messages(self.call_async, text_messages, **kwargs)
|
|
73
|
-
|
|
74
|
-
def _do_add_text_messages(self, func, text_messages, **kwargs):
|
|
75
|
-
request = log_annotation_protos.AddLogAnnotationRequest()
|
|
76
|
-
for in_text_msg in text_messages:
|
|
77
|
-
request.annotations.text_messages.add().CopyFrom(in_text_msg)
|
|
78
|
-
|
|
79
|
-
return func(self._stub.AddLogAnnotation, request, value_from_response=None,
|
|
80
|
-
error_from_response=common_header_errors, **kwargs)
|
|
81
|
-
|
|
82
|
-
def add_operator_comment(self, msg, robot_timestamp=None, **kwargs):
|
|
83
|
-
"""Add an operator comment to the robot log.
|
|
84
|
-
|
|
85
|
-
Args:
|
|
86
|
-
msg: Text of user comment to log.
|
|
87
|
-
robot_timestamp: Time (google.protobuf.Timestamp) of messages, in *robot time*.
|
|
88
|
-
If not set, timestamp will be when the robot receives the message.
|
|
89
|
-
|
|
90
|
-
Raises:
|
|
91
|
-
RpcError: Problem communicating with the robot.
|
|
92
|
-
"""
|
|
93
|
-
return self._do_add_operator_comment(self.call, msg, robot_timestamp, **kwargs)
|
|
94
|
-
|
|
95
|
-
def add_operator_comment_async(self, msg, robot_timestamp=None, **kwargs):
|
|
96
|
-
"""Async version of add_operator_comment."""
|
|
97
|
-
return self._do_add_operator_comment(self.call_async, msg, robot_timestamp, **kwargs)
|
|
98
|
-
|
|
99
|
-
def _do_add_operator_comment(self, func, msg, robot_timestamp=None, **kwargs):
|
|
100
|
-
request = log_annotation_protos.AddLogAnnotationRequest()
|
|
101
|
-
robot_timestamp = robot_timestamp or self._now_in_robot_basis(msg_type="Operator Comment")
|
|
102
|
-
request.annotations.operator_messages.add(message=msg, timestamp=robot_timestamp)
|
|
103
|
-
return func(self._stub.AddLogAnnotation, request, value_from_response=None,
|
|
104
|
-
error_from_response=common_header_errors, **kwargs)
|
|
105
|
-
|
|
106
|
-
def add_log_blob(self, data, type_id, channel=None, robot_timestamp=None, **kwargs):
|
|
107
|
-
"""Log blob messages to the robot.
|
|
108
|
-
|
|
109
|
-
Args:
|
|
110
|
-
data: Binary data of one blob.
|
|
111
|
-
type_id: Type of binary data of blob.
|
|
112
|
-
robot_timestamp: Time (google.protobuf.Timestamp) of messages, in *robot time*.
|
|
113
|
-
If not set, timestamp will be when the robot receives the message.
|
|
114
|
-
|
|
115
|
-
Raises:
|
|
116
|
-
RpcError: Problem communicating with the robot.
|
|
117
|
-
"""
|
|
118
|
-
return self._do_add_log_blob(self.call, data, type_id, channel, robot_timestamp, **kwargs)
|
|
119
|
-
|
|
120
|
-
def add_log_blob_async(self, data, type_id, channel=None, robot_timestamp=None, **kwargs):
|
|
121
|
-
"""Async version of add_log_blob."""
|
|
122
|
-
return self._do_add_log_blob(self.call_async, data, type_id, channel, robot_timestamp,
|
|
123
|
-
**kwargs)
|
|
124
|
-
|
|
125
|
-
def _do_add_log_blob(self, func, data, type_id, channel, robot_timestamp, **kwargs):
|
|
126
|
-
request = log_annotation_protos.AddLogAnnotationRequest()
|
|
127
|
-
|
|
128
|
-
if not channel:
|
|
129
|
-
channel = type_id
|
|
130
|
-
|
|
131
|
-
robot_timestamp = robot_timestamp or self._now_in_robot_basis(msg_type=type_id)
|
|
132
|
-
request.annotations.blob_data.add(timestamp=robot_timestamp, channel=channel,
|
|
133
|
-
type_id=type_id, data=data)
|
|
134
|
-
|
|
135
|
-
return func(self._stub.AddLogAnnotation, request, value_from_response=None,
|
|
136
|
-
error_from_response=common_header_errors, **kwargs)
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
def add_log_protobuf(self, proto, robot_timestamp=None):
|
|
140
|
-
return self._do_add_log_protobuf(self.add_log_blob, proto, robot_timestamp)
|
|
141
|
-
|
|
142
|
-
def add_log_protobuf_async(self, proto, robot_timestamp=None):
|
|
143
|
-
return self._do_add_log_protobuf(self.add_log_blob_async, proto, robot_timestamp)
|
|
144
|
-
|
|
145
|
-
def _do_add_log_protobuf(self, func, proto, robot_timestamp):
|
|
146
|
-
binary_data = proto.SerializeToString()
|
|
147
|
-
robot_timestamp = robot_timestamp or self._now_in_robot_basis(proto=proto)
|
|
148
|
-
return func(data=binary_data, type_id=proto.DESCRIPTOR.full_name,
|
|
149
|
-
channel=proto.DESCRIPTOR.full_name, robot_timestamp=robot_timestamp)
|
|
150
|
-
|
|
151
|
-
def _now_in_robot_basis(self, msg_type=None, proto=None):
|
|
152
|
-
"""Get current time in robot clock basis if possible, None otherwise."""
|
|
153
|
-
if self._timesync_endpoint:
|
|
154
|
-
try:
|
|
155
|
-
converter = self._timesync_endpoint.get_robot_time_converter()
|
|
156
|
-
except time_sync.NotEstablishedError:
|
|
157
|
-
# No timesync. That's OK -- the receiving host will provide the timestamp.
|
|
158
|
-
self.logger.debug(
|
|
159
|
-
'Could not timestamp message of type %s',
|
|
160
|
-
(msg_type if msg_type is not None else
|
|
161
|
-
(proto.DESCRIPTOR.full_name if proto is not None else 'Unknown')))
|
|
162
|
-
else:
|
|
163
|
-
return converter.robot_timestamp_from_local_secs(time.time())
|
|
164
|
-
return None
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
@deprecated(reason='The log-annotation client and service have been replaced by data_buffer.',
|
|
168
|
-
version='2.1.0', action="always")
|
|
169
|
-
class LogAnnotationHandler(logging.Handler):
|
|
170
|
-
"""A logging system Handler that publish to a bosdyn.api.LogAnnotationService (DEPRECATED).
|
|
171
|
-
|
|
172
|
-
LogAnnotationHandler is deprecated.
|
|
173
|
-
Instead, use bosdyn.client.data_buffer.LoggingHandler.
|
|
174
|
-
"""
|
|
175
|
-
|
|
176
|
-
def __init__(self, service, log_client, level=logging.NOTSET, time_sync_endpoint=None,
|
|
177
|
-
rpc_timeout=1, msg_num_limit=10, msg_age_limit=1):
|
|
178
|
-
logging.Handler.__init__(self, level=level)
|
|
179
|
-
self.msg_age_limit = msg_age_limit
|
|
180
|
-
self.msg_num_limit = msg_num_limit
|
|
181
|
-
self.rpc_timeout = rpc_timeout
|
|
182
|
-
self.service = service
|
|
183
|
-
self.time_sync_endpoint = time_sync_endpoint
|
|
184
|
-
if self.time_sync_endpoint and not self.time_sync_endpoint.has_established_time_sync:
|
|
185
|
-
raise InvalidArgument('time_sync_endpoint must have already established timesync!')
|
|
186
|
-
# If we have this many unsent messages in the queue after a failure to send,
|
|
187
|
-
# "dump" the messages to stdout.
|
|
188
|
-
self._dump_msg_count = 20
|
|
189
|
-
# Internal tracking of errors.
|
|
190
|
-
self._num_failed_sends = 0
|
|
191
|
-
self._num_failed_sends_sequential = 0
|
|
192
|
-
# If we have this many failed sends in a row, stop the send thread.
|
|
193
|
-
self._limit_failed_sends_sequential = 5
|
|
194
|
-
# Event to trigger immediate flush of messages to the log client.
|
|
195
|
-
self._flush_event = threading.Event()
|
|
196
|
-
# How long to wait for flush events. Dictates non-flush update rate.
|
|
197
|
-
self._flush_event_wait_time = 0.1
|
|
198
|
-
# Last time "emit" was called.
|
|
199
|
-
self._last_emit_time = 0
|
|
200
|
-
self._log_client = log_client
|
|
201
|
-
self._lock = threading.Lock()
|
|
202
|
-
self._msg_queue = []
|
|
203
|
-
self._send_thread = threading.Thread(target=self._run_send_thread)
|
|
204
|
-
# Set to stop the message send thread.
|
|
205
|
-
self._shutdown_event = threading.Event()
|
|
206
|
-
|
|
207
|
-
# This apparently needs to be a daemon thread to play nicely with python's Handler shutdown
|
|
208
|
-
# procedure.
|
|
209
|
-
self._send_thread.daemon = True
|
|
210
|
-
self._send_thread.start()
|
|
211
|
-
|
|
212
|
-
def __enter__(self):
|
|
213
|
-
"""Optionally use this as a ContextManager to be more cautious about sending messages."""
|
|
214
|
-
return self
|
|
215
|
-
|
|
216
|
-
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
217
|
-
"""To ensure all messages have been sent to the best of our ability, call close()."""
|
|
218
|
-
self.close()
|
|
219
|
-
|
|
220
|
-
def emit(self, record):
|
|
221
|
-
msg = self.record_to_msg(record)
|
|
222
|
-
with self._lock:
|
|
223
|
-
self._msg_queue.append(msg)
|
|
224
|
-
self._last_emit_time = time.time()
|
|
225
|
-
|
|
226
|
-
def flush(self):
|
|
227
|
-
self._flush_event.set()
|
|
228
|
-
|
|
229
|
-
def close(self):
|
|
230
|
-
self._shutdown_event.set()
|
|
231
|
-
self._send_thread.join()
|
|
232
|
-
|
|
233
|
-
# One last attempt to send any messages.
|
|
234
|
-
if self._msg_queue:
|
|
235
|
-
try:
|
|
236
|
-
self._log_client.add_text_messages(self._msg_queue, timeout=self.rpc_timeout)
|
|
237
|
-
# Catch all client library errors.
|
|
238
|
-
except Error:
|
|
239
|
-
self._num_failed_sends += 1
|
|
240
|
-
with self._lock:
|
|
241
|
-
self._dump_msg_queue()
|
|
242
|
-
logging.Handler.close(self)
|
|
243
|
-
|
|
244
|
-
def is_thread_alive(self):
|
|
245
|
-
return self._send_thread.is_alive()
|
|
246
|
-
|
|
247
|
-
def restart(self, log_client):
|
|
248
|
-
"""Restart the send thread.
|
|
249
|
-
|
|
250
|
-
Raises:
|
|
251
|
-
AssertionError if send thread is still alive.
|
|
252
|
-
"""
|
|
253
|
-
assert not self.is_thread_alive()
|
|
254
|
-
self._num_failed_sends_sequential = 0
|
|
255
|
-
self._log_client = log_client
|
|
256
|
-
self._send_thread = threading.Thread(target=self._run_send_thread)
|
|
257
|
-
self._send_thread.daemon = True
|
|
258
|
-
self._send_thread.start()
|
|
259
|
-
|
|
260
|
-
def _dump_msg_queue(self):
|
|
261
|
-
"""Pop all of the message queue, using fallback_log to try and capture them.
|
|
262
|
-
|
|
263
|
-
Should be called with the lock held.
|
|
264
|
-
"""
|
|
265
|
-
self.fallback_log('Dumping {} messages!'.format(len(self._msg_queue)))
|
|
266
|
-
for msg in self._msg_queue:
|
|
267
|
-
self.fallback_log(msg)
|
|
268
|
-
del self._msg_queue[:]
|
|
269
|
-
|
|
270
|
-
def fallback_log(self, msg):
|
|
271
|
-
print(msg, file=sys.stderr)
|
|
272
|
-
|
|
273
|
-
def _run_send_thread(self):
|
|
274
|
-
while (self._num_failed_sends_sequential < self._limit_failed_sends_sequential and
|
|
275
|
-
not self._shutdown_event.is_set()):
|
|
276
|
-
flush = self._flush_event.wait(self._flush_event_wait_time)
|
|
277
|
-
msg_age = time.time() - self._last_emit_time
|
|
278
|
-
with self._lock:
|
|
279
|
-
num_msgs = len(self._msg_queue)
|
|
280
|
-
to_send = self._msg_queue[:num_msgs]
|
|
281
|
-
send_now = num_msgs >= 1 and (flush or msg_age >= self.msg_age_limit or
|
|
282
|
-
num_msgs >= self.msg_num_limit)
|
|
283
|
-
|
|
284
|
-
if send_now:
|
|
285
|
-
self._flush_event.clear()
|
|
286
|
-
|
|
287
|
-
send_errors = 0
|
|
288
|
-
error_limit = 2
|
|
289
|
-
|
|
290
|
-
sent = False
|
|
291
|
-
while send_errors < error_limit and not self._shutdown_event.is_set():
|
|
292
|
-
try:
|
|
293
|
-
self._log_client.add_text_messages(to_send, timeout=self.rpc_timeout)
|
|
294
|
-
except (RpcError, ServerError):
|
|
295
|
-
self.fallback_log('Error:\n{}'.format(traceback.format_exc()))
|
|
296
|
-
send_errors += 1
|
|
297
|
-
except:
|
|
298
|
-
# Catch all other exceptions and log them.
|
|
299
|
-
self.fallback_log('Unexpected exception!\n{}'.format(
|
|
300
|
-
traceback.format_exc()))
|
|
301
|
-
break
|
|
302
|
-
else:
|
|
303
|
-
sent = True
|
|
304
|
-
break
|
|
305
|
-
|
|
306
|
-
# Default to possibly dumping messages.
|
|
307
|
-
maybe_dump = True
|
|
308
|
-
if sent:
|
|
309
|
-
# We successfully sent logs to the log service! Delete relevant local cache.
|
|
310
|
-
with self._lock:
|
|
311
|
-
del self._msg_queue[:num_msgs]
|
|
312
|
-
maybe_dump = False
|
|
313
|
-
self._num_failed_sends_sequential = 0
|
|
314
|
-
elif send_errors >= error_limit:
|
|
315
|
-
self._num_failed_sends += 1
|
|
316
|
-
self._num_failed_sends_sequential += 1
|
|
317
|
-
elif self._shutdown_event.is_set():
|
|
318
|
-
# Don't dump if we're shutting down; we'll clear the messages in close().
|
|
319
|
-
maybe_dump = False
|
|
320
|
-
else:
|
|
321
|
-
# We can hit this state if
|
|
322
|
-
# 1) We break out of the above loop without setting sent = True
|
|
323
|
-
# 2) There is a logic bug in the above handling code / while loop.
|
|
324
|
-
function_name = traceback.extract_stack()[-1][2]
|
|
325
|
-
self.fallback_log('Unexpected condition in {}.{}!'.format(
|
|
326
|
-
self.__class__.__name__, function_name))
|
|
327
|
-
|
|
328
|
-
# If we decided we may need to dump the message queue...
|
|
329
|
-
if maybe_dump:
|
|
330
|
-
with self._lock:
|
|
331
|
-
if len(self._msg_queue) >= self._dump_msg_count:
|
|
332
|
-
self._dump_msg_queue()
|
|
333
|
-
|
|
334
|
-
def record_to_msg(self, record):
|
|
335
|
-
level = self.record_level_to_proto_level(record.levelno)
|
|
336
|
-
msg = log_annotation_protos.LogAnnotationTextMessage(service=self.service, level=level)
|
|
337
|
-
msg.message = self.format(record)
|
|
338
|
-
if self.time_sync_endpoint is not None:
|
|
339
|
-
try:
|
|
340
|
-
msg.timestamp.CopyFrom(
|
|
341
|
-
self.time_sync_endpoint.robot_timestamp_from_local_secs(time.time()))
|
|
342
|
-
except time_sync.NotEstablishedError:
|
|
343
|
-
msg.message = '(No time sync!): ' + msg.message
|
|
344
|
-
msg.timestamp.CopyFrom(core_util.now_timestamp())
|
|
345
|
-
else:
|
|
346
|
-
msg.timestamp.CopyFrom(core_util.now_timestamp())
|
|
347
|
-
return msg
|
|
348
|
-
|
|
349
|
-
@staticmethod
|
|
350
|
-
def record_level_to_proto_level(record_level):
|
|
351
|
-
if record_level >= logging.ERROR:
|
|
352
|
-
return log_annotation_protos.LogAnnotationTextMessage.LEVEL_ERROR
|
|
353
|
-
elif record_level >= logging.WARNING:
|
|
354
|
-
return log_annotation_protos.LogAnnotationTextMessage.LEVEL_WARN
|
|
355
|
-
elif record_level >= logging.INFO:
|
|
356
|
-
return log_annotation_protos.LogAnnotationTextMessage.LEVEL_INFO
|
|
357
|
-
return log_annotation_protos.LogAnnotationTextMessage.LEVEL_DEBUG
|
|
358
|
-
|
|
359
|
-
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
bosdyn/__init__.py,sha256=CMQioQKK1NlMk3kZuY49b_Aw-JyvDeOtuqOCAul1I0s,330
|
|
2
|
-
bosdyn/client/__init__.py,sha256=szU23h0jL8WtyBaC6y1ahOLtaKgVjsBh7eb1PAuy5jg,1439
|
|
3
|
-
bosdyn/client/__main__.py,sha256=g__h-0z_Q6yzuiXdHQQTh9AI3C2cSc3PocpvbLVwa3E,466
|
|
4
|
-
bosdyn/client/area_callback.py,sha256=nQnhJR8-f0PMq9uILpKhYitVuIZHl6VViUDndN2K4u8,6270
|
|
5
|
-
bosdyn/client/area_callback_region_handler_base.py,sha256=xGm5EGHst-Bsf4hqbQnK-CPRYcBQDaBkMLKvEnw-q9U,15819
|
|
6
|
-
bosdyn/client/area_callback_service_runner.py,sha256=Rr30BV3TSXHQGcsUGlTa1F-noQDvgq6wv5XxQ_zTIa0,1869
|
|
7
|
-
bosdyn/client/area_callback_service_servicer.py,sha256=HPzy_QAUqCMWPNxH7tefjXtAvW4ijLI9X9CF0UuxCrU,11538
|
|
8
|
-
bosdyn/client/area_callback_service_utils.py,sha256=6q75KwubPezvowrrhpqehiBb0IAjnErOPTxCEyvgZ6I,6095
|
|
9
|
-
bosdyn/client/arm_surface_contact.py,sha256=DRfPfsFEzfk6ufe080ViqasUefl2ZUtcvcNENgcf55k,3710
|
|
10
|
-
bosdyn/client/async_tasks.py,sha256=gEPev6_jaUCe-G5PqktMiMGb7ohDy0daunxzQD5jafg,5594
|
|
11
|
-
bosdyn/client/auth.py,sha256=SvIsSA-qDbGI4fHq9aACHdKBQDeL6RGvSoJMtJYJuQ8,6253
|
|
12
|
-
bosdyn/client/auto_return.py,sha256=kqT1gaaneLYIPFVAFzpvTHRwa8NYYQ2OBf7wViBQudE,5598
|
|
13
|
-
bosdyn/client/autowalk.py,sha256=vpTtuYRo5nMgMGFwyK6YQBulwuqTmMVFfAkDc3yM-W0,5731
|
|
14
|
-
bosdyn/client/bddf.py,sha256=ok_2JcflSCQfcM25lpEgzKnkEJl0FDcJ16Bgo9Rjyzc,1763
|
|
15
|
-
bosdyn/client/bddf_download.py,sha256=oDztm-aS5J_ABLb-cxomNtwNPrdlnFp8hEuOMVxVRH4,7586
|
|
16
|
-
bosdyn/client/channel.py,sha256=HCr7O6VEiAX3-R3YYtQkGKyQt2H7054BQSVdDB1XWAM,8902
|
|
17
|
-
bosdyn/client/command_line.py,sha256=iV4aCT4GsfkZg2JLE2GXIFX5DiIkPYtkBq74kk6ue9A,87371
|
|
18
|
-
bosdyn/client/common.py,sha256=tab0BAEPqEwR5B2hVfbWRIAb4_CcBCVxBeFMRtm1kQ0,22549
|
|
19
|
-
bosdyn/client/data_acquisition.py,sha256=Qd5tbpQozythuLECpEMl7OAsVWakHHxVMa8GtMiv2GA,13273
|
|
20
|
-
bosdyn/client/data_acquisition_helpers.py,sha256=ddhx9tQ5feo_qraOzkmut6ArVtZ9OySamPUIUzBKFr8,14837
|
|
21
|
-
bosdyn/client/data_acquisition_plugin.py,sha256=oMcjRpzzAuWPVs0tutggEjVodZrJ-p3KzqKKce6wWbM,6166
|
|
22
|
-
bosdyn/client/data_acquisition_plugin_service.py,sha256=4tqakj_7hnV1HsVKXuaypkqkl5tdXSCoL9gsTxhhDb0,25078
|
|
23
|
-
bosdyn/client/data_acquisition_store.py,sha256=L5ywybtP-dIi2kdpAFhnegI4YTjPml2zp50Rma0fRLw,12272
|
|
24
|
-
bosdyn/client/data_buffer.py,sha256=5YOdf7r7jsA2g_-F3ipk96AJ7q07okk0sq2lYdn5wRg,25812
|
|
25
|
-
bosdyn/client/data_chunk.py,sha256=c0BYB9bE_B1KFX3_9gFpwg_U9AVQTRf-W5WBTIwfnCo,1958
|
|
26
|
-
bosdyn/client/data_service.py,sha256=aKfXJCciJ2M2WZRKfdWiLS2n-UEKWSRkOgcTnArbc5o,5201
|
|
27
|
-
bosdyn/client/directory.py,sha256=jWBxnPzBJSrfr4fuLf2VuZGsxOo8Q5iX5tEw6Zx2VY0,4906
|
|
28
|
-
bosdyn/client/directory_registration.py,sha256=5bKXl61rOJnc2MBSoevQVzKoqiBeyALi09nDT6eP06A,19696
|
|
29
|
-
bosdyn/client/docking.py,sha256=hYwZNIir3_pt-WvMFiXzMqDCwW8nA5H1BYOUD6_3-00,17596
|
|
30
|
-
bosdyn/client/door.py,sha256=dbBuGcuoZL3gRhxTQoQHKDlnzcML8ELBtQxCQqomYpo,3110
|
|
31
|
-
bosdyn/client/estop.py,sha256=-dy3SP6lcOryyTB_VXe0C_cFk-qK1TNJdSm9DKSz-MM,32073
|
|
32
|
-
bosdyn/client/exceptions.py,sha256=oTbHhyhxiP3dhg9esi0_4Zn5xU9a0tE5FnESDfD0J3s,5418
|
|
33
|
-
bosdyn/client/fault.py,sha256=ymo4M1Vy-bUasD8uOm1pxE1HnjheCds6qA9hZiJbAzY,6050
|
|
34
|
-
bosdyn/client/frame_helpers.py,sha256=Xo0ypDEfhShif2JWyiQ_XmmqLpM-Y3ZhL4U21MQu2lU,12480
|
|
35
|
-
bosdyn/client/graph_nav.py,sha256=61oVhY4c7fN8vC1_MvNNsWQHJxVDbUWPgGIwivi1zqc,64765
|
|
36
|
-
bosdyn/client/gripper_camera_param.py,sha256=QKkHrA08c-BRhyLHrE4pDdh8AGUytoq6OABZpqsvVB0,2631
|
|
37
|
-
bosdyn/client/image.py,sha256=McYzS8aBSHuuyaKGnS1rfzFAsjmFeboOrcJ24j9BJ_I,20435
|
|
38
|
-
bosdyn/client/image_service_helpers.py,sha256=EXziSY8j6p5PUtPVtYGu14xJKugGcAaUH1Cu15Y9Quc,39462
|
|
39
|
-
bosdyn/client/inverse_kinematics.py,sha256=KBgvGdnt-JZJvDzbdJ72Kqw8RHoOsqKq_p9rQtvwuKo,1708
|
|
40
|
-
bosdyn/client/ir_enable_disable.py,sha256=6c5MAuO1Fj0RlVcjkP1vhs-qTLiOpM3RnD8F7_ik1Gw,2153
|
|
41
|
-
bosdyn/client/keepalive.py,sha256=C-Vf17-sSfAHq4cbuuVIh7JQM7NLzv2pRekjHJywfdU,13214
|
|
42
|
-
bosdyn/client/lease.py,sha256=cPYUW8nCHR7_hKQgA3bVSF5MNb1nXWVSrrPkTWgPFA4,45001
|
|
43
|
-
bosdyn/client/lease_resource_hierarchy.py,sha256=b_YpVCeiJwVQzAy1Xh5h-1HYjpbzZvmDZAcREGCOgBc,3070
|
|
44
|
-
bosdyn/client/lease_validator.py,sha256=Al7YWI9TsI6UVPdnqkHHZZhbL9CSDzgdgoRrikZ7AA8,14531
|
|
45
|
-
bosdyn/client/license.py,sha256=mJRBtwo3UHUVXqAKq-3eBf35v9U_Za_P9lPRXF9q9Lk,1736
|
|
46
|
-
bosdyn/client/local_grid.py,sha256=YszM_pTmeGuGIwExgRwB76PXJciO6rZqfaL2RHLxAf0,3475
|
|
47
|
-
bosdyn/client/log_annotation.py,sha256=KoKSC7QfMCbRn6TDhAsSvIRVKoILjIyKvrSjjQs4wT8,15506
|
|
48
|
-
bosdyn/client/log_status.py,sha256=Om5S7RPS5y-lwCfumWPPocygpYmokT5J9A6ri44Q6co,12563
|
|
49
|
-
bosdyn/client/manipulation_api_client.py,sha256=4vKaaexWb0BGwjvgaGaSBSDLJn_nEgJT_kPRTSzCUbU,4203
|
|
50
|
-
bosdyn/client/map_processing.py,sha256=-Ay0fRoP7KczasvCwDAOdjnq9oQw-bgT5jaemYx9f0Y,9830
|
|
51
|
-
bosdyn/client/math_helpers.py,sha256=IERJp5Cv4ZFVBEFfcHJptvfs2Vm5Xn92zftA1MJfgNY,47499
|
|
52
|
-
bosdyn/client/network_compute_bridge_client.py,sha256=zFRanbJxTrTGdUR1kQHW83xjweTGKoRDoEmHGO7wSSw,7695
|
|
53
|
-
bosdyn/client/payload.py,sha256=12vZirEI4-gu9KPHsDg6MH0QCmnxbolWR1j81lvgfVw,2271
|
|
54
|
-
bosdyn/client/payload_registration.py,sha256=ilT-2W1iuCZImLeDlPLovPYg5HJCk7nLTHxod0Rn8nY,22316
|
|
55
|
-
bosdyn/client/point_cloud.py,sha256=EZO67eqzTEX31RPHBvWXhu2GSSM82BfNNoWALFv21Xk,8382
|
|
56
|
-
bosdyn/client/power.py,sha256=xCtrD3LFDmVRx37hffqRl4Iqo8USOhZbqGEGiYqLAlA,24947
|
|
57
|
-
bosdyn/client/processors.py,sha256=Z-Djf_I_lhfokB-f_L0PewAY8J95LThdWVju1zJ2BaE,1275
|
|
58
|
-
bosdyn/client/ray_cast.py,sha256=Ca1yJo0aY6OmVAazb19fy44L-9LzcKVxr_fHt_EoQtg,4465
|
|
59
|
-
bosdyn/client/recording.py,sha256=AhTChvpKmQSOldVBTuHm5LSAuMNf-AVYRYNm5YHUaO8,26016
|
|
60
|
-
bosdyn/client/robot.py,sha256=YetjsdF8Q-DVTe6skd3Jl1HmdpKmSrQWlx3ad39fVOs,30775
|
|
61
|
-
bosdyn/client/robot_command.py,sha256=FVh-xExi-ctvu0Zoi1leHkPcFeWw8wn_ceD5eCDAQD4,100454
|
|
62
|
-
bosdyn/client/robot_id.py,sha256=ghr3TQ20_sBJkC_MjflwCeooPdI09BJS98nzrqWOhzI,2359
|
|
63
|
-
bosdyn/client/robot_state.py,sha256=I_IrY6AaOWYEC4-yNoVl5-0wxyl22wlbR9uOVOGyHNY,6215
|
|
64
|
-
bosdyn/client/sdk.py,sha256=7Ld3DE0kDs3Dmgv5rABHvmUFDI28uQZL0QypksLlQ6s,12932
|
|
65
|
-
bosdyn/client/server_util.py,sha256=ZBdmIf8uaeqt0nsbVADY9qxIB7TtIm-cjdGvo1Imcuw,10199
|
|
66
|
-
bosdyn/client/service_customization_helpers.py,sha256=lZAdmHP84Le7kUFKFnzCb_NB4U4uKhHNd6FOwuusKOQ,22568
|
|
67
|
-
bosdyn/client/spot_check.py,sha256=jELZB2WjGoEz8v19ftI7Q2FLYnenos9Ny82Ia_L3Mts,14614
|
|
68
|
-
bosdyn/client/time_sync.py,sha256=DNnf_vS33rLuGZHMRNuVM3wCR3IjKOk89EAzSxz7OUI,21284
|
|
69
|
-
bosdyn/client/token_cache.py,sha256=Vwf9YfsR7pTyu1fLRzXrvDo9hG5GBJcen8Azlo_5_iA,3507
|
|
70
|
-
bosdyn/client/token_manager.py,sha256=FvDFCXKIiGXZNkagKZM41Ut8Q0ChlYHN3O61CzrqMF8,3144
|
|
71
|
-
bosdyn/client/util.py,sha256=1turXd8J-cgyOhSdtCuKfWWYGXwy2B7_0KA2BsBVqN8,19043
|
|
72
|
-
bosdyn/client/world_object.py,sha256=jixEHrQ-Hx2jo_Bulj9cSov8GEHHg2_BuLRL5EgtQAI,18679
|
|
73
|
-
bosdyn/client/resources/__init__.py,sha256=1qUAbnMKYlERYZvxtGz4ThjYef7Tx-ZBclLoVE_ecjU,265
|
|
74
|
-
bosdyn/client/resources/robot.pem,sha256=kWAr4xK29RtTVC_EhbwW2_NblIuecYqVudR2YIdTh84,1874
|
|
75
|
-
bosdyn/client/spot_cam/__init__.py,sha256=EZAvjRSla78A2iAENu-VJLbmwamNenTZPwQspQ5iyx8,790
|
|
76
|
-
bosdyn/client/spot_cam/audio.py,sha256=8DvUOhfHVYTOXqlQEny5qUjHvvDsijvJ_njqyNJWUrs,9845
|
|
77
|
-
bosdyn/client/spot_cam/compositor.py,sha256=hajJVVjf_gc93arG6T1Mu3zhMA90_TV2sIwlZr1hDZI,10294
|
|
78
|
-
bosdyn/client/spot_cam/health.py,sha256=HsmLOKVb7iM6bfbZye0UapPezL2naWo4yl_7HQDNGA4,4707
|
|
79
|
-
bosdyn/client/spot_cam/lighting.py,sha256=mEUK8EWs-NRTXzDTu5VSIYD6IfyiTkfMF82Y-agHZ5g,3089
|
|
80
|
-
bosdyn/client/spot_cam/lights_helper.py,sha256=VWhXwcZ1a5X6OQ6Fd1CzGGPdW4BNQ5j636BCn6t9F58,3963
|
|
81
|
-
bosdyn/client/spot_cam/media_log.py,sha256=CJJepePouHr1QoXuev8oJSMhA-JUYpcm6IBUq4k-Bl4,10379
|
|
82
|
-
bosdyn/client/spot_cam/network.py,sha256=W7z91ERPzba3BCK23jio8byDjVr6kYnucQ9zKg9BqUA,3023
|
|
83
|
-
bosdyn/client/spot_cam/power.py,sha256=HS3nJF8hXq9m1JziOIwLHGLtlNMyLgewWBgs-mRZmTM,5181
|
|
84
|
-
bosdyn/client/spot_cam/ptz.py,sha256=f_SJxRger-odXnK3QkXGMkqTqYEEsl47hJexpVjx84s,10177
|
|
85
|
-
bosdyn/client/spot_cam/streamquality.py,sha256=hQzVPdKnzVT91fc8E8AmNqhAPgddt0XE2tzNQD6QefQ,6411
|
|
86
|
-
bosdyn/client/spot_cam/version.py,sha256=R82eyCAY9PfZqbN8D6hNzSeZatpgpsFr995dRt1Mbe0,2856
|
|
87
|
-
bosdyn_client-3.3.2.dist-info/METADATA,sha256=_tFmVjjUh5S4XLHpEO_Lphn-SyLFRwuP5RKoNq-2P14,3904
|
|
88
|
-
bosdyn_client-3.3.2.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
89
|
-
bosdyn_client-3.3.2.dist-info/top_level.txt,sha256=an2OWgx1ej2jFjmBjPWNQ68ZglvUfKhmXWW-WhTtDmA,7
|
|
90
|
-
bosdyn_client-3.3.2.dist-info/RECORD,,
|
|
File without changes
|