RemoteRF 2.6.0__tar.gz → 2.6.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.
- {remoterf-2.6.0/src/remoterf.egg-info → remoterf-2.6.2}/PKG-INFO +1 -1
- {remoterf-2.6.0 → remoterf-2.6.2}/pyproject.toml +1 -1
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/app.py +8 -4
- {remoterf-2.6.0 → remoterf-2.6.2/src/remoterf.egg-info}/PKG-INFO +1 -1
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_device_routes.py +1 -1
- {remoterf-2.6.0 → remoterf-2.6.2}/LICENSE +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/README.md +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/setup.cfg +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/setup.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/_remoterf_alias.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/grpc/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/grpc/deployment_capabilities.proto +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/grpc/deployment_capabilities_pb2.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/grpc/deployment_capabilities_pb2_grpc.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/grpc/grpc.proto +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/grpc/grpc_pb2.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/grpc/grpc_pb2_grpc.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/grpc/v2_codec.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/tos_notice.txt +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/utils/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/utils/ansi_codes.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/utils/api_token.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/utils/banner.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/utils/list_string.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/utils/process_arg.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/config/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/config/cert_fetcher.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/config/config.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/acc_login.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/availability.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/banner_note.txt +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/direct_path.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/dynamic_v2_transport.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/grpc_acc.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/grpc_client.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/secure_channel.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/core/v2_errors.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/deployment/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/deployment/backend.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/deployment/direct.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/deployment/homes.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/deployment/http.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/deployment/state.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/_virtual.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/adalm_pluto/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/adalm_pluto/adalm_pluto_remote.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/dynamic_device.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/dynamic_v2.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/hackrf/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/hackrf/hackrf_remote.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/rtl_sdr/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/rtl_sdr/rtl_sdr_remote.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/sim_sdr/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/sim_sdr/sim_sdr_remote.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/support/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/support/ti_mmwave.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/support/uhd.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/support/uhd_dsp.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/support/uhd_v2.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/ti_mmwave/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/ti_mmwave/ti_mmwave_remote.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/usrp/__init__.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/usrp/usrp_remote.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/drivers/usrp/usrp_remote.pyi +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/remoterf_cli.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/version.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf.egg-info/SOURCES.txt +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf.egg-info/dependency_links.txt +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf.egg-info/entry_points.txt +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf.egg-info/requires.txt +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf.egg-info/top_level.txt +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_banner.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_batch.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_bundled_drivers.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_cli_login_fresh.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_config_address.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_deployment_accounts.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_devices_api.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_direct_path_fixed.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_direct_path_global.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_direct_path_partner.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_direct_path_race.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_dynamic_device_codegen.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_dynamic_v2.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_federated_devices.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_fetch_idl_fallback.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_finish_prompt.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_gate_i_direct_path.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_grpc_client_target.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_homes.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_native_account_credentials.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_native_devices.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_old_import_name.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_partner_dynamic_v2.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_pluto_virtual.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_process_arg.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_relay_paging.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_remoterf_cli.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_rx_readahead.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.2}/tests/test_ti_mmwave.py +0 -0
- {remoterf-2.6.0 → remoterf-2.6.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.6.
|
|
3
|
+
Version: 2.6.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.6.
|
|
7
|
+
version = "2.6.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"
|
|
@@ -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("
|
|
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
|
-
|
|
943
|
-
|
|
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():
|
|
@@ -1209,13 +1210,16 @@ def enroll(code=None):
|
|
|
1209
1210
|
# Codes are handed out as <lab>/<code>; the lab part only says where to
|
|
1210
1211
|
# register. Here we are already logged in somewhere, so strip it -- and
|
|
1211
1212
|
# say so if it names a different lab than this one.
|
|
1213
|
+
typed = code
|
|
1212
1214
|
try:
|
|
1213
1215
|
from remoterf.deployment import homes
|
|
1214
1216
|
|
|
1215
1217
|
host, code = homes.parse_code(code)
|
|
1216
1218
|
except Exception: # noqa: BLE001 - not in that form; send as typed
|
|
1217
1219
|
host = None
|
|
1218
|
-
if
|
|
1220
|
+
if account.is_https_home:
|
|
1221
|
+
code = typed # Global enrols at the lab the invite names, so it needs the whole invite
|
|
1222
|
+
elif host and home_name and homes.home_name_for(host) != home_name:
|
|
1219
1223
|
printf(f"That code is for {host}, not {home_name}. Register there with: remoterf -r", Sty.WARNING)
|
|
1220
1224
|
return False
|
|
1221
1225
|
account.enrollment_code = code
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: remoterf
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.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
|
|
@@ -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.
|
|
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
|
|
File without changes
|
|
File without changes
|
{remoterf-2.6.0 → remoterf-2.6.2}/src/remoterf/common/grpc/deployment_capabilities_pb2_grpc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|