remoterf 0.0.7.37__py3-none-any.whl → 0.0.7.38__py3-none-any.whl

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.

Potentially problematic release.


This version of remoterf might be problematic. Click here for more details.

remoteRF/core/app.py CHANGED
@@ -73,74 +73,32 @@ def clear():
73
73
  os.system('cls' if os.name == 'nt' else 'clear')
74
74
  title()
75
75
 
76
- # def print_my_version():
77
- # import sys
78
- # try:
79
- # import importlib.metadata as md # Py3.8+
80
- # top = __name__.split('.')[0]
81
- # # Try mapping package → distribution (Py3.10+); fall back to same name.
82
- # for dist in getattr(md, "packages_distributions", lambda: {})().get(top, []):
83
- # return md.version(dist)
84
- # return md.version(top)
85
- # except Exception:
86
- # # Last resort: __version__ attribute if you define it.
87
- # return getattr(sys.modules.get(__name__.split('.')[0]), "__version__", "unknown")
88
-
89
- def print_my_version(timeout=3.0):
90
- """
91
- Return this package's installed version, tagged as (LATEST) or (OUTDATED → X).
92
- Uses only the Python stdlib.
93
- """
94
- import sys, json, urllib.request, re
76
+ def print_my_version():
77
+ import sys
78
+ latest = newest_version_pip("remoterf")
95
79
  try:
96
- import importlib.metadata as md # Py 3.8+
80
+ import importlib.metadata as md # Py3.8+
97
81
  top = __name__.split('.')[0]
98
- dists = getattr(md, "packages_distributions", lambda: {})().get(top, []) or [top]
99
-
100
- # Simple PEP440-ish comparator using only stdlib
101
- def _canon(v):
102
- parts = re.split(r'[.\-+]', v)
103
- out = []
104
- for p in parts:
105
- if p.isdigit():
106
- out.append((0, int(p)))
107
- continue
108
- t = p.lower().replace("alpha", "a").replace("beta", "b").replace("pre", "rc")
109
- m = re.match(r'([a-z]+)(\d*)', t)
110
- if m:
111
- rank = {'dev': -1, 'a': 0, 'b': 1, 'rc': 2, 'post': 4}.get(m.group(1), 3)
112
- out.append((1, rank, int(m.group(2) or 0)))
113
- else:
114
- out.append((2, t))
115
- return tuple(out)
116
-
117
- def _cmp(v1, v2):
118
- a, b = _canon(v1), _canon(v2)
119
- return (a > b) - (a < b)
120
-
121
- for dist in dists:
122
- try:
123
- installed = md.version(dist)
124
- except Exception:
125
- continue
126
-
127
- latest = None
128
- try:
129
- with urllib.request.urlopen(f"https://pypi.org/pypi/{dist}/json", timeout=timeout) as r:
130
- latest = (json.load(r)["info"]["version"] or "").strip() or None
131
- except Exception:
132
- pass
133
-
134
- if not latest:
135
- return installed # offline or project not on PyPI
136
-
137
- return installed + (" (LATEST)" if _cmp(installed, latest) >= 0
138
- else f" (OUTDATED \u2192 {latest})")
139
-
140
- # Fallback: use __version__ if importlib metadata couldn't resolve
141
- return getattr(sys.modules.get(top), "__version__", "unknown")
82
+ # Try mapping package distribution (Py3.10+); fall back to same name.
83
+ for dist in getattr(md, "packages_distributions", lambda: {})().get(top, []):
84
+ if (latest == md.version(dist)):
85
+ return f"{md.version(dist)} (LATEST)"
86
+ else:
87
+ return f"{md.version(dist)} (OUTDATED)"
88
+ return md.version(top)
142
89
  except Exception:
143
- return "unknown"
90
+ # Last resort: __version__ attribute if you define it.
91
+ return getattr(sys.modules.get(__name__.split('.')[0]), "__version__", "unknown")
92
+
93
+ def newest_version_pip(project="remoterf"):
94
+ import sys, subprocess, re
95
+ out = subprocess.check_output(
96
+ [sys.executable, "-m", "pip", "index", "versions", project],
97
+ text=True, stderr=subprocess.STDOUT
98
+ )
99
+ m = re.search(r"(?i)\blatest\s*:\s*([^\s,]+)", out)
100
+ return m.group(1) if m else None
101
+
144
102
 
145
103
  def reservations():
146
104
  data = account.get_reservations()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoterf
3
- Version: 0.0.7.37
3
+ Version: 0.0.7.38
4
4
  Summary: A python API to remotely access signal centric hardware. Client-side only! Courtesy of Wireless Lab @ UCLA & Prof. Ian Roberts.
5
5
  Author: Ethan Ge
6
6
  Author-email: ethoGalaxy@gmail.com
@@ -10,7 +10,7 @@ remoteRF/common/utils/list_string.py,sha256=qsch666vX2e3CZ2W5EdYi62dOk37k1v2yPpH
10
10
  remoteRF/common/utils/process_arg.py,sha256=J1REqgjm-1daqTBdVASgDd-16y-KneOJpCZXPEOklVk,2971
11
11
  remoteRF/core/__init__.py,sha256=XQiCe8kyzM7XLxA883-uDndBmbr-NXo1uvtMJT2h6oA,73
12
12
  remoteRF/core/acc_login.py,sha256=UcY3rDLAwHoJ9lYXRfm26z_6yJX0JSoKv-u1mF6n0Gs,49
13
- remoteRF/core/app.py,sha256=NrpXWeeQb1nIWA-4uG7gpK7Wvu5QxNIj_0MzbAOmuAc,24126
13
+ remoteRF/core/app.py,sha256=sR_zexVcamLoVWaeKN-LdC6k9lYBcq9XFZIenQ7AoO4,22545
14
14
  remoteRF/core/grpc_acc.py,sha256=bspLTzblhqYVVEFPwdvXrDZjREBWJVvD_SaT_cja6kU,2441
15
15
  remoteRF/core/grpc_client.py,sha256=540JkGsJ8_poN_aRn3FJmuGN4078or06ke00T6A7qEo,3143
16
16
  remoteRF/core/version.py,sha256=iMcmRB5ZxCliJZgPU6utwCia5M9HJ-J8E-LpPmcEgS8,182
@@ -24,8 +24,8 @@ remoteRF/core/certs/server.key,sha256=aUbQk7TKZJyhp-l5noj4nnfmtLDendTiR_sGq4amX6
24
24
  remoteRF/drivers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  remoteRF/drivers/adalm_pluto/__init__.py,sha256=_IOOeQXR6paCP7Eciw2aeKBUNvZs-jeBTwW8QqUlFyU,33
26
26
  remoteRF/drivers/adalm_pluto/pluto_remote.py,sha256=6TTp6v6HCXnULHFh90GVbLDWk7RXY2oZo7iiCl8EZdI,7460
27
- remoterf-0.0.7.37.dist-info/METADATA,sha256=1Rogo_Tw9-P5fKOs-tKSUboKPS0dGLiSFWOVIFHG8LQ,5173
28
- remoterf-0.0.7.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
- remoterf-0.0.7.37.dist-info/entry_points.txt,sha256=XUNbXzexoN1D7mmv6Q-5Bpwa6lZd0j55y15Ba6kSaT4,104
30
- remoterf-0.0.7.37.dist-info/top_level.txt,sha256=XQJoVTmAOsHV9qtPSP_QSh0ma4jKxsDkxn4IjM_ZuZk,9
31
- remoterf-0.0.7.37.dist-info/RECORD,,
27
+ remoterf-0.0.7.38.dist-info/METADATA,sha256=UMRM5lKcfLZqZkr38NDHMsUio6Mr9fgPR7UiLIt-OCM,5173
28
+ remoterf-0.0.7.38.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
+ remoterf-0.0.7.38.dist-info/entry_points.txt,sha256=XUNbXzexoN1D7mmv6Q-5Bpwa6lZd0j55y15Ba6kSaT4,104
30
+ remoterf-0.0.7.38.dist-info/top_level.txt,sha256=XQJoVTmAOsHV9qtPSP_QSh0ma4jKxsDkxn4IjM_ZuZk,9
31
+ remoterf-0.0.7.38.dist-info/RECORD,,