remotivelabs-cli 0.3.0__py3-none-any.whl → 0.3.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 remotivelabs-cli might be problematic. Click here for more details.

Files changed (45) hide show
  1. cli/broker/__init__.py +36 -0
  2. cli/broker/discovery.py +43 -0
  3. cli/broker/export.py +6 -36
  4. cli/broker/files.py +12 -12
  5. cli/broker/lib/broker.py +13 -18
  6. cli/broker/lib/helper.py +6 -7
  7. cli/broker/license_flows.py +11 -13
  8. cli/broker/playback.py +10 -10
  9. cli/broker/record.py +4 -4
  10. cli/broker/scripting.py +6 -9
  11. cli/broker/signals.py +17 -19
  12. cli/cloud/auth/cmd.py +17 -14
  13. cli/cloud/auth/login.py +16 -26
  14. cli/cloud/auth_tokens.py +9 -13
  15. cli/cloud/brokers.py +5 -9
  16. cli/cloud/configs.py +4 -17
  17. cli/cloud/organisations.py +8 -10
  18. cli/cloud/projects.py +3 -3
  19. cli/cloud/recordings.py +35 -61
  20. cli/cloud/recordings_playback.py +22 -22
  21. cli/cloud/resumable_upload.py +6 -6
  22. cli/cloud/service_account_tokens.py +3 -2
  23. cli/cloud/storage/cmd.py +2 -3
  24. cli/cloud/storage/copy.py +2 -1
  25. cli/connect/connect.py +4 -4
  26. cli/connect/protopie/protopie.py +21 -29
  27. cli/remotive.py +4 -7
  28. cli/settings/core.py +4 -2
  29. cli/settings/migration/migration_tools.py +2 -1
  30. cli/tools/can/can.py +4 -7
  31. cli/topology/__init__.py +3 -0
  32. cli/topology/cmd.py +61 -83
  33. cli/topology/start_trial.py +105 -0
  34. cli/typer/typer_utils.py +3 -6
  35. cli/utils/console.py +61 -0
  36. cli/utils/rest_helper.py +23 -16
  37. cli/utils/versions.py +2 -4
  38. {remotivelabs_cli-0.3.0.dist-info → remotivelabs_cli-0.3.2.dist-info}/METADATA +1 -1
  39. remotivelabs_cli-0.3.2.dist-info/RECORD +74 -0
  40. cli/broker/brokers.py +0 -93
  41. cli/errors.py +0 -44
  42. remotivelabs_cli-0.3.0.dist-info/RECORD +0 -71
  43. {remotivelabs_cli-0.3.0.dist-info → remotivelabs_cli-0.3.2.dist-info}/LICENSE +0 -0
  44. {remotivelabs_cli-0.3.0.dist-info → remotivelabs_cli-0.3.2.dist-info}/WHEEL +0 -0
  45. {remotivelabs_cli-0.3.0.dist-info → remotivelabs_cli-0.3.2.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,74 @@
1
+ cli/.DS_Store,sha256=7HTaExsH9zU3sluA0MFtZuyzNmSnUmH2Sh09uoek84E,8196
2
+ cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ cli/api/cloud/tokens.py,sha256=3UKfVM3NvZX_ynpPAXZ_cnrPAIIgg0vA1FuOzj8TV2o,1631
4
+ cli/broker/__init__.py,sha256=8Xxn02p9VTKEZ7JYrDhioLT5eREMrFnDwapja45prL8,1348
5
+ cli/broker/discovery.py,sha256=oQcNhdc17SUZre9WYgPKG41-YDP8FrDhRrF5tk6eaRM,1522
6
+ cli/broker/export.py,sha256=29n_Nuvvv1FM7uUkOPs-DaNWULI4IaC5yufNxLy1FPQ,3519
7
+ cli/broker/files.py,sha256=o-mi7GtGn8vfO6r1hSRY97rDhMQAWfse2lh8Y78llN8,4229
8
+ cli/broker/lib/__about__.py,sha256=xnZ5V6ZcHW9dhWLWdMzVjYJbEnMKpeXm0_S_mbNzypE,141
9
+ cli/broker/lib/broker.py,sha256=ncVRHDS5C_D2hW_LQXxl58EbzT49v85NWE7iNGIg9Fo,26293
10
+ cli/broker/lib/client.py,sha256=2Nwrd_PY1gqQNqkWc9QTJVFDMAZebAzVnCFUTqiArwE,8540
11
+ cli/broker/lib/helper.py,sha256=nNQy0nXD5lDg2mzslRbBPmhzAgjMDJuRBYHj5pG2ZZw,9283
12
+ cli/broker/lib/signalcreator.py,sha256=CDInuSAmNrOlEya_br8CGZR1VNAXY7CXkF9s3mQUpHk,8201
13
+ cli/broker/license_flows.py,sha256=L2PeitmcJPqbHEzb9YBJpsrNDXn92hu2JKdcYXYVJKk,7349
14
+ cli/broker/licenses.py,sha256=jIuLB2qBGflzSjm952CBnErpzs7iIkmEgx9L8GDAPNc,4021
15
+ cli/broker/playback.py,sha256=1N8jTTgd2rw3VRbpyzP3I-06ritceeYxc_uEKst-8j8,4110
16
+ cli/broker/record.py,sha256=FjpeCbd1pUcDcpgF7QGLuBpecv4x4BFOGwELO8De3go,1440
17
+ cli/broker/scripting.py,sha256=lD8GuoVa8Ku4E2BUAq-USfMqG4utZMRgr61jePogykM,3747
18
+ cli/broker/signals.py,sha256=1xldsY3SVcVp-EEsrd6_uoBjrTRMSEONHpOA6SmWxJ4,8245
19
+ cli/cloud/__init__.py,sha256=xFaDg2zho_glvDBDB0_8HRNICVwHeYFEz-yMhzTcCjI,987
20
+ cli/cloud/auth/__init__.py,sha256=MtQ01-n8CgZb9Y_SvxwZUgj44Yo0dFAU3_XwhQiUYtw,54
21
+ cli/cloud/auth/cmd.py,sha256=lv9D0Q7G1RgI2IO1vkz_VVBA_STCPmdJax3QkeiMwg4,3968
22
+ cli/cloud/auth/login.py,sha256=3kc9L6-HOBwzf4Fxis2SBm_q5ObTuzSn4Ic_GkLF0Jk,11121
23
+ cli/cloud/auth_tokens.py,sha256=ExIsCmzoM_MCaYQ5aL4j0Cdyq81IFJ4HJAt-zn1H2L4,5061
24
+ cli/cloud/brokers.py,sha256=cXYKm_-CYJZH0muXAPwUMKIiqBiW6Y9WG5kmkQb3FuU,3849
25
+ cli/cloud/configs.py,sha256=atInBsh16woPmjC0dpnRTpbY4WRgseBOWe8VwpqwO_o,3745
26
+ cli/cloud/licenses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ cli/cloud/licenses/cmd.py,sha256=zq-Cc5OdftDyUR4dDqGnCmeNF62XR_kYC3mYXEKFZCw,477
28
+ cli/cloud/organisations.py,sha256=zFjqOnbO0_RGatzRXeHfvxi_T65-9wM0jTrtnSyn3_c,4033
29
+ cli/cloud/projects.py,sha256=90EAB8aXGah90brCfJpV6TzIeNy0x9y0F-eETUBtQhs,1597
30
+ cli/cloud/recordings.py,sha256=af3F2z1oLXbalB1UyAgq3B5ZAb0RwRlv69fpw6_GnrY,23728
31
+ cli/cloud/recordings_playback.py,sha256=UpLwbjl0ZGXBGLtSlfQcOKqG5uIdJzUxR688ZpQTEIA,11449
32
+ cli/cloud/resumable_upload.py,sha256=stdjvM3ARXUN5CEuVkRW-xoHmeYXIu0mw5VXUb_50FM,3721
33
+ cli/cloud/sample_recordings.py,sha256=RmuT-a2iMwGj3LXVcPkV5l66uFcf7nyWyJciUjnYkk4,721
34
+ cli/cloud/service_account_tokens.py,sha256=o2VJn9YxUjtSDvRUB8ezT8gKKWqKJNFs0lUD9-e0MPc,2870
35
+ cli/cloud/service_accounts.py,sha256=AiktZW5QTbT6sAPJi4ubETOqbBDAIt4LOE-TZmIiIkk,2586
36
+ cli/cloud/storage/__init__.py,sha256=ijl9WwU5D4oASbwrFKJurYsBUyzwZCOhcdTQYj-ZSeM,159
37
+ cli/cloud/storage/cmd.py,sha256=pF5NP_TIssHK-AQX3df-aYjXWrhjtoaT4GWWQKp2TAI,2961
38
+ cli/cloud/storage/copy.py,sha256=Na0FrBrCJ2xfuFfelmz_p-_yM-ZMyORRF5FHbd7I_W8,3289
39
+ cli/cloud/storage/uri_or_path.py,sha256=DLlyr0RAV-DRlL2C36U-jvUqwiLIlkw7c3mJ7SSGMdI,1158
40
+ cli/cloud/uri.py,sha256=QZCus--KJQlVwGCOzZqiglvj8VvSRKxfVvN33Pilgyg,3616
41
+ cli/connect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ cli/connect/connect.py,sha256=4bsDIcToIyqjuD2HCMWK6sMnpykdHOz5axL-aGFZyXM,4197
43
+ cli/connect/protopie/protopie.py,sha256=0S-GCNiWpTvXzJEsFSht9HoziSzu_6hXZMvTp4xAP40,6470
44
+ cli/remotive.py,sha256=EwgjtTjR5EmGo39PFpbF74v2nm3K2E9A1kon89R2KiE,3854
45
+ cli/settings/__init__.py,sha256=JsMr0E_hsM6IRHYeJUrlLBGyKnPdR4cDJd08-TjX274,665
46
+ cli/settings/config_file.py,sha256=QwsrVGB7JTqFNXlLkbWVcRSveW0HsKzU6Jl8mHqjdO8,3586
47
+ cli/settings/core.py,sha256=_UNs3B0t1AhuwciMNWsHFWZMV9kTEkoSlmow8QlkeXw,10999
48
+ cli/settings/migration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ cli/settings/migration/migrate_all_token_files.py,sha256=xoVvAqn_tGskEW148uf3xZx1mpJKUnERMTcBo0nkCnI,3010
50
+ cli/settings/migration/migrate_config_file.py,sha256=S8kyn3ZXbkej2TRLPcVDcYpvk2iW6kGo38OIutEZayo,2217
51
+ cli/settings/migration/migrate_legacy_dirs.py,sha256=N0t2io3bT_ub8BcVPw1CeQ4eeexRUiu3jXq3DL018OE,1819
52
+ cli/settings/migration/migrate_token_file.py,sha256=Fp7Z_lNqSdoWY05TYwFW2QH8q9QhmB2TYSok6hV1Mic,1530
53
+ cli/settings/migration/migration_tools.py,sha256=D00cQ3RsXkCPgGBGOvpx1_Ul8GfUEqfRbvbv70WN81s,1386
54
+ cli/settings/state_file.py,sha256=rN6JNZP9ULZsuossk3M7jPhoIUgogAAcQGs4SJ-rI-4,2162
55
+ cli/settings/token_file.py,sha256=9GZh44eaXtn30EA06mzQ-69yBT06ig03doqfUHisAw0,3921
56
+ cli/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ cli/tools/can/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
+ cli/tools/can/can.py,sha256=ovTqzsjJP-z9H5RiJ3f_OXMpELqM3d09JY4JfPpT3-Q,2171
59
+ cli/tools/tools.py,sha256=jhLfrFDqkmWV3eBAzNwBf6WgDGrz7sOhgVCia36Twn8,232
60
+ cli/topology/__init__.py,sha256=MyorYLmC2wAd_z5GdQENEYLgoCiNYgwQ16BOX93IBtI,52
61
+ cli/topology/cmd.py,sha256=vtAw-vIJxf2dogVaqqUm8jRzUJrC7fVuov3sSV7l0sc,3101
62
+ cli/topology/start_trial.py,sha256=GNB2E-Ia18UpXQZ4fViGq5-pRq69vinDBLwzImsz2GY,3414
63
+ cli/typer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
+ cli/typer/typer_utils.py,sha256=eUrVOEOKY_MnfiJMAxvEurP1Q79z9pq83mJjocP8lhI,686
65
+ cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ cli/utils/console.py,sha256=JF39S9oS1lehFexjdLQKp17oINNvFZJLg_M2SDCjkvA,1754
67
+ cli/utils/rest_helper.py,sha256=ZHc7TMNVa07kJWDQ_OEoeaGhzYu8BinSXJJX8R_wX_8,14135
68
+ cli/utils/time.py,sha256=TEKcNZ-pQoJ7cZ6hQmVD0sTRwRm2rBy51-MuDNdO4S4,296
69
+ cli/utils/versions.py,sha256=mHs_BCk0-wwPfCHIIQBlpFkgipSWkw9jUaZ-USH8ODY,3824
70
+ remotivelabs_cli-0.3.2.dist-info/LICENSE,sha256=qDPP_yfuv1fF-u7EfexN-cN3M8aFgGVndGhGLovLKz0,608
71
+ remotivelabs_cli-0.3.2.dist-info/METADATA,sha256=QMZTstCqkjghu2nqeUb7jyHqJO3aXeKFV_lTq0Nnj4k,1521
72
+ remotivelabs_cli-0.3.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
73
+ remotivelabs_cli-0.3.2.dist-info/entry_points.txt,sha256=lvDhPgagLqW_KTnLPCwKSqfYlEp-1uYVosRiPjsVj10,45
74
+ remotivelabs_cli-0.3.2.dist-info/RECORD,,
cli/broker/brokers.py DELETED
@@ -1,93 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import os
4
- from time import sleep
5
-
6
- import typer
7
- from zeroconf import (
8
- IPVersion,
9
- ServiceBrowser,
10
- ServiceStateChange,
11
- Zeroconf,
12
- )
13
-
14
- from cli.typer import typer_utils
15
-
16
- from . import export, files, licenses, playback, record, scripting, signals
17
-
18
- app = typer_utils.create_typer(rich_markup_mode="rich")
19
-
20
-
21
- @app.callback()
22
- def main(
23
- url: str = typer.Option(None, is_eager=False, help="Broker URL", envvar="REMOTIVE_BROKER_URL"),
24
- ) -> None:
25
- # This can be used to override the --url per command, lets see if this is a better approach
26
- if url is not None:
27
- os.environ["REMOTIVE_BROKER_URL"] = url
28
- # Do other global stuff, handle other global options here
29
-
30
-
31
- @app.command(help="Discover brokers on this network")
32
- def discover() -> None:
33
- # print("Not implemented")
34
-
35
- zeroconf = Zeroconf(ip_version=IPVersion.V4Only)
36
-
37
- services = ["_remotivebroker._tcp.local."]
38
- # services = list(ZeroconfServiceTypes.find(zc=zeroconf))
39
-
40
- print("\nLooking for RemotiveBrokers on your network, press Ctrl-C to exit...\n")
41
- ServiceBrowser(zeroconf, services, handlers=[on_service_state_change])
42
-
43
- try:
44
- while True:
45
- sleep(0.1)
46
- except KeyboardInterrupt:
47
- pass
48
- finally:
49
- zeroconf.close()
50
-
51
-
52
- def on_service_state_change(zeroconf: Zeroconf, service_type: str, name: str, state_change: ServiceStateChange) -> None:
53
- # print(f"Service {name} state changed: {state_change}")
54
-
55
- if state_change is ServiceStateChange.Removed:
56
- print(f"Service {name} was removed")
57
-
58
- if state_change is ServiceStateChange.Updated:
59
- print(f"Service {name} was updated")
60
-
61
- if state_change is ServiceStateChange.Added:
62
- print(f"[ {name} ]")
63
- info = zeroconf.get_service_info(service_type, name)
64
- # print("Info from zeroconf.get_service_info: %r" % (info))
65
-
66
- if info:
67
- # addresses = ["%s:%d" % (addr, cast(int, info.port)) for addr in info.parsed_scoped_addresses()]
68
- for addr in info.parsed_scoped_addresses():
69
- print(f"RemotiveBrokerApp: http://{addr}:8080")
70
- print(f"RemotiveBroker http://{addr}:50051")
71
- # print(" Weight: %d, priority: %d" % (info.weight, info.priority))
72
- # print(f" Server: {info.server}")
73
- # if info.properties:
74
- # print(" Properties are:")
75
- # for key, value in info.properties.items():
76
- # print(f" {key}: {value}")
77
- # else:
78
- # print(" No properties")
79
- else:
80
- print(" No info")
81
- print("\n")
82
-
83
-
84
- app.add_typer(playback.app, name="playback", help="Manage playing recordings")
85
- app.add_typer(record.app, name="record", help="Record data on buses")
86
- app.add_typer(files.app, name="files", help="Upload/Download configurations and recordings")
87
- app.add_typer(signals.app, name="signals", help="Find and subscribe to signals")
88
- app.add_typer(export.app, name="export", help="Export to external formats")
89
- app.add_typer(scripting.app, name="scripting", help="LUA scripting utilities")
90
- app.add_typer(licenses.app, name="license", help="View and request license to broker")
91
-
92
- if __name__ == "__main__":
93
- app()
cli/errors.py DELETED
@@ -1,44 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import os
4
- import sys
5
- from typing import Optional
6
-
7
- import grpc
8
- from rich.console import Console
9
-
10
- err_console = Console(stderr=True)
11
-
12
-
13
- # This should be renamed to Printer since print_generic_message is not an error message.
14
- # Then we can also add more things here
15
- class ErrorPrinter:
16
- @staticmethod
17
- def print_grpc_error(error: grpc.RpcError) -> None:
18
- if error.code() == grpc.StatusCode.UNAUTHENTICATED:
19
- is_access_token = os.environ["ACCESS_TOKEN"]
20
- if is_access_token is not None and is_access_token == "true":
21
- err_console.print(f":boom: [bold red]Authentication failed[/bold red]: {error.details()}")
22
- err_console.print("Please login again")
23
- else:
24
- err_console.print(":boom: [bold red]Authentication failed[/bold red]")
25
- err_console.print("Failed to verify api-key")
26
- else:
27
- # print(f"Unexpected error: {error.code()}")
28
- err_console.print(f":boom: [bold red]Unexpected error, status code[/bold red]: {error.code()}")
29
- err_console.print(error.details())
30
- sys.exit(1)
31
-
32
- @staticmethod
33
- def print_hint(message: str) -> None:
34
- err_console.print(f":point_right: [bold]{message}[/bold]")
35
-
36
- @staticmethod
37
- def print_generic_error(message: str, exit_code: Optional[int] = None) -> None:
38
- err_console.print(f":boom: [bold red]Failed[/bold red]: {message}")
39
- if exit_code is not None:
40
- sys.exit(exit_code)
41
-
42
- @staticmethod
43
- def print_generic_message(message: str) -> None:
44
- err_console.print(f"[bold]{message}[/bold]")
@@ -1,71 +0,0 @@
1
- cli/.DS_Store,sha256=7HTaExsH9zU3sluA0MFtZuyzNmSnUmH2Sh09uoek84E,8196
2
- cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- cli/api/cloud/tokens.py,sha256=3UKfVM3NvZX_ynpPAXZ_cnrPAIIgg0vA1FuOzj8TV2o,1631
4
- cli/broker/brokers.py,sha256=lfO0oAuOwLiJkuNIusXCnOGrxEKGvQjy75LMY9jP5-Y,3234
5
- cli/broker/export.py,sha256=rr6OGZmkbqVUljy-gluC2CeRDKbI_p41EhleT3lcgXQ,4481
6
- cli/broker/files.py,sha256=JMpyBYfqVX_ppIChDcUuWvCDIQHC8YI6IsljyIL0NZ8,4212
7
- cli/broker/lib/__about__.py,sha256=xnZ5V6ZcHW9dhWLWdMzVjYJbEnMKpeXm0_S_mbNzypE,141
8
- cli/broker/lib/broker.py,sha256=W7wp21nvXWm96y5LvSVmRIi3wiNtOFA8Bx-al8CVEIQ,26420
9
- cli/broker/lib/client.py,sha256=2Nwrd_PY1gqQNqkWc9QTJVFDMAZebAzVnCFUTqiArwE,8540
10
- cli/broker/lib/helper.py,sha256=ECwygqZHFkRhV-h4EVOUOkOVgXnmsuJP4OnIJtarh7c,9316
11
- cli/broker/lib/signalcreator.py,sha256=CDInuSAmNrOlEya_br8CGZR1VNAXY7CXkF9s3mQUpHk,8201
12
- cli/broker/license_flows.py,sha256=du5SSAdzr2VZeORWoAgbYrfi-mpnDUQfIVpfAJK6CSM,7216
13
- cli/broker/licenses.py,sha256=jIuLB2qBGflzSjm952CBnErpzs7iIkmEgx9L8GDAPNc,4021
14
- cli/broker/playback.py,sha256=fO-ZvzmB3ZzanmD1L09PeKkabx35uKsELMM-h-5brSE,4023
15
- cli/broker/record.py,sha256=rVjvyWRSWNFtthZZkZeZZGvZdmhDB_qmYcrCocCJxY4,1445
16
- cli/broker/scripting.py,sha256=LFLdaBNxe2sfpcxhDmRlAbEorjL3SJZNK-zEdLQ9ySU,3854
17
- cli/broker/signals.py,sha256=MFj_bOLIxHY1v3XPkKk6n8U3JLaY8nrXHahRQaVse6s,8207
18
- cli/cloud/__init__.py,sha256=xFaDg2zho_glvDBDB0_8HRNICVwHeYFEz-yMhzTcCjI,987
19
- cli/cloud/auth/__init__.py,sha256=MtQ01-n8CgZb9Y_SvxwZUgj44Yo0dFAU3_XwhQiUYtw,54
20
- cli/cloud/auth/cmd.py,sha256=buLqfd9JGg8ziR749nNhaeXfMZTstIsrYvAib7kBQrU,3872
21
- cli/cloud/auth/login.py,sha256=cS860pSMuw8aN6PAmtMxLDSkFEaFRjghTodLQNUHB2A,11466
22
- cli/cloud/auth_tokens.py,sha256=K94lC6QLAuiADZYk0k-4iYabz9AGl_rNFj02xlKeNZs,5148
23
- cli/cloud/brokers.py,sha256=QTA9bmaK06LKEccF6IBgWBonC4VFrKwFQBsACX_IzYw,3896
24
- cli/cloud/configs.py,sha256=uv46nUoGXOr99smQHahv_ageDv6bGYfUnlRlxcS5D9A,5125
25
- cli/cloud/licenses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- cli/cloud/licenses/cmd.py,sha256=zq-Cc5OdftDyUR4dDqGnCmeNF62XR_kYC3mYXEKFZCw,477
27
- cli/cloud/organisations.py,sha256=IYpcWwczuWfgY1WqM9d6duXu7F7KMw4v8koeo_ERhkA,3950
28
- cli/cloud/projects.py,sha256=ecn5Y8UKhgYnHSJQACUk1GNZt9EF8ug4B-6MCr8rZqM,1487
29
- cli/cloud/recordings.py,sha256=In2fKX668CPsEVBAy7zkU92lEnmu3UcnqiVrqsvLNDQ,24961
30
- cli/cloud/recordings_playback.py,sha256=XZoVyujufMQFN2v_Nwsf8tOqn61yLEpAf2z_u5uhXik,11532
31
- cli/cloud/resumable_upload.py,sha256=8lEIdncJZoTZzNsQVHH3gm_GunxEmN5JbmWX7awy3p4,3713
32
- cli/cloud/sample_recordings.py,sha256=RmuT-a2iMwGj3LXVcPkV5l66uFcf7nyWyJciUjnYkk4,721
33
- cli/cloud/service_account_tokens.py,sha256=9ffBUM1qXsRaJgOviwINxJl2ndKYKuBr_SXGrcOW3mA,2788
34
- cli/cloud/service_accounts.py,sha256=AiktZW5QTbT6sAPJi4ubETOqbBDAIt4LOE-TZmIiIkk,2586
35
- cli/cloud/storage/__init__.py,sha256=ijl9WwU5D4oASbwrFKJurYsBUyzwZCOhcdTQYj-ZSeM,159
36
- cli/cloud/storage/cmd.py,sha256=UOPpzZeqtqAD2qAbFRGHnbpliq6T_8phKQSxU0EeaqI,2970
37
- cli/cloud/storage/copy.py,sha256=tPvRcKFhzxbBhjvQ6ZGMe81hksfYwbn7dEgrjpYaC0Q,3237
38
- cli/cloud/storage/uri_or_path.py,sha256=DLlyr0RAV-DRlL2C36U-jvUqwiLIlkw7c3mJ7SSGMdI,1158
39
- cli/cloud/uri.py,sha256=QZCus--KJQlVwGCOzZqiglvj8VvSRKxfVvN33Pilgyg,3616
40
- cli/connect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- cli/connect/connect.py,sha256=SH2DNTTVLu2dNpk6xIah1-KJZAqrK_7Skt8RKp8Mjh8,4231
42
- cli/connect/protopie/protopie.py,sha256=hd0WBZG7LZXMq4rHU03C-LJ_ZfG6CDkXEgYAJEP78XA,6529
43
- cli/errors.py,sha256=djODw6sdMJXzOsuAUOP3N13nfmm1sIP3Pe6tllGdozM,1657
44
- cli/remotive.py,sha256=kYefDVWw9oiEZtTNor-Dz2qhdMXCaoctu_SE0drpg80,3877
45
- cli/settings/__init__.py,sha256=JsMr0E_hsM6IRHYeJUrlLBGyKnPdR4cDJd08-TjX274,665
46
- cli/settings/config_file.py,sha256=QwsrVGB7JTqFNXlLkbWVcRSveW0HsKzU6Jl8mHqjdO8,3586
47
- cli/settings/core.py,sha256=POnA5bwPNXA5EF9YRjEAZ36GS8A6I-O1vWzLbEDQDXY,10965
48
- cli/settings/migration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- cli/settings/migration/migrate_all_token_files.py,sha256=xoVvAqn_tGskEW148uf3xZx1mpJKUnERMTcBo0nkCnI,3010
50
- cli/settings/migration/migrate_config_file.py,sha256=S8kyn3ZXbkej2TRLPcVDcYpvk2iW6kGo38OIutEZayo,2217
51
- cli/settings/migration/migrate_legacy_dirs.py,sha256=N0t2io3bT_ub8BcVPw1CeQ4eeexRUiu3jXq3DL018OE,1819
52
- cli/settings/migration/migrate_token_file.py,sha256=Fp7Z_lNqSdoWY05TYwFW2QH8q9QhmB2TYSok6hV1Mic,1530
53
- cli/settings/migration/migration_tools.py,sha256=BK9zCzBulzQaZuiNkzLgH2SFRmLCYTopv0TXlo_QuK0,1318
54
- cli/settings/state_file.py,sha256=rN6JNZP9ULZsuossk3M7jPhoIUgogAAcQGs4SJ-rI-4,2162
55
- cli/settings/token_file.py,sha256=9GZh44eaXtn30EA06mzQ-69yBT06ig03doqfUHisAw0,3921
56
- cli/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- cli/tools/can/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- cli/tools/can/can.py,sha256=TtP5w8vb0QG4ObNhkWIDpRMdNelirFffoc_lFZy8ePM,2260
59
- cli/tools/tools.py,sha256=jhLfrFDqkmWV3eBAzNwBf6WgDGrz7sOhgVCia36Twn8,232
60
- cli/topology/cmd.py,sha256=M5WB6wR37MbcVk4I5iyW04XFX9YIYXVYVLTejtEYFGw,3997
61
- cli/typer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- cli/typer/typer_utils.py,sha256=TaJuK1EtE9Gv3DfmoyHPTNKmhiAimuQCHKxQjnUZ7bs,737
63
- cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
- cli/utils/rest_helper.py,sha256=9MLIMiU3RR9dfZZFpCLxJnw4VXnl1Ga62k5knplDsjg,13881
65
- cli/utils/time.py,sha256=TEKcNZ-pQoJ7cZ6hQmVD0sTRwRm2rBy51-MuDNdO4S4,296
66
- cli/utils/versions.py,sha256=U0nq7M2wrUU9m4IL2_Rg1iST3PKN-leN_Huoe6jP4EQ,3846
67
- remotivelabs_cli-0.3.0.dist-info/LICENSE,sha256=qDPP_yfuv1fF-u7EfexN-cN3M8aFgGVndGhGLovLKz0,608
68
- remotivelabs_cli-0.3.0.dist-info/METADATA,sha256=mSh5ZaTWDlSWLDqquw5vXxz0gLNuSurXgqfgn3LtcV0,1521
69
- remotivelabs_cli-0.3.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
70
- remotivelabs_cli-0.3.0.dist-info/entry_points.txt,sha256=lvDhPgagLqW_KTnLPCwKSqfYlEp-1uYVosRiPjsVj10,45
71
- remotivelabs_cli-0.3.0.dist-info/RECORD,,