RemoteRF 2.2.1__tar.gz → 2.2.2__tar.gz

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.
Files changed (95) hide show
  1. {remoterf-2.2.1/src/remoterf.egg-info → remoterf-2.2.2}/PKG-INFO +1 -1
  2. {remoterf-2.2.1 → remoterf-2.2.2}/pyproject.toml +1 -1
  3. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/remoterf_cli.py +2 -4
  4. {remoterf-2.2.1 → remoterf-2.2.2/src/remoterf.egg-info}/PKG-INFO +1 -1
  5. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_cli_login_fresh.py +11 -0
  6. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_homes.py +1 -6
  7. {remoterf-2.2.1 → remoterf-2.2.2}/LICENSE +0 -0
  8. {remoterf-2.2.1 → remoterf-2.2.2}/README.md +0 -0
  9. {remoterf-2.2.1 → remoterf-2.2.2}/setup.cfg +0 -0
  10. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/__init__.py +0 -0
  11. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/__init__.py +0 -0
  12. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/grpc/__init__.py +0 -0
  13. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/grpc/deployment_capabilities.proto +0 -0
  14. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/grpc/deployment_capabilities_pb2.py +0 -0
  15. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/grpc/deployment_capabilities_pb2_grpc.py +0 -0
  16. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/grpc/grpc.proto +0 -0
  17. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/grpc/grpc_pb2.py +0 -0
  18. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/grpc/grpc_pb2_grpc.py +0 -0
  19. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/grpc/v2_codec.py +0 -0
  20. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/tos_notice.txt +0 -0
  21. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/utils/__init__.py +0 -0
  22. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/utils/ansi_codes.py +0 -0
  23. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/utils/api_token.py +0 -0
  24. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/utils/banner.py +0 -0
  25. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/utils/list_string.py +0 -0
  26. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/common/utils/process_arg.py +0 -0
  27. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/config/__init__.py +0 -0
  28. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/config/cert_fetcher.py +0 -0
  29. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/config/config.py +0 -0
  30. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/__init__.py +0 -0
  31. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/acc_login.py +0 -0
  32. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/app.py +0 -0
  33. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/banner_note.txt +0 -0
  34. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/direct_path.py +0 -0
  35. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/dynamic_v2_transport.py +0 -0
  36. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/grpc_acc.py +0 -0
  37. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/grpc_client.py +0 -0
  38. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/secure_channel.py +0 -0
  39. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/core/v2_errors.py +0 -0
  40. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/deployment/__init__.py +0 -0
  41. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/deployment/backend.py +0 -0
  42. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/deployment/direct.py +0 -0
  43. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/deployment/homes.py +0 -0
  44. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/deployment/http.py +0 -0
  45. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/deployment/state.py +0 -0
  46. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/__init__.py +0 -0
  47. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/_virtual.py +0 -0
  48. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/adalm_pluto/__init__.py +0 -0
  49. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/adalm_pluto/adalm_pluto_remote.py +0 -0
  50. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/dynamic_device.py +0 -0
  51. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/dynamic_v2.py +0 -0
  52. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/hackrf/__init__.py +0 -0
  53. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/hackrf/hackrf_remote.py +0 -0
  54. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/rtl_sdr/__init__.py +0 -0
  55. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/rtl_sdr/rtl_sdr_remote.py +0 -0
  56. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/sim_sdr/__init__.py +0 -0
  57. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/sim_sdr/sim_sdr_remote.py +0 -0
  58. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/support/__init__.py +0 -0
  59. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/support/ti_mmwave.py +0 -0
  60. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/support/uhd.py +0 -0
  61. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/support/uhd_dsp.py +0 -0
  62. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/support/uhd_v2.py +0 -0
  63. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/ti_mmwave/__init__.py +0 -0
  64. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/ti_mmwave/ti_mmwave_remote.py +0 -0
  65. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/usrp/__init__.py +0 -0
  66. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/usrp/usrp_remote.py +0 -0
  67. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/drivers/usrp/usrp_remote.pyi +0 -0
  68. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf/version.py +0 -0
  69. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf.egg-info/SOURCES.txt +0 -0
  70. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf.egg-info/dependency_links.txt +0 -0
  71. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf.egg-info/entry_points.txt +0 -0
  72. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf.egg-info/requires.txt +0 -0
  73. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf.egg-info/top_level.txt +0 -0
  74. {remoterf-2.2.1 → remoterf-2.2.2}/src/remoterf.py +0 -0
  75. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_banner.py +0 -0
  76. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_config_address.py +0 -0
  77. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_deployment_accounts.py +0 -0
  78. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_direct_path_fixed.py +0 -0
  79. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_direct_path_partner.py +0 -0
  80. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_direct_path_race.py +0 -0
  81. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_dynamic_device_codegen.py +0 -0
  82. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_dynamic_v2.py +0 -0
  83. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_federated_devices.py +0 -0
  84. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_fetch_idl_fallback.py +0 -0
  85. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_finish_prompt.py +0 -0
  86. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_gate_i_direct_path.py +0 -0
  87. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_grpc_client_target.py +0 -0
  88. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_native_account_credentials.py +0 -0
  89. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_native_devices.py +0 -0
  90. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_partner_dynamic_v2.py +0 -0
  91. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_pluto_virtual.py +0 -0
  92. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_process_arg.py +0 -0
  93. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_remoterf_cli.py +0 -0
  94. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_ti_mmwave.py +0 -0
  95. {remoterf-2.2.1 → remoterf-2.2.2}/tests/test_upgrade_rescue.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoterf
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: A python API to remotely access signal centric hardware. Client-side only! Courtesy of Wireless Lab @ UCLA & Prof. Ian Roberts.
5
5
  Author-email: Ethan Ge <ethoGalaxy@gmail.com>
6
6
  License-Expression: GPL-3.0-or-later
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "remoterf"
7
- version = "2.2.1"
7
+ version = "2.2.2"
8
8
  description = "A python API to remotely access signal centric hardware. Client-side only! Courtesy of Wireless Lab @ UCLA & Prof. Ian Roberts."
9
9
  readme = "README.md"
10
10
  license = "GPL-3.0-or-later"
@@ -400,10 +400,8 @@ def _login(target: str | None) -> int:
400
400
  return _register()
401
401
  return _account_shell(register=False)
402
402
  if target == 'global':
403
- if not homes.has_global_account():
404
- printf('No RemoteRF Global account is configured here.', Sty.WARNING)
405
- printf('Run: ', Sty.GRAY, 'remoterf --register', Sty.CYAN)
406
- return 2
403
+ # Global's address is built in, so a fresh install can log in to an
404
+ # existing Global account without registering again.
407
405
  return _use_global(register=False)
408
406
  if target not in homes.homes():
409
407
  printf(f'No saved home named {target!r}.', Sty.WARNING)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoterf
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: A python API to remotely access signal centric hardware. Client-side only! Courtesy of Wireless Lab @ UCLA & Prof. Ian Roberts.
5
5
  Author-email: Ethan Ge <ethoGalaxy@gmail.com>
6
6
  License-Expression: GPL-3.0-or-later
@@ -25,6 +25,17 @@ def test_login_on_a_fresh_install_registers():
25
25
  shell.assert_not_called()
26
26
 
27
27
 
28
+ def test_login_global_on_a_fresh_install_logs_in_to_global():
29
+ from remoterf import remoterf_cli
30
+
31
+ tmp, env = _fresh_home()
32
+ with tmp, env, \
33
+ mock.patch("remoterf.config.config.require_tos_for_login", return_value=True), \
34
+ mock.patch.object(remoterf_cli, "_use_global", return_value=0) as use_global:
35
+ assert remoterf_cli._login("global") == 0
36
+ use_global.assert_called_once_with(register=False)
37
+
38
+
28
39
  def test_login_with_a_legacy_address_still_logs_in_there():
29
40
  from remoterf import remoterf_cli
30
41
 
@@ -366,13 +366,8 @@ def test_login_names_a_home_explicitly(monkeypatch, reachable):
366
366
  assert run_cli(["-l", "nope"], monkeypatch, _account_shell=shell) == 2
367
367
 
368
368
 
369
- def test_login_global_requires_a_global_account(monkeypatch):
369
+ def test_login_global_works_without_a_saved_global_account(monkeypatch):
370
370
  homes.save_home("ucla", document())
371
- assert run_cli(["-l", "global"], monkeypatch, _account_shell=mock.Mock()) == 2
372
-
373
- homes.remember_global_account(
374
- "https://global.remoterf.net", "897541e5-b61f-45f7-a814-8ffeaad2ae69"
375
- )
376
371
  used_global = mock.Mock(return_value=0)
377
372
  assert run_cli(["-l", "global"], monkeypatch, _use_global=used_global) == 0
378
373
  used_global.assert_called_once_with(register=False)
File without changes
File without changes
File without changes
File without changes
File without changes