remoteRF-server 1.4.9__tar.gz → 1.7.0__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 (225) hide show
  1. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/PKG-INFO +7 -4
  2. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/README.md +3 -2
  3. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/pyproject.toml +4 -2
  4. remoterf_server-1.7.0/src/remoteRF_server/common/grpc/grpc_host_pb2.py +20 -0
  5. remoterf_server-1.7.0/src/remoteRF_server/common/grpc/grpc_host_pb2_grpc.py +20 -0
  6. remoterf_server-1.7.0/src/remoteRF_server/common/grpc/grpc_pb2.py +20 -0
  7. remoterf_server-1.7.0/src/remoteRF_server/common/grpc/grpc_pb2_grpc.py +20 -0
  8. remoterf_server-1.7.0/src/remoteRF_server/common/grpc/v2_codec.py +20 -0
  9. remoterf_server-1.7.0/src/remoteRF_server/common/idl/pluto_mimo_schema.py +20 -0
  10. remoterf_server-1.7.0/src/remoteRF_server/common/idl/pluto_schema.py +20 -0
  11. remoterf_server-1.7.0/src/remoteRF_server/common/idl/schema.py +24 -0
  12. remoterf_server-1.4.9/src/remoteRF_server/common/idl/pluto_mimo_schema.py → remoterf_server-1.7.0/src/remoteRF_server/common/idl/v2.py +4 -5
  13. remoterf_server-1.7.0/src/remoteRF_server/common/utils/ansi_codes.py +20 -0
  14. remoterf_server-1.7.0/src/remoteRF_server/common/utils/process_arg.py +20 -0
  15. remoterf_server-1.7.0/src/remoteRF_server/drivers/adalm_pluto/pluto_mimo_schema.py +20 -0
  16. remoterf_server-1.7.0/src/remoteRF_server/drivers/adalm_pluto/pluto_schema.py +20 -0
  17. remoterf_server-1.7.0/src/remoteRF_server/drivers/adalm_pluto/poe.py +20 -0
  18. remoterf_server-1.7.0/src/remoteRF_server/drivers/hackrf/hackrf_schema.py +20 -0
  19. remoterf_server-1.7.0/src/remoteRF_server/drivers/rtl_sdr/rtl_sdr_schema.py +20 -0
  20. remoterf_server-1.7.0/src/remoteRF_server/drivers/ti_mmwave/ti_mmwave_schema.py +20 -0
  21. remoterf_server-1.7.0/src/remoteRF_server/drivers/usrp/policy.py +20 -0
  22. remoterf_server-1.7.0/src/remoteRF_server/drivers/usrp/profiles.py +20 -0
  23. remoterf_server-1.7.0/src/remoteRF_server/drivers/usrp/uhd_manifest.py +20 -0
  24. remoterf_server-1.7.0/src/remoteRF_server/drivers/usrp/usrp_schema.py +20 -0
  25. remoterf_server-1.7.0/src/remoteRF_server/drivers/usrp_phaser/usrp_phaser_schema.py +20 -0
  26. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/host/host_tunnel_server.py +387 -6
  27. remoterf_server-1.7.0/src/remoteRF_server/remote_admin_shell.py +347 -0
  28. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/acc_perms.py +4 -2
  29. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/commands.py +42 -12
  30. remoterf_server-1.7.0/src/remoteRF_server/server/control.py +212 -0
  31. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/device_manager.py +26 -5
  32. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/direct_path.py +5 -181
  33. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/__init__.py +2 -2
  34. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/cli.py +16 -17
  35. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/cluster.py +154 -19
  36. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/devices.py +35 -5
  37. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/enrollment.py +187 -9
  38. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/home.py +28 -2
  39. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/home_devices.py +1 -1
  40. remoterf_server-1.7.0/src/remoteRF_server/server/federation/links.py +83 -0
  41. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/migrations.py +7 -0
  42. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/permissions.py +6 -1
  43. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/principals.py +61 -0
  44. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/global_onboarding.py +57 -17
  45. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/grpc_server.py +100 -19
  46. remoterf_server-1.7.0/src/remoteRF_server/server/host_direct.py +320 -0
  47. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/host_dynamic_v2.py +61 -2
  48. remoterf_server-1.7.0/src/remoteRF_server/server/remote_admin.py +772 -0
  49. remoterf_server-1.7.0/src/remoteRF_server/server/remote_admin_ssh.py +553 -0
  50. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/reservation.py +213 -19
  51. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/rpc_manager.py +8 -1
  52. remoterf_server-1.7.0/src/remoteRF_server/server/schema_registry.py +171 -0
  53. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/user_group_cli.py +5 -4
  54. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/user_group_handler.py +33 -6
  55. remoterf_server-1.7.0/src/remoteRF_server/server/v2_errors.py +20 -0
  56. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/serverrf_cli.py +7 -0
  57. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server.egg-info/PKG-INFO +7 -4
  58. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server.egg-info/SOURCES.txt +12 -2
  59. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server.egg-info/requires.txt +3 -1
  60. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_client_sessions.py +22 -0
  61. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_cluster.py +25 -0
  62. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_deployment_capabilities.py +2 -1
  63. remoterf_server-1.7.0/tests/test_device_core_aliases.py +55 -0
  64. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_diag.py +14 -0
  65. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_federation_edges.py +23 -0
  66. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_gate_e_proto.py +1 -1
  67. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_gate_h_devices.py +50 -3
  68. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_global_onboarding.py +24 -6
  69. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_home_device_plane.py +1 -1
  70. remoterf_server-1.7.0/tests/test_host_direct.py +586 -0
  71. remoterf_server-1.7.0/tests/test_host_dynamic_v2.py +309 -0
  72. remoterf_server-1.7.0/tests/test_lab_logins.py +252 -0
  73. remoterf_server-1.7.0/tests/test_proxy_lifecycle.py +258 -0
  74. remoterf_server-1.7.0/tests/test_remote_admin.py +645 -0
  75. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_reservation_policy_b.py +7 -0
  76. remoterf_server-1.7.0/tests/test_schema_registry.py +79 -0
  77. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_soak_federation.py +14 -7
  78. remoterf_server-1.4.9/src/remoteRF_server/common/grpc/grpc.proto +0 -237
  79. remoterf_server-1.4.9/src/remoteRF_server/common/grpc/grpc_host.proto +0 -118
  80. remoterf_server-1.4.9/src/remoteRF_server/common/grpc/grpc_host_pb2.py +0 -78
  81. remoterf_server-1.4.9/src/remoteRF_server/common/grpc/grpc_host_pb2_grpc.py +0 -112
  82. remoterf_server-1.4.9/src/remoteRF_server/common/grpc/grpc_pb2.py +0 -116
  83. remoterf_server-1.4.9/src/remoteRF_server/common/grpc/grpc_pb2_grpc.py +0 -477
  84. remoterf_server-1.4.9/src/remoteRF_server/common/grpc/v2_codec.py +0 -146
  85. remoterf_server-1.4.9/src/remoteRF_server/common/idl/pluto_schema.py +0 -445
  86. remoterf_server-1.4.9/src/remoteRF_server/common/idl/schema.py +0 -1144
  87. remoterf_server-1.4.9/src/remoteRF_server/common/idl/v2.py +0 -311
  88. remoterf_server-1.4.9/src/remoteRF_server/common/utils/ansi_codes.py +0 -135
  89. remoterf_server-1.4.9/src/remoteRF_server/common/utils/process_arg.py +0 -246
  90. remoterf_server-1.4.9/src/remoteRF_server/drivers/adalm_pluto/pluto_mimo_schema.py +0 -231
  91. remoterf_server-1.4.9/src/remoteRF_server/drivers/adalm_pluto/pluto_schema.py +0 -445
  92. remoterf_server-1.4.9/src/remoteRF_server/drivers/adalm_pluto/poe.py +0 -255
  93. remoterf_server-1.4.9/src/remoteRF_server/drivers/hackrf/hackrf_schema.py +0 -448
  94. remoterf_server-1.4.9/src/remoteRF_server/drivers/rtl_sdr/rtl_sdr_schema.py +0 -351
  95. remoterf_server-1.4.9/src/remoteRF_server/drivers/ti_mmwave/ti_mmwave_schema.py +0 -667
  96. remoterf_server-1.4.9/src/remoteRF_server/drivers/usrp/policy.py +0 -56
  97. remoterf_server-1.4.9/src/remoteRF_server/drivers/usrp/profiles.py +0 -366
  98. remoterf_server-1.4.9/src/remoteRF_server/drivers/usrp/uhd_manifest.py +0 -1666
  99. remoterf_server-1.4.9/src/remoteRF_server/drivers/usrp/usrp_schema.py +0 -1174
  100. remoterf_server-1.4.9/src/remoteRF_server/drivers/usrp_phaser/usrp_phaser_schema.py +0 -556
  101. remoterf_server-1.4.9/src/remoteRF_server/server/control.py +0 -139
  102. remoterf_server-1.4.9/src/remoteRF_server/server/v2_errors.py +0 -114
  103. remoterf_server-1.4.9/tests/test_host_dynamic_v2.py +0 -160
  104. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/LICENSE +0 -0
  105. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/setup.cfg +0 -0
  106. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/__init__.py +0 -0
  107. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/__init__.py +0 -0
  108. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/grpc/__init__.py +0 -0
  109. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/grpc/deployment_capabilities.proto +0 -0
  110. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/grpc/deployment_capabilities_pb2.py +0 -0
  111. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/grpc/deployment_capabilities_pb2_grpc.py +0 -0
  112. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/grpc/federation.proto +0 -0
  113. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/grpc/federation_pb2.py +0 -0
  114. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/grpc/federation_pb2_grpc.py +0 -0
  115. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/idl/__init__.py +0 -0
  116. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/idl/device_schema.py +0 -0
  117. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/utils/__init__.py +0 -0
  118. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/utils/api_token.py +0 -0
  119. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/utils/db_connection.py +0 -0
  120. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/utils/db_location.py +0 -0
  121. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/utils/list_string.py +0 -0
  122. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/common/utils/panel.py +0 -0
  123. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/__init__.py +0 -0
  124. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/adalm_pluto/__init__.py +0 -0
  125. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/adalm_pluto/pluto_diag.py +0 -0
  126. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/adalm_pluto/pluto_remote_server.py +0 -0
  127. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/bluetooth_diag.py +0 -0
  128. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/gps_diag.py +0 -0
  129. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/hackrf/__init__.py +0 -0
  130. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/rtl_sdr/__init__.py +0 -0
  131. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/rtl_sdr/rtl_sdr_diag.py +0 -0
  132. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/ti_mmwave/__init__.py +0 -0
  133. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/usrp/__init__.py +0 -0
  134. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/usrp/usrp_diag.py +0 -0
  135. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/drivers/usrp_phaser/__init__.py +0 -0
  136. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/host/__init__.py +0 -0
  137. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/host/host_auth_token.py +0 -0
  138. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/host/host_directory_store.py +0 -0
  139. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/__init__.py +0 -0
  140. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/cert_provider.py +0 -0
  141. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/console.py +0 -0
  142. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/deployment/__init__.py +0 -0
  143. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/deployment/capabilities.py +0 -0
  144. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/diag.py +0 -0
  145. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/dynamic_v2.py +0 -0
  146. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/dynamic_v2_bridge.py +0 -0
  147. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/admin.py +0 -0
  148. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/contracts.py +0 -0
  149. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/destination.py +0 -0
  150. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/global_home.py +0 -0
  151. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/identity.py +0 -0
  152. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/legacy_state.py +0 -0
  153. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/peers.py +0 -0
  154. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/runtime.py +0 -0
  155. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/federation/trust.py +0 -0
  156. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/server/startup_check.py +0 -0
  157. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/tools/__init__.py +0 -0
  158. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/tools/gen_certs.py +0 -0
  159. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/tools/gist_status.py +0 -0
  160. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/tools/gist_status_testing.py +0 -0
  161. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server/tools/introspect_uhd.py +0 -0
  162. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server.egg-info/dependency_links.txt +0 -0
  163. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server.egg-info/entry_points.txt +0 -0
  164. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/src/remoteRF_server.egg-info/top_level.txt +0 -0
  165. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_account_hardening.py +0 -0
  166. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_account_names.py +0 -0
  167. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_account_removal.py +0 -0
  168. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_activity_log.py +0 -0
  169. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_availability.py +0 -0
  170. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_bind_host.py +0 -0
  171. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_cert_provider.py +0 -0
  172. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_commands.py +0 -0
  173. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_console.py +0 -0
  174. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_contrib_drivers.py +0 -0
  175. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_default_rtl_sdr_schema.py +0 -0
  176. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_default_usrp_schema.py +0 -0
  177. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_detached_device_rpc.py +0 -0
  178. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_device_handles.py +0 -0
  179. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_device_init.py +0 -0
  180. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_devices_add_wizard.py +0 -0
  181. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_devices_list.py +0 -0
  182. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_direct_fixed_port.py +0 -0
  183. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_direct_path_server.py +0 -0
  184. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_dynamic_v2.py +0 -0
  185. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_federated_direct_path.py +0 -0
  186. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_federated_dynamic_v2.py +0 -0
  187. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_first_run.py +0 -0
  188. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_gate_d_contracts.py +0 -0
  189. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_gate_e_federation.py +0 -0
  190. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_gate_f_enrollment.py +0 -0
  191. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_gate_g1_logging.py +0 -0
  192. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_gate_g_permissions.py +0 -0
  193. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_gate_i_direct_path.py +0 -0
  194. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_gen_certs.py +0 -0
  195. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_global_accounts_migration.py +0 -0
  196. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_global_home.py +0 -0
  197. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_global_v1_disposal.py +0 -0
  198. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_hackrf_schema.py +0 -0
  199. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_host_directory_store.py +0 -0
  200. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_idl_schema.py +0 -0
  201. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_panel.py +0 -0
  202. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_peer_transport.py +0 -0
  203. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_pluto_compat.py +0 -0
  204. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_pluto_poe.py +0 -0
  205. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_process_arg.py +0 -0
  206. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_reservation_handoff.py +0 -0
  207. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_reservation_timestamps.py +0 -0
  208. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_rpc_manager_batch.py +0 -0
  209. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_rpc_manager_calln.py +0 -0
  210. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_rpc_manager_rx_n.py +0 -0
  211. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_rtl_sdr_schema.py +0 -0
  212. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_startup_check.py +0 -0
  213. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_status_push.py +0 -0
  214. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_ti_mmwave_hardware.py +0 -0
  215. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_ti_mmwave_schema.py +0 -0
  216. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_user_group_cli.py +0 -0
  217. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_usrp_b205mini_uhd410_hardware.py +0 -0
  218. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_usrp_client_server_hardware.py +0 -0
  219. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_usrp_client_server_localhost.py +0 -0
  220. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_usrp_n210_client_server_hardware.py +0 -0
  221. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_usrp_preload.py +0 -0
  222. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_usrp_profiles.py +0 -0
  223. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_usrp_remoterf_rx_hardware.py +0 -0
  224. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_usrp_uhd410_hardware.py +0 -0
  225. {remoterf_server-1.4.9 → remoterf_server-1.7.0}/tests/test_wipe.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoteRF-server
3
- Version: 1.4.9
3
+ Version: 1.7.0
4
4
  Summary: RemoteRF server-side control package
5
5
  License: GPL-3.0-or-later
6
6
  Classifier: Programming Language :: Python :: 3
@@ -9,7 +9,8 @@ Classifier: Operating System :: OS Independent
9
9
  Requires-Python: >=3.10
10
10
  Description-Content-Type: text/markdown
11
11
  License-File: LICENSE
12
- Requires-Dist: remoterf-federation-core==0.21.0
12
+ Requires-Dist: remoterf-federation-core==0.22.0
13
+ Requires-Dist: remoterf-device-core==0.1.0
13
14
  Requires-Dist: grpcio<2.0.0,>=1.81.1
14
15
  Requires-Dist: protobuf<7.0.0,>=6.33.5
15
16
  Requires-Dist: numpy
@@ -27,6 +28,7 @@ Requires-Dist: pyjwt<3.0,>=2.8
27
28
  Requires-Dist: cryptography<44,>=42
28
29
  Requires-Dist: aioice<0.11,>=0.10
29
30
  Requires-Dist: aioquic<2.0,>=1.2
31
+ Requires-Dist: paramiko<6,>=3.4
30
32
  Dynamic: license-file
31
33
 
32
34
  # Remote RF Server Guide (Linux)
@@ -257,7 +259,7 @@ You most likely will need to port forward, etc.
257
259
  Troubleshooting:
258
260
  Some distros come with default firewall settings that block traffic on specific ports. Make sure that your firewall settings permit traffic to and from the server. Depending on the setup, you may also have ISP firewalls.
259
261
 
260
- ## RemoteRF federation v2 Phase 1
262
+ ## RemoteRF federation Phase 1
261
263
 
262
264
  The `global-dev` branch implements the development-only Phase-1 federation
263
265
  boundary. A Server can issue and verify participant-signed
@@ -881,10 +883,11 @@ After running `serverrf --serve`, you’ll enter the **RemoteRF Server Shell**.
881
883
 
882
884
  ### Users
883
885
 
884
- * `users list` — List all accounts
886
+ * `users list` — List all accounts (this deployment's own first, then visitors from partner deployments)
885
887
  * `users manage` — Manage a specific user (perms / delete / reservations)
886
888
  * `users purge` — Delete **all** users
887
889
  * `users perms` — Show permissions table
890
+ * `users prune-proxies [--stale DAYS] [-y]` — List federated proxies whose home deployment is gone (dry run); `-y` removes them
888
891
 
889
892
  ---
890
893
 
@@ -226,7 +226,7 @@ You most likely will need to port forward, etc.
226
226
  Troubleshooting:
227
227
  Some distros come with default firewall settings that block traffic on specific ports. Make sure that your firewall settings permit traffic to and from the server. Depending on the setup, you may also have ISP firewalls.
228
228
 
229
- ## RemoteRF federation v2 Phase 1
229
+ ## RemoteRF federation Phase 1
230
230
 
231
231
  The `global-dev` branch implements the development-only Phase-1 federation
232
232
  boundary. A Server can issue and verify participant-signed
@@ -850,10 +850,11 @@ After running `serverrf --serve`, you’ll enter the **RemoteRF Server Shell**.
850
850
 
851
851
  ### Users
852
852
 
853
- * `users list` — List all accounts
853
+ * `users list` — List all accounts (this deployment's own first, then visitors from partner deployments)
854
854
  * `users manage` — Manage a specific user (perms / delete / reservations)
855
855
  * `users purge` — Delete **all** users
856
856
  * `users perms` — Show permissions table
857
+ * `users prune-proxies [--stale DAYS] [-y]` — List federated proxies whose home deployment is gone (dry run); `-y` removes them
857
858
 
858
859
  ---
859
860
 
@@ -4,12 +4,13 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "remoteRF-server"
7
- version = "1.4.9"
7
+ version = "1.7.0"
8
8
  description = "RemoteRF server-side control package"
9
9
  license = { text = "GPL-3.0-or-later" }
10
10
  requires-python = ">=3.10"
11
11
  dependencies = [
12
- "remoterf-federation-core==0.21.0",
12
+ "remoterf-federation-core==0.22.0",
13
+ "remoterf-device-core==0.1.0",
13
14
  "grpcio>=1.81.1,<2.0.0",
14
15
  "protobuf>=6.33.5,<7.0.0",
15
16
  "numpy",
@@ -27,6 +28,7 @@ dependencies = [
27
28
  "cryptography>=42,<44",
28
29
  "aioice>=0.10,<0.11",
29
30
  "aioquic>=1.2,<2.0",
31
+ "paramiko>=3.4,<6",
30
32
  ]
31
33
  readme = "README.md"
32
34
  classifiers = [
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.grpc.grpc_host_pb2); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.grpc.grpc_host_pb2")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.grpc.grpc_host_pb2_grpc); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.grpc.grpc_host_pb2_grpc")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.grpc.grpc_pb2); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.grpc.grpc_pb2")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.grpc.grpc_pb2_grpc); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.grpc.grpc_pb2_grpc")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.grpc.v2_codec); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.grpc.v2_codec")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.adalm_pluto.pluto_mimo_schema); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.adalm_pluto.pluto_mimo_schema")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.adalm_pluto.pluto_schema); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.adalm_pluto.pluto_schema")
@@ -0,0 +1,24 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.idl.schema); this name stays importable."""
17
+ import sys
18
+
19
+ from remoterf_device_core.idl import schema as _schema
20
+
21
+ from ..utils.db_location import get_drivers_dir
22
+
23
+ _schema.set_drivers_dir_provider(get_drivers_dir)
24
+ sys.modules[__name__] = _schema
@@ -13,9 +13,8 @@
13
13
  # You should have received a copy of the GNU General Public License
14
14
  # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
15
 
16
- # Built-in import shim for the packaged ADALM Pluto MIMO schema.
16
+ """Lives in remoterf-device-core (remoterf_device_core.idl.v2); this name stays importable."""
17
+ import importlib
18
+ import sys
17
19
 
18
- from remoteRF_server.drivers.adalm_pluto.pluto_mimo_schema import ( # noqa: F401
19
- PlutoMIMOSchema,
20
- connect_pluto_mimo,
21
- )
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.idl.v2")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.utils.ansi_codes); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.utils.ansi_codes")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.utils.process_arg); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.utils.process_arg")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.adalm_pluto.pluto_mimo_schema); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.adalm_pluto.pluto_mimo_schema")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.adalm_pluto.pluto_schema); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.adalm_pluto.pluto_schema")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.adalm_pluto.poe); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.adalm_pluto.poe")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.hackrf.hackrf_schema); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.hackrf.hackrf_schema")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.rtl_sdr.rtl_sdr_schema); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.rtl_sdr.rtl_sdr_schema")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.ti_mmwave.ti_mmwave_schema); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.ti_mmwave.ti_mmwave_schema")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.usrp.policy); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.usrp.policy")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.usrp.profiles); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.usrp.profiles")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.usrp.uhd_manifest); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.usrp.uhd_manifest")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.usrp.usrp_schema); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.usrp.usrp_schema")
@@ -0,0 +1,20 @@
1
+ # Copyright (C) 2026 RemoteRF
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
+
16
+ """Lives in remoterf-device-core (remoterf_device_core.drivers.usrp_phaser.usrp_phaser_schema); this name stays importable."""
17
+ import importlib
18
+ import sys
19
+
20
+ sys.modules[__name__] = importlib.import_module("remoterf_device_core.drivers.usrp_phaser.usrp_phaser_schema")