RemoteRF 2.6.0__tar.gz → 2.6.1__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 (106) hide show
  1. {remoterf-2.6.0/src/remoterf.egg-info → remoterf-2.6.1}/PKG-INFO +1 -1
  2. {remoterf-2.6.0 → remoterf-2.6.1}/pyproject.toml +1 -1
  3. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/app.py +4 -3
  4. {remoterf-2.6.0 → remoterf-2.6.1/src/remoterf.egg-info}/PKG-INFO +1 -1
  5. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_device_routes.py +1 -1
  6. {remoterf-2.6.0 → remoterf-2.6.1}/LICENSE +0 -0
  7. {remoterf-2.6.0 → remoterf-2.6.1}/README.md +0 -0
  8. {remoterf-2.6.0 → remoterf-2.6.1}/setup.cfg +0 -0
  9. {remoterf-2.6.0 → remoterf-2.6.1}/setup.py +0 -0
  10. {remoterf-2.6.0 → remoterf-2.6.1}/src/_remoterf_alias.py +0 -0
  11. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/__init__.py +0 -0
  12. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/__init__.py +0 -0
  13. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/grpc/__init__.py +0 -0
  14. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/grpc/deployment_capabilities.proto +0 -0
  15. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/grpc/deployment_capabilities_pb2.py +0 -0
  16. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/grpc/deployment_capabilities_pb2_grpc.py +0 -0
  17. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/grpc/grpc.proto +0 -0
  18. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/grpc/grpc_pb2.py +0 -0
  19. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/grpc/grpc_pb2_grpc.py +0 -0
  20. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/grpc/v2_codec.py +0 -0
  21. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/tos_notice.txt +0 -0
  22. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/utils/__init__.py +0 -0
  23. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/utils/ansi_codes.py +0 -0
  24. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/utils/api_token.py +0 -0
  25. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/utils/banner.py +0 -0
  26. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/utils/list_string.py +0 -0
  27. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/common/utils/process_arg.py +0 -0
  28. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/config/__init__.py +0 -0
  29. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/config/cert_fetcher.py +0 -0
  30. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/config/config.py +0 -0
  31. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/__init__.py +0 -0
  32. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/acc_login.py +0 -0
  33. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/availability.py +0 -0
  34. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/banner_note.txt +0 -0
  35. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/direct_path.py +0 -0
  36. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/dynamic_v2_transport.py +0 -0
  37. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/grpc_acc.py +0 -0
  38. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/grpc_client.py +0 -0
  39. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/secure_channel.py +0 -0
  40. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/core/v2_errors.py +0 -0
  41. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/deployment/__init__.py +0 -0
  42. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/deployment/backend.py +0 -0
  43. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/deployment/direct.py +0 -0
  44. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/deployment/homes.py +0 -0
  45. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/deployment/http.py +0 -0
  46. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/deployment/state.py +0 -0
  47. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/__init__.py +0 -0
  48. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/_virtual.py +0 -0
  49. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/adalm_pluto/__init__.py +0 -0
  50. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/adalm_pluto/adalm_pluto_remote.py +0 -0
  51. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/dynamic_device.py +0 -0
  52. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/dynamic_v2.py +0 -0
  53. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/hackrf/__init__.py +0 -0
  54. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/hackrf/hackrf_remote.py +0 -0
  55. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/rtl_sdr/__init__.py +0 -0
  56. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/rtl_sdr/rtl_sdr_remote.py +0 -0
  57. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/sim_sdr/__init__.py +0 -0
  58. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/sim_sdr/sim_sdr_remote.py +0 -0
  59. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/support/__init__.py +0 -0
  60. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/support/ti_mmwave.py +0 -0
  61. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/support/uhd.py +0 -0
  62. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/support/uhd_dsp.py +0 -0
  63. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/support/uhd_v2.py +0 -0
  64. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/ti_mmwave/__init__.py +0 -0
  65. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/ti_mmwave/ti_mmwave_remote.py +0 -0
  66. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/usrp/__init__.py +0 -0
  67. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/usrp/usrp_remote.py +0 -0
  68. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/drivers/usrp/usrp_remote.pyi +0 -0
  69. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/remoterf_cli.py +0 -0
  70. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf/version.py +0 -0
  71. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf.egg-info/SOURCES.txt +0 -0
  72. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf.egg-info/dependency_links.txt +0 -0
  73. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf.egg-info/entry_points.txt +0 -0
  74. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf.egg-info/requires.txt +0 -0
  75. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf.egg-info/top_level.txt +0 -0
  76. {remoterf-2.6.0 → remoterf-2.6.1}/src/remoterf.py +0 -0
  77. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_banner.py +0 -0
  78. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_batch.py +0 -0
  79. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_bundled_drivers.py +0 -0
  80. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_cli_login_fresh.py +0 -0
  81. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_config_address.py +0 -0
  82. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_deployment_accounts.py +0 -0
  83. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_devices_api.py +0 -0
  84. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_direct_path_fixed.py +0 -0
  85. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_direct_path_global.py +0 -0
  86. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_direct_path_partner.py +0 -0
  87. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_direct_path_race.py +0 -0
  88. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_dynamic_device_codegen.py +0 -0
  89. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_dynamic_v2.py +0 -0
  90. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_federated_devices.py +0 -0
  91. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_fetch_idl_fallback.py +0 -0
  92. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_finish_prompt.py +0 -0
  93. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_gate_i_direct_path.py +0 -0
  94. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_grpc_client_target.py +0 -0
  95. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_homes.py +0 -0
  96. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_native_account_credentials.py +0 -0
  97. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_native_devices.py +0 -0
  98. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_old_import_name.py +0 -0
  99. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_partner_dynamic_v2.py +0 -0
  100. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_pluto_virtual.py +0 -0
  101. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_process_arg.py +0 -0
  102. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_relay_paging.py +0 -0
  103. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_remoterf_cli.py +0 -0
  104. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_rx_readahead.py +0 -0
  105. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_ti_mmwave.py +0 -0
  106. {remoterf-2.6.0 → remoterf-2.6.1}/tests/test_upgrade_rescue.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoterf
3
- Version: 2.6.0
3
+ Version: 2.6.1
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.6.0"
7
+ version = "2.6.1"
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"
@@ -567,7 +567,7 @@ def _federated_devices():
567
567
  deployment = dev["deployment_name"]
568
568
  printf(f" @{deployment}", (Sty.BOLD, Sty.MAGENTA))
569
569
  state = "online" if dev["online"] else "offline"
570
- printf(" Device Name: ", Sty.GRAY, f"{dev['display_name']}{_handle_tag(dev)}", Sty.DEFAULT, f" ({dev['device_type'] or 'unknown'}, {state})", Sty.GRAY)
570
+ printf(f" ({state}) ", Sty.GREEN if dev["online"] else Sty.GRAY, f"{dev['display_name']}{_handle_tag(dev)}", Sty.DEFAULT)
571
571
  if data.get("incomplete"):
572
572
  printf(f"{data['omitted_count']} more deployment(s) were not queried.", Sty.WARNING)
573
573
  return data
@@ -939,8 +939,9 @@ def _print_native_devices(rows, *, numbered=False):
939
939
  lab = row["lab"]
940
940
  printf(f" @{lab}", (Sty.BOLD, Sty.MAGENTA))
941
941
  prefix = (f"{index}. ", Sty.CYAN) if numbered else ()
942
- printf(*prefix, " Device Name: " if not numbered else " Device Name: ", Sty.GRAY,
943
- row["name"], Sty.DEFAULT, f" ({row['state']})" if row["state"] else "", Sty.GRAY)
942
+ state = row["state"] or ""
943
+ printf(*prefix, (" " if not numbered else "") + (f"({state}) " if state else ""),
944
+ Sty.GREEN if state.startswith("online") else Sty.GRAY, row["name"], Sty.DEFAULT)
944
945
 
945
946
 
946
947
  def devices():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoterf
3
- Version: 2.6.0
3
+ Version: 2.6.1
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
@@ -618,7 +618,7 @@ def test_resdev_n_lists_numbered_devices(monkeypatch):
618
618
  lines = _shown(monkeypatch, client_app)
619
619
  account, _ = _native_shell(monkeypatch, client_app, ["1", "2026-01-01 10:00", "2026-01-01 11:00"])
620
620
  client_app.reserve()
621
- assert "1. Device Name: Pluto SDR (OTA) [PlutoA] (online)" in lines
621
+ assert "1. (online) Pluto SDR (OTA) [PlutoA]" in lines
622
622
  assert _row(lines, "Device", "handle", "PlutoA@ucla")
623
623
  assert account.reserve_device.call_args.args[0] == 3
624
624
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes