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