remoteRF-server 0.1.67__tar.gz → 0.1.69__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 (42) hide show
  1. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/PKG-INFO +1 -1
  2. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/pyproject.toml +1 -1
  3. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/host/host_tunnel_server.py +25 -9
  4. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server.egg-info/PKG-INFO +1 -1
  5. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/README.md +0 -0
  6. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/setup.cfg +0 -0
  7. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/__init__.py +0 -0
  8. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/__init__.py +0 -0
  9. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/grpc/__init__.py +0 -0
  10. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/grpc/grpc_host_pb2.py +0 -0
  11. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/grpc/grpc_host_pb2_grpc.py +0 -0
  12. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/grpc/grpc_pb2.py +0 -0
  13. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/grpc/grpc_pb2_grpc.py +0 -0
  14. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/utils/__init__.py +0 -0
  15. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/utils/ansi_codes.py +0 -0
  16. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/utils/api_token.py +0 -0
  17. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/utils/db_connection.py +0 -0
  18. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/utils/db_location.py +0 -0
  19. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/utils/list_string.py +0 -0
  20. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/common/utils/process_arg.py +0 -0
  21. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/drivers/__init__.py +0 -0
  22. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/drivers/adalm_pluto/__init__.py +0 -0
  23. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/drivers/adalm_pluto/pluto_remote_server.py +0 -0
  24. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/host/__init__.py +0 -0
  25. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/host/host_directory_store.py +0 -0
  26. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/server/__init__.py +0 -0
  27. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/server/acc_perms.py +0 -0
  28. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/server/cert_provider.py +0 -0
  29. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/server/device_manager.py +0 -0
  30. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/server/grpc_server.py +0 -0
  31. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/server/reservation.py +0 -0
  32. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/server/rpc_manager.py +0 -0
  33. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/server/user_group_cli.py +0 -0
  34. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/server/user_group_handler.py +0 -0
  35. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/serverrf_cli.py +0 -0
  36. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/tools/__init__.py +0 -0
  37. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server/tools/gen_certs.py +0 -0
  38. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server.egg-info/SOURCES.txt +0 -0
  39. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server.egg-info/dependency_links.txt +0 -0
  40. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server.egg-info/entry_points.txt +0 -0
  41. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server.egg-info/requires.txt +0 -0
  42. {remoterf_server-0.1.67 → remoterf_server-0.1.69}/src/remoteRF_server.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoteRF-server
3
- Version: 0.1.67
3
+ Version: 0.1.69
4
4
  Description-Content-Type: text/markdown
5
5
  Requires-Dist: grpcio
6
6
  Requires-Dist: protobuf
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "remoteRF-server"
7
- version = "0.1.67"
7
+ version = "0.1.69"
8
8
  dependencies = [
9
9
  "grpcio",
10
10
  "protobuf",
@@ -10,6 +10,7 @@ import secrets
10
10
  import traceback
11
11
  import hashlib
12
12
  import re
13
+ import os
13
14
 
14
15
  from dataclasses import dataclass
15
16
  from typing import Dict, Optional, Tuple, Any, List, Set, Iterator
@@ -38,9 +39,18 @@ from .host_directory_store import (
38
39
  )
39
40
 
40
41
  # =============================================================================
41
- # Always-on logging (INFO/WARN/ERROR always print; no config/levels)
42
+ # Hardcoded logging mode (NO env vars)
43
+ #
44
+ # Pick ONE:
45
+ # LOG_MODE = "OFF" -> show nothing
46
+ # LOG_MODE = "WARN" -> show only WARN + ERROR
47
+ # LOG_MODE = "ALL" -> show everything (INFO + WARN + ERROR)
42
48
  # =============================================================================
43
49
 
50
+ LOG_MODE = "WARN" # <-- change this
51
+
52
+ _LOG_LOCK = threading.Lock()
53
+
44
54
  def _ts() -> str:
45
55
  t = time.time()
46
56
  sec = int(t)
@@ -48,7 +58,21 @@ def _ts() -> str:
48
58
  lt = time.localtime(sec)
49
59
  return time.strftime("%H:%M:%S", lt) + f".{ms:03d}"
50
60
 
61
+ def _should_log(level: str) -> bool:
62
+ lvl = (level or "").upper()
63
+ mode = (LOG_MODE or "").upper()
64
+ if mode == "OFF":
65
+ return False
66
+ if mode == "WARN":
67
+ return lvl in ("WARN", "ERROR")
68
+ if mode == "ALL":
69
+ return lvl in ("INFO", "WARN", "ERROR")
70
+ # safe default if mis-set
71
+ return lvl in ("WARN", "ERROR")
72
+
51
73
  def _log(level: str, msg: str) -> None:
74
+ if not _should_log(level):
75
+ return
52
76
  tn = threading.current_thread().name
53
77
  print(f"{_ts()} {level:<5} [{tn}] hostrf.host_tunnel_server: {msg}", file=sys.stderr, flush=True)
54
78
 
@@ -65,7 +89,6 @@ def exception(msg: str) -> None:
65
89
  _log("ERROR", msg)
66
90
  traceback.print_exc(limit=80, file=sys.stderr)
67
91
 
68
-
69
92
  # =============================================================================
70
93
  # Helpers
71
94
  # =============================================================================
@@ -88,7 +111,6 @@ def _copy_argument_map(dst_map: Any, src_map: Any) -> None:
88
111
  for k, v in dict(src_map).items():
89
112
  dst_map[str(k)].CopyFrom(v)
90
113
 
91
-
92
114
  # =============================================================================
93
115
  # Types
94
116
  # =============================================================================
@@ -112,7 +134,6 @@ class DeviceStatus:
112
134
  online: bool = False
113
135
  last_seen_ms: int = 0
114
136
 
115
-
116
137
  # =============================================================================
117
138
  # Session
118
139
  # =============================================================================
@@ -170,7 +191,6 @@ class HostSession:
170
191
 
171
192
  info(f"[session] closed host_id={self.host_id!r}")
172
193
 
173
-
174
194
  # =============================================================================
175
195
  # Registry
176
196
  # =============================================================================
@@ -720,7 +740,6 @@ class HostTunnelRegistry:
720
740
  cancel_on_timeout=cancel_on_timeout,
721
741
  )
722
742
 
723
-
724
743
  # =============================================================================
725
744
  # Convenience forwarders
726
745
  # =============================================================================
@@ -767,7 +786,6 @@ def handle_host_device_request(
767
786
  cancel_on_timeout=True,
768
787
  )
769
788
 
770
-
771
789
  # =============================================================================
772
790
  # Servicer
773
791
  # =============================================================================
@@ -985,7 +1003,6 @@ class HostTunnelServicer(host_tunnel_pb2_grpc.HostTunnelServicer):
985
1003
 
986
1004
  info(f"[Connect] stream ended peer={peer} host_id={host_id or '?'}")
987
1005
 
988
-
989
1006
  # =============================================================================
990
1007
  # Credentials + server start
991
1008
  # =============================================================================
@@ -1006,7 +1023,6 @@ def build_server_credentials(
1006
1023
  )
1007
1024
  return grpc.ssl_server_credentials(((private_key_pem, certificate_chain_pem),))
1008
1025
 
1009
-
1010
1026
  def start_host_tunnel_server(
1011
1027
  *,
1012
1028
  host: str,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoteRF-server
3
- Version: 0.1.67
3
+ Version: 0.1.69
4
4
  Description-Content-Type: text/markdown
5
5
  Requires-Dist: grpcio
6
6
  Requires-Dist: protobuf