remoteRF-server 1.4.10__tar.gz → 1.7.3__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 (226) hide show
  1. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/PKG-INFO +7 -5
  2. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/README.md +3 -3
  3. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/pyproject.toml +4 -2
  4. remoterf_server-1.7.3/src/remoteRF_server/common/grpc/grpc_host_pb2.py +20 -0
  5. remoterf_server-1.7.3/src/remoteRF_server/common/grpc/grpc_host_pb2_grpc.py +20 -0
  6. remoterf_server-1.7.3/src/remoteRF_server/common/grpc/grpc_pb2.py +20 -0
  7. remoterf_server-1.7.3/src/remoteRF_server/common/grpc/grpc_pb2_grpc.py +20 -0
  8. remoterf_server-1.7.3/src/remoteRF_server/common/grpc/v2_codec.py +20 -0
  9. remoterf_server-1.7.3/src/remoteRF_server/common/idl/pluto_mimo_schema.py +20 -0
  10. remoterf_server-1.7.3/src/remoteRF_server/common/idl/pluto_schema.py +20 -0
  11. remoterf_server-1.7.3/src/remoteRF_server/common/idl/schema.py +24 -0
  12. remoterf_server-1.4.10/src/remoteRF_server/common/idl/pluto_mimo_schema.py → remoterf_server-1.7.3/src/remoteRF_server/common/idl/v2.py +4 -5
  13. remoterf_server-1.7.3/src/remoteRF_server/common/utils/ansi_codes.py +20 -0
  14. remoterf_server-1.7.3/src/remoteRF_server/common/utils/process_arg.py +20 -0
  15. remoterf_server-1.7.3/src/remoteRF_server/drivers/adalm_pluto/pluto_mimo_schema.py +20 -0
  16. remoterf_server-1.7.3/src/remoteRF_server/drivers/adalm_pluto/pluto_schema.py +20 -0
  17. remoterf_server-1.7.3/src/remoteRF_server/drivers/adalm_pluto/poe.py +20 -0
  18. remoterf_server-1.7.3/src/remoteRF_server/drivers/hackrf/hackrf_schema.py +20 -0
  19. remoterf_server-1.7.3/src/remoteRF_server/drivers/rtl_sdr/rtl_sdr_schema.py +20 -0
  20. remoterf_server-1.7.3/src/remoteRF_server/drivers/ti_mmwave/ti_mmwave_schema.py +20 -0
  21. remoterf_server-1.7.3/src/remoteRF_server/drivers/usrp/policy.py +20 -0
  22. remoterf_server-1.7.3/src/remoteRF_server/drivers/usrp/profiles.py +20 -0
  23. remoterf_server-1.7.3/src/remoteRF_server/drivers/usrp/uhd_manifest.py +20 -0
  24. remoterf_server-1.7.3/src/remoteRF_server/drivers/usrp/usrp_schema.py +20 -0
  25. remoterf_server-1.7.3/src/remoteRF_server/drivers/usrp_phaser/usrp_phaser_schema.py +20 -0
  26. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/host/host_tunnel_server.py +387 -6
  27. remoterf_server-1.7.3/src/remoteRF_server/remote_admin_shell.py +347 -0
  28. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/acc_perms.py +4 -2
  29. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/commands.py +42 -13
  30. remoterf_server-1.7.3/src/remoteRF_server/server/control.py +212 -0
  31. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/device_manager.py +46 -5
  32. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/direct_path.py +5 -181
  33. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/__init__.py +2 -2
  34. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/cli.py +16 -17
  35. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/cluster.py +67 -15
  36. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/devices.py +29 -5
  37. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/enrollment.py +147 -11
  38. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/home_devices.py +1 -1
  39. remoterf_server-1.7.3/src/remoteRF_server/server/federation/links.py +83 -0
  40. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/permissions.py +4 -1
  41. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/global_onboarding.py +48 -18
  42. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/grpc_server.py +58 -25
  43. remoterf_server-1.7.3/src/remoteRF_server/server/host_direct.py +320 -0
  44. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/host_dynamic_v2.py +61 -2
  45. remoterf_server-1.7.3/src/remoteRF_server/server/remote_admin.py +772 -0
  46. remoterf_server-1.7.3/src/remoteRF_server/server/remote_admin_ssh.py +553 -0
  47. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/reservation.py +192 -20
  48. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/rpc_manager.py +19 -3
  49. remoterf_server-1.7.3/src/remoteRF_server/server/schema_registry.py +171 -0
  50. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/user_group_cli.py +5 -4
  51. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/user_group_handler.py +29 -5
  52. remoterf_server-1.7.3/src/remoteRF_server/server/v2_errors.py +20 -0
  53. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/serverrf_cli.py +7 -0
  54. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server.egg-info/PKG-INFO +7 -5
  55. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server.egg-info/SOURCES.txt +12 -2
  56. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server.egg-info/requires.txt +3 -1
  57. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_client_sessions.py +22 -0
  58. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_cluster.py +25 -0
  59. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_deployment_capabilities.py +2 -1
  60. remoterf_server-1.7.3/tests/test_device_core_aliases.py +55 -0
  61. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_diag.py +14 -0
  62. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_federation_edges.py +23 -0
  63. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_gate_e_proto.py +1 -1
  64. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_gate_h_devices.py +50 -3
  65. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_global_home.py +14 -0
  66. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_global_onboarding.py +5 -4
  67. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_home_device_plane.py +1 -1
  68. remoterf_server-1.7.3/tests/test_host_direct.py +586 -0
  69. remoterf_server-1.7.3/tests/test_host_dynamic_v2.py +309 -0
  70. remoterf_server-1.7.3/tests/test_lab_logins.py +252 -0
  71. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_proxy_lifecycle.py +1 -1
  72. remoterf_server-1.7.3/tests/test_remote_admin.py +650 -0
  73. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_reservation_handoff.py +25 -0
  74. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_reservation_policy_b.py +7 -0
  75. remoterf_server-1.7.3/tests/test_rpc_manager_host_legacy.py +49 -0
  76. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_rpc_manager_rx_n.py +1 -1
  77. remoterf_server-1.7.3/tests/test_schema_registry.py +79 -0
  78. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_soak_federation.py +14 -7
  79. remoterf_server-1.4.10/src/remoteRF_server/common/grpc/grpc.proto +0 -237
  80. remoterf_server-1.4.10/src/remoteRF_server/common/grpc/grpc_host.proto +0 -118
  81. remoterf_server-1.4.10/src/remoteRF_server/common/grpc/grpc_host_pb2.py +0 -78
  82. remoterf_server-1.4.10/src/remoteRF_server/common/grpc/grpc_host_pb2_grpc.py +0 -112
  83. remoterf_server-1.4.10/src/remoteRF_server/common/grpc/grpc_pb2.py +0 -116
  84. remoterf_server-1.4.10/src/remoteRF_server/common/grpc/grpc_pb2_grpc.py +0 -477
  85. remoterf_server-1.4.10/src/remoteRF_server/common/grpc/v2_codec.py +0 -146
  86. remoterf_server-1.4.10/src/remoteRF_server/common/idl/pluto_schema.py +0 -445
  87. remoterf_server-1.4.10/src/remoteRF_server/common/idl/schema.py +0 -1144
  88. remoterf_server-1.4.10/src/remoteRF_server/common/idl/v2.py +0 -311
  89. remoterf_server-1.4.10/src/remoteRF_server/common/utils/ansi_codes.py +0 -135
  90. remoterf_server-1.4.10/src/remoteRF_server/common/utils/process_arg.py +0 -246
  91. remoterf_server-1.4.10/src/remoteRF_server/drivers/adalm_pluto/pluto_mimo_schema.py +0 -231
  92. remoterf_server-1.4.10/src/remoteRF_server/drivers/adalm_pluto/pluto_schema.py +0 -445
  93. remoterf_server-1.4.10/src/remoteRF_server/drivers/adalm_pluto/poe.py +0 -255
  94. remoterf_server-1.4.10/src/remoteRF_server/drivers/hackrf/hackrf_schema.py +0 -448
  95. remoterf_server-1.4.10/src/remoteRF_server/drivers/rtl_sdr/rtl_sdr_schema.py +0 -351
  96. remoterf_server-1.4.10/src/remoteRF_server/drivers/ti_mmwave/ti_mmwave_schema.py +0 -667
  97. remoterf_server-1.4.10/src/remoteRF_server/drivers/usrp/policy.py +0 -56
  98. remoterf_server-1.4.10/src/remoteRF_server/drivers/usrp/profiles.py +0 -366
  99. remoterf_server-1.4.10/src/remoteRF_server/drivers/usrp/uhd_manifest.py +0 -1666
  100. remoterf_server-1.4.10/src/remoteRF_server/drivers/usrp/usrp_schema.py +0 -1174
  101. remoterf_server-1.4.10/src/remoteRF_server/drivers/usrp_phaser/usrp_phaser_schema.py +0 -556
  102. remoterf_server-1.4.10/src/remoteRF_server/server/control.py +0 -139
  103. remoterf_server-1.4.10/src/remoteRF_server/server/v2_errors.py +0 -114
  104. remoterf_server-1.4.10/tests/test_host_dynamic_v2.py +0 -160
  105. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/LICENSE +0 -0
  106. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/setup.cfg +0 -0
  107. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/__init__.py +0 -0
  108. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/__init__.py +0 -0
  109. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/grpc/__init__.py +0 -0
  110. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/grpc/deployment_capabilities.proto +0 -0
  111. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/grpc/deployment_capabilities_pb2.py +0 -0
  112. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/grpc/deployment_capabilities_pb2_grpc.py +0 -0
  113. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/grpc/federation.proto +0 -0
  114. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/grpc/federation_pb2.py +0 -0
  115. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/grpc/federation_pb2_grpc.py +0 -0
  116. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/idl/__init__.py +0 -0
  117. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/idl/device_schema.py +0 -0
  118. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/utils/__init__.py +0 -0
  119. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/utils/api_token.py +0 -0
  120. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/utils/db_connection.py +0 -0
  121. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/utils/db_location.py +0 -0
  122. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/utils/list_string.py +0 -0
  123. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/common/utils/panel.py +0 -0
  124. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/__init__.py +0 -0
  125. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/adalm_pluto/__init__.py +0 -0
  126. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/adalm_pluto/pluto_diag.py +0 -0
  127. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/adalm_pluto/pluto_remote_server.py +0 -0
  128. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/bluetooth_diag.py +0 -0
  129. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/gps_diag.py +0 -0
  130. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/hackrf/__init__.py +0 -0
  131. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/rtl_sdr/__init__.py +0 -0
  132. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/rtl_sdr/rtl_sdr_diag.py +0 -0
  133. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/ti_mmwave/__init__.py +0 -0
  134. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/usrp/__init__.py +0 -0
  135. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/usrp/usrp_diag.py +0 -0
  136. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/drivers/usrp_phaser/__init__.py +0 -0
  137. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/host/__init__.py +0 -0
  138. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/host/host_auth_token.py +0 -0
  139. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/host/host_directory_store.py +0 -0
  140. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/__init__.py +0 -0
  141. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/cert_provider.py +0 -0
  142. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/console.py +0 -0
  143. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/deployment/__init__.py +0 -0
  144. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/deployment/capabilities.py +0 -0
  145. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/diag.py +0 -0
  146. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/dynamic_v2.py +0 -0
  147. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/dynamic_v2_bridge.py +0 -0
  148. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/admin.py +0 -0
  149. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/contracts.py +0 -0
  150. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/destination.py +0 -0
  151. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/global_home.py +0 -0
  152. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/home.py +0 -0
  153. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/identity.py +0 -0
  154. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/legacy_state.py +0 -0
  155. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/migrations.py +0 -0
  156. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/peers.py +0 -0
  157. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/principals.py +0 -0
  158. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/runtime.py +0 -0
  159. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/federation/trust.py +0 -0
  160. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/server/startup_check.py +0 -0
  161. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/tools/__init__.py +0 -0
  162. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/tools/gen_certs.py +0 -0
  163. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/tools/gist_status.py +0 -0
  164. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/tools/gist_status_testing.py +0 -0
  165. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server/tools/introspect_uhd.py +0 -0
  166. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server.egg-info/dependency_links.txt +0 -0
  167. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server.egg-info/entry_points.txt +0 -0
  168. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/src/remoteRF_server.egg-info/top_level.txt +0 -0
  169. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_account_hardening.py +0 -0
  170. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_account_names.py +0 -0
  171. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_account_removal.py +0 -0
  172. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_activity_log.py +0 -0
  173. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_availability.py +0 -0
  174. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_bind_host.py +0 -0
  175. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_cert_provider.py +0 -0
  176. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_commands.py +0 -0
  177. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_console.py +0 -0
  178. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_contrib_drivers.py +0 -0
  179. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_default_rtl_sdr_schema.py +0 -0
  180. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_default_usrp_schema.py +0 -0
  181. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_detached_device_rpc.py +0 -0
  182. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_device_handles.py +0 -0
  183. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_device_init.py +0 -0
  184. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_devices_add_wizard.py +0 -0
  185. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_devices_list.py +0 -0
  186. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_direct_fixed_port.py +0 -0
  187. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_direct_path_server.py +0 -0
  188. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_dynamic_v2.py +0 -0
  189. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_federated_direct_path.py +0 -0
  190. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_federated_dynamic_v2.py +0 -0
  191. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_first_run.py +0 -0
  192. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_gate_d_contracts.py +0 -0
  193. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_gate_e_federation.py +0 -0
  194. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_gate_f_enrollment.py +0 -0
  195. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_gate_g1_logging.py +0 -0
  196. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_gate_g_permissions.py +0 -0
  197. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_gate_i_direct_path.py +0 -0
  198. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_gen_certs.py +0 -0
  199. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_global_accounts_migration.py +0 -0
  200. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_global_v1_disposal.py +0 -0
  201. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_hackrf_schema.py +0 -0
  202. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_host_directory_store.py +0 -0
  203. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_idl_schema.py +0 -0
  204. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_panel.py +0 -0
  205. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_peer_transport.py +0 -0
  206. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_pluto_compat.py +0 -0
  207. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_pluto_poe.py +0 -0
  208. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_process_arg.py +0 -0
  209. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_reservation_timestamps.py +0 -0
  210. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_rpc_manager_batch.py +0 -0
  211. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_rpc_manager_calln.py +0 -0
  212. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_rtl_sdr_schema.py +0 -0
  213. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_startup_check.py +0 -0
  214. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_status_push.py +0 -0
  215. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_ti_mmwave_hardware.py +0 -0
  216. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_ti_mmwave_schema.py +0 -0
  217. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_user_group_cli.py +0 -0
  218. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_usrp_b205mini_uhd410_hardware.py +0 -0
  219. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_usrp_client_server_hardware.py +0 -0
  220. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_usrp_client_server_localhost.py +0 -0
  221. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_usrp_n210_client_server_hardware.py +0 -0
  222. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_usrp_preload.py +0 -0
  223. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_usrp_profiles.py +0 -0
  224. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_usrp_remoterf_rx_hardware.py +0 -0
  225. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/tests/test_usrp_uhd410_hardware.py +0 -0
  226. {remoterf_server-1.4.10 → remoterf_server-1.7.3}/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.10
3
+ Version: 1.7.3
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,11 +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 (this lab's own first, then visitors from partner labs)
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
888
- * `users prune-proxies [--stale DAYS] [-y]` — List federated proxies whose home lab is gone (dry run); `-y` removes them
890
+ * `users prune-proxies [--stale DAYS] [-y]` — List federated proxies whose home deployment is gone (dry run); `-y` removes them
889
891
 
890
892
  ---
891
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,11 +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 (this lab's own first, then visitors from partner labs)
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 lab is gone (dry run); `-y` removes them
857
+ * `users prune-proxies [--stale DAYS] [-y]` — List federated proxies whose home deployment is gone (dry run); `-y` removes them
858
858
 
859
859
  ---
860
860
 
@@ -4,12 +4,13 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "remoteRF-server"
7
- version = "1.4.10"
7
+ version = "1.7.3"
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")