not1mm 24.9.22__py3-none-any.whl → 24.9.23__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.
- not1mm/__main__.py +13 -1
- not1mm/data/rttymacros.txt +2 -2
- not1mm/lib/cat_interface.py +71 -12
- not1mm/lib/version.py +1 -1
- not1mm/radio.py +5 -0
- not1mm/test.py +24 -12
- {not1mm-24.9.22.dist-info → not1mm-24.9.23.dist-info}/METADATA +2 -1
- {not1mm-24.9.22.dist-info → not1mm-24.9.23.dist-info}/RECORD +12 -12
- {not1mm-24.9.22.dist-info → not1mm-24.9.23.dist-info}/LICENSE +0 -0
- {not1mm-24.9.22.dist-info → not1mm-24.9.23.dist-info}/WHEEL +0 -0
- {not1mm-24.9.22.dist-info → not1mm-24.9.23.dist-info}/entry_points.txt +0 -0
- {not1mm-24.9.22.dist-info → not1mm-24.9.23.dist-info}/top_level.txt +0 -0
not1mm/__main__.py
CHANGED
@@ -2342,7 +2342,15 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2342
2342
|
self.voice_process.voice_string(self.process_macro(function_key.toolTip()))
|
2343
2343
|
# self.voice_string(self.process_macro(function_key.toolTip()))
|
2344
2344
|
return
|
2345
|
-
if self.radio_state.get("mode") in [
|
2345
|
+
if self.radio_state.get("mode") in [
|
2346
|
+
"RTTY",
|
2347
|
+
"USB-D",
|
2348
|
+
"LSB-D",
|
2349
|
+
"PKTLSB",
|
2350
|
+
"PKTUSB",
|
2351
|
+
"DIGI-U",
|
2352
|
+
"DIGI-L",
|
2353
|
+
]:
|
2346
2354
|
self.fldigi_util.send_string(self.process_macro(function_key.toolTip()))
|
2347
2355
|
if self.cw:
|
2348
2356
|
if self.pref.get("cwtype") == 3 and self.rig_control is not None:
|
@@ -3210,6 +3218,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3210
3218
|
self.contact["Band"] = get_logged_band(str(vfo))
|
3211
3219
|
self.set_band_indicator(band)
|
3212
3220
|
|
3221
|
+
if self.rig_control:
|
3222
|
+
if self.rig_control.online:
|
3223
|
+
self.rig_control.get_modes()
|
3224
|
+
|
3213
3225
|
if self.radio_state.get("mode") != mode:
|
3214
3226
|
info_dirty = True
|
3215
3227
|
self.radio_state["mode"] = mode
|
not1mm/data/rttymacros.txt
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
S|F1|MyCall|{MYCALL}
|
2
|
-
S|F2|Exch|{EXCH}
|
2
|
+
S|F2|Exch|{SNT} {EXCH}
|
3
3
|
S|F3|My NR|{SENTNR}
|
4
4
|
S|F4|empty|
|
5
5
|
S|F5|AGN|agn
|
@@ -12,7 +12,7 @@ S|F11|NR??|NR?
|
|
12
12
|
S|F12|TU|tu
|
13
13
|
R|F1|Run CQ|cq test {MYCALL} {MYCALL} test
|
14
14
|
R|F2|HisCall|{HISCALL}
|
15
|
-
R|F3|Run Exch|{HISCALL} {SNT} {
|
15
|
+
R|F3|Run Exch|{HISCALL} {SNT} {EXCH}
|
16
16
|
R|F4|Run TU|tu {MYCALL} qrz
|
17
17
|
R|F5|MyCall|{MYCALL}
|
18
18
|
R|F6|MyNR|{SENTNR}
|
not1mm/lib/cat_interface.py
CHANGED
@@ -90,7 +90,7 @@ class CAT:
|
|
90
90
|
def __initialize_rigctrld(self):
|
91
91
|
try:
|
92
92
|
self.rigctrlsocket = socket.socket()
|
93
|
-
self.rigctrlsocket.settimeout(0.
|
93
|
+
self.rigctrlsocket.settimeout(0.1)
|
94
94
|
self.rigctrlsocket.connect((self.host, self.port))
|
95
95
|
logger.debug("Connected to rigctrld")
|
96
96
|
self.online = True
|
@@ -104,6 +104,18 @@ class CAT:
|
|
104
104
|
if self.interface == "rigctld":
|
105
105
|
self.__initialize_rigctrld()
|
106
106
|
|
107
|
+
def __get_serial_string(self):
|
108
|
+
"""Gets any serial data waiting"""
|
109
|
+
dump = ""
|
110
|
+
thegrab = ""
|
111
|
+
try:
|
112
|
+
while True:
|
113
|
+
thegrab += self.rigctrlsocket.recv(1024).decode()
|
114
|
+
dump += thegrab
|
115
|
+
except socket.error:
|
116
|
+
...
|
117
|
+
return dump
|
118
|
+
|
107
119
|
def sendcw(self, texttosend):
|
108
120
|
"""..."""
|
109
121
|
logger.debug(f"{texttosend=} {self.interface=}")
|
@@ -119,7 +131,7 @@ class CAT:
|
|
119
131
|
try:
|
120
132
|
self.online = True
|
121
133
|
self.rigctrlsocket.send(bytes(f"b{texttosend}\n", "utf-8"))
|
122
|
-
_ = self.
|
134
|
+
_ = self.__get_serial_string()
|
123
135
|
return True
|
124
136
|
except socket.error as exception:
|
125
137
|
self.online = False
|
@@ -216,7 +228,7 @@ class CAT:
|
|
216
228
|
try:
|
217
229
|
self.online = True
|
218
230
|
self.rigctrlsocket.send(b"f\n")
|
219
|
-
return self.
|
231
|
+
return self.__get_serial_string().strip()
|
220
232
|
except socket.error as exception:
|
221
233
|
self.online = False
|
222
234
|
logger.debug("getvfo_rigctld: %s", f"{exception}")
|
@@ -237,6 +249,8 @@ class CAT:
|
|
237
249
|
|
238
250
|
def __getmode_flrig(self) -> str:
|
239
251
|
"""Returns mode via flrig"""
|
252
|
+
# QMX ['CW-U', 'CW-L', 'DIGI-U', 'DIGI-L']
|
253
|
+
# 7300 ['LSB', 'USB', 'AM', 'FM', 'CW', 'CW-R', 'RTTY', 'RTTY-R', 'LSB-D', 'USB-D', 'AM-D', 'FM-D']
|
240
254
|
try:
|
241
255
|
self.online = True
|
242
256
|
return self.server.rig.get_mode()
|
@@ -253,11 +267,13 @@ class CAT:
|
|
253
267
|
|
254
268
|
def __getmode_rigctld(self) -> str:
|
255
269
|
"""Returns mode vai rigctld"""
|
270
|
+
# QMX 'AM CW USB LSB RTTY FM CWR RTTYR'
|
271
|
+
# 7300 'AM CW USB LSB RTTY FM CWR RTTYR PKTLSB PKTUSB FM-D AM-D'
|
256
272
|
if self.rigctrlsocket:
|
257
273
|
try:
|
258
274
|
self.online = True
|
259
275
|
self.rigctrlsocket.send(b"m\n")
|
260
|
-
mode = self.
|
276
|
+
mode = self.__get_serial_string()
|
261
277
|
mode = mode.strip().split()[0]
|
262
278
|
# logger.debug("%s", mode)
|
263
279
|
return mode
|
@@ -302,7 +318,7 @@ class CAT:
|
|
302
318
|
try:
|
303
319
|
self.online = True
|
304
320
|
self.rigctrlsocket.send(b"m\n")
|
305
|
-
mode = self.
|
321
|
+
mode = self.__get_serial_string()
|
306
322
|
mode = mode.strip().split()[1]
|
307
323
|
# logger.debug("%s", mode)
|
308
324
|
return mode
|
@@ -344,7 +360,7 @@ class CAT:
|
|
344
360
|
try:
|
345
361
|
self.online = True
|
346
362
|
self.rigctrlsocket.send(b"l RFPOWER\n")
|
347
|
-
return int(float(self.
|
363
|
+
return int(float(self.__get_serial_string().strip()) * 100)
|
348
364
|
except socket.error as exception:
|
349
365
|
self.online = False
|
350
366
|
logger.debug("getpower_rigctld: %s", f"{exception}")
|
@@ -381,7 +397,7 @@ class CAT:
|
|
381
397
|
try:
|
382
398
|
self.online = True
|
383
399
|
self.rigctrlsocket.send(b"t\n")
|
384
|
-
ptt = self.
|
400
|
+
ptt = self.__get_serial_string()
|
385
401
|
logger.debug("%s", ptt)
|
386
402
|
ptt = ptt.strip()
|
387
403
|
return ptt
|
@@ -391,6 +407,49 @@ class CAT:
|
|
391
407
|
self.rigctrlsocket = None
|
392
408
|
return "0"
|
393
409
|
|
410
|
+
def get_mode_list(self):
|
411
|
+
"Get a list of modes supported by the radio"
|
412
|
+
if self.interface == "flrig":
|
413
|
+
return self.__get_mode_list_flrig()
|
414
|
+
if self.interface == "rigctld":
|
415
|
+
return self.__get_mode_list_rigctld()
|
416
|
+
return False
|
417
|
+
|
418
|
+
def __get_mode_list_flrig(self):
|
419
|
+
"""Returns list of modes supported by the radio"""
|
420
|
+
try:
|
421
|
+
self.online = True
|
422
|
+
return self.server.rig.get_modes()
|
423
|
+
except (
|
424
|
+
ConnectionRefusedError,
|
425
|
+
xmlrpc.client.Fault,
|
426
|
+
http.client.BadStatusLine,
|
427
|
+
http.client.CannotSendRequest,
|
428
|
+
http.client.ResponseNotReady,
|
429
|
+
) as exception:
|
430
|
+
self.online = False
|
431
|
+
logger.debug("%s", f"{exception}")
|
432
|
+
return ""
|
433
|
+
|
434
|
+
def __get_mode_list_rigctld(self):
|
435
|
+
"""Returns list of modes supported by the radio"""
|
436
|
+
# Mode list: AM CW USB LSB RTTY FM CWR RTTYR
|
437
|
+
if self.rigctrlsocket:
|
438
|
+
try:
|
439
|
+
self.online = True
|
440
|
+
self.rigctrlsocket.send(b"1\n")
|
441
|
+
dump = self.__get_serial_string()
|
442
|
+
for line in dump.splitlines():
|
443
|
+
if "Mode list:" in line:
|
444
|
+
modes = line.split(":")[1].strip()
|
445
|
+
return modes
|
446
|
+
return ""
|
447
|
+
except socket.error as exception:
|
448
|
+
self.online = False
|
449
|
+
logger.debug("%s", f"{exception}")
|
450
|
+
self.rigctrlsocket = None
|
451
|
+
return ""
|
452
|
+
|
394
453
|
def set_vfo(self, freq: str) -> bool:
|
395
454
|
"""Sets the radios vfo"""
|
396
455
|
try:
|
@@ -424,7 +483,7 @@ class CAT:
|
|
424
483
|
try:
|
425
484
|
self.online = True
|
426
485
|
self.rigctrlsocket.send(bytes(f"F {freq}\n", "utf-8"))
|
427
|
-
_ = self.
|
486
|
+
_ = self.__get_serial_string()
|
428
487
|
return True
|
429
488
|
except socket.error as exception:
|
430
489
|
self.online = False
|
@@ -464,7 +523,7 @@ class CAT:
|
|
464
523
|
try:
|
465
524
|
self.online = True
|
466
525
|
self.rigctrlsocket.send(bytes(f"M {mode} 0\n", "utf-8"))
|
467
|
-
_ = self.
|
526
|
+
_ = self.__get_serial_string()
|
468
527
|
return True
|
469
528
|
except socket.error as exception:
|
470
529
|
self.online = False
|
@@ -503,7 +562,7 @@ class CAT:
|
|
503
562
|
try:
|
504
563
|
self.online = True
|
505
564
|
self.rigctrlsocket.send(rig_cmd)
|
506
|
-
_ = self.
|
565
|
+
_ = self.__get_serial_string()
|
507
566
|
except socket.error:
|
508
567
|
self.online = False
|
509
568
|
self.rigctrlsocket = None
|
@@ -532,7 +591,7 @@ class CAT:
|
|
532
591
|
try:
|
533
592
|
self.online = True
|
534
593
|
self.rigctrlsocket.send(rig_cmd)
|
535
|
-
_ = self.
|
594
|
+
_ = self.__get_serial_string()
|
536
595
|
except socket.error:
|
537
596
|
self.online = False
|
538
597
|
self.rigctrlsocket = None
|
@@ -568,7 +627,7 @@ class CAT:
|
|
568
627
|
try:
|
569
628
|
self.online = True
|
570
629
|
self.rigctrlsocket.send(rig_cmd)
|
571
|
-
_ = self.
|
630
|
+
_ = self.__get_serial_string()
|
572
631
|
except socket.error:
|
573
632
|
self.online = False
|
574
633
|
self.rigctrlsocket = None
|
not1mm/lib/version.py
CHANGED
not1mm/radio.py
CHANGED
@@ -34,6 +34,7 @@ class Radio(QObject):
|
|
34
34
|
interface = None
|
35
35
|
host = None
|
36
36
|
port = None
|
37
|
+
modes = ""
|
37
38
|
|
38
39
|
def __init__(self, interface: str, host: str, port: int) -> None:
|
39
40
|
super().__init__()
|
@@ -45,6 +46,7 @@ class Radio(QObject):
|
|
45
46
|
def run(self):
|
46
47
|
try:
|
47
48
|
self.cat = CAT(self.interface, self.host, self.port)
|
49
|
+
self.modes = self.cat.get_mode_list()
|
48
50
|
except ConnectionResetError:
|
49
51
|
...
|
50
52
|
while not self.time_to_quit:
|
@@ -113,6 +115,9 @@ class Radio(QObject):
|
|
113
115
|
}
|
114
116
|
)
|
115
117
|
|
118
|
+
def get_modes(self):
|
119
|
+
return self.modes
|
120
|
+
|
116
121
|
def ptt_on(self):
|
117
122
|
if self.cat:
|
118
123
|
self.cat.ptt_on()
|
not1mm/test.py
CHANGED
@@ -11,18 +11,30 @@
|
|
11
11
|
# xml = '<?xml version="1.0"?>\n<HamQTH version="2.8" xmlns="https://www.hamqth.com">\n <search>\n <callsign>K6GTE</callsign>\n <nick>Mike</nick>\n <qth>Anaheim</qth>\n <country>United States</country>\n <adif>291</adif>\n <itu>6</itu>\n <cq>3</cq>\n <grid>DM13AT</grid>\n <adr_name>Michael C Bridak</adr_name>\n <adr_street1>2854 W Bridgeport Ave</adr_street1>\n <adr_city>Anaheim</adr_city>\n <adr_zip>92804</adr_zip>\n <adr_country>United States</adr_country>\n <adr_adif>291</adr_adif>\n <us_state>CA</us_state>\n <us_county>Orange</us_county>\n <lotw>Y</lotw>\n <qsldirect>Y</qsldirect>\n <qsl>?</qsl>\n <eqsl>N</eqsl>\n <email>michael.bridak@gmail.com</email>\n <birth_year>1967</birth_year>\n <lic_year>2017</lic_year>\n <latitude>33.81</latitude>\n <longitude>-117.97</longitude>\n <continent>NA</continent>\n <utc_offset>-8</utc_offset>\n <picture>https://www.hamqth.com/userfiles/k/k6/k6gte/_header/header.jpg?ver=3</picture>\n </search>\n</HamQTH>'
|
12
12
|
# result = xmltodict.parse(xml)
|
13
13
|
|
14
|
-
import xmlrpc.client
|
14
|
+
# import xmlrpc.client
|
15
|
+
|
16
|
+
# target = "http://127.0.0.1:7362"
|
17
|
+
# payload = "Hello^r"
|
18
|
+
# response = ""
|
19
|
+
|
20
|
+
# try:
|
21
|
+
# server = xmlrpc.client.ServerProxy(target)
|
22
|
+
# response = server.logbook.last_record()
|
23
|
+
# response = server.main.tx()
|
24
|
+
# response = server.text.add_tx(payload)
|
25
|
+
# except ConnectionRefusedError:
|
26
|
+
# ...
|
27
|
+
|
28
|
+
# print(f"{response=}")
|
29
|
+
|
30
|
+
|
31
|
+
# from not1mm.radio import Radio
|
32
|
+
from not1mm.lib.cat_interface import CAT
|
15
33
|
|
16
|
-
|
17
|
-
payload = "Hello^r"
|
18
|
-
response = ""
|
34
|
+
rig_control = CAT("rigctld", "127.0.0.1", 4532)
|
19
35
|
|
20
|
-
|
21
|
-
|
22
|
-
response = server.logbook.last_record()
|
23
|
-
response = server.main.tx()
|
24
|
-
response = server.text.add_tx(payload)
|
25
|
-
except ConnectionRefusedError:
|
26
|
-
...
|
36
|
+
modes = rig_control.get_mode_list()
|
37
|
+
vfo = rig_control.get_vfo()
|
27
38
|
|
28
|
-
print(f"{
|
39
|
+
print(f"{modes=}\n")
|
40
|
+
print(f"{vfo=}")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.9.
|
3
|
+
Version: 24.9.23
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
Project-URL: Homepage, https://github.com/mbridak/not1mm
|
@@ -230,6 +230,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
230
230
|
|
231
231
|
## Recent Changes
|
232
232
|
|
233
|
+
- [24-9-23] Improved serial interface to rigctld. Send RTTY macros to fldigi when radio modes are RTTY, USB-D, LSB-D, PKTLSB, PKTUSB, DIGI-U, DIGI-L.
|
233
234
|
- [24-9-22] Merged in changes for CQ WW RTTY
|
234
235
|
- [24-9-15] Fixing an ARRL VHF Cabrillo format error.
|
235
236
|
- [24-9-14] BugFix. Starting lookups fail init if no settings.
|
@@ -1,12 +1,12 @@
|
|
1
1
|
not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
not1mm/__main__.py,sha256=
|
2
|
+
not1mm/__main__.py,sha256=V43gwbqBhUAPw8HfjTcYbA61nzejpcQJSIYoXk5BKY0,126943
|
3
3
|
not1mm/bandmap.py,sha256=1b5tXCfGTnpqqn6hPNt7zRA8SmuwSXzSwNHZXhCRt70,31434
|
4
4
|
not1mm/checkwindow.py,sha256=aI-nr8OF90IWV7R_XRdmitvBJ9M85evCs72HoU3Jnvc,10374
|
5
5
|
not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
|
6
6
|
not1mm/logwindow.py,sha256=pwhiwolmGnW01LF4sjlu3ywLsgfxL6KuGuKuYKYmgeY,44403
|
7
7
|
not1mm/lookupservice.py,sha256=jsFg5tsB9cVnahLP-hI3CMwbjlEpMx944O8RLWntAy4,3342
|
8
|
-
not1mm/radio.py,sha256=
|
9
|
-
not1mm/test.py,sha256=
|
8
|
+
not1mm/radio.py,sha256=x2Oz1688uTPrq3YOwUiY3eMc4XUkkAZJpEajCKJEbwM,3479
|
9
|
+
not1mm/test.py,sha256=b9Ro2bRdf4HOmiKQsLRk_dTm-CQLvpmnEEZq768v-ro,2299
|
10
10
|
not1mm/vfo.py,sha256=IvmUQYMIPzLJw_BHQGis4J_IEW-vlBtdfxZLXPh7OzI,12335
|
11
11
|
not1mm/voice_keying.py,sha256=sA3gw5_k7kShTg2qhG7HkKDM5M6KheJVRkAc_C7mxDk,3006
|
12
12
|
not1mm/data/JetBrainsMono-ExtraLight.ttf,sha256=g5Hn7BPounWMGDj1a8zZcyKMz03HSqW__pUluRR7Evg,274144
|
@@ -39,7 +39,7 @@ not1mm/data/radio_green.png,sha256=PXlvRI2x0C8yLVkxRwrZe6tex8k9GtM-1Cj2Vy6KP7o,1
|
|
39
39
|
not1mm/data/radio_grey.png,sha256=9eOtMHDpQvRYY29D7_vPeacWbwotRXZTMm8EiHE9TW0,1258
|
40
40
|
not1mm/data/radio_red.png,sha256=QvkMk7thd_hCEIyK5xGAG4xVVXivl39nwOfD8USDI20,957
|
41
41
|
not1mm/data/reddot.png,sha256=M33jEMoU8W4rQ4_MVyzzKxDPDte1ypKBch5VnUMNLKE,565
|
42
|
-
not1mm/data/rttymacros.txt,sha256=
|
42
|
+
not1mm/data/rttymacros.txt,sha256=BRf0JJtHZylTAvpmxHS6hlanHgybZoLyDMqdif9rODY,447
|
43
43
|
not1mm/data/settings.ui,sha256=NyHFUb3ZFEgZ4bYB3O7qlO_0TvZwcc9SFPr7z9nF6kk,40123
|
44
44
|
not1mm/data/splash.png,sha256=85_BQotR1q24uCthrKm4SB_6ZOMwRjR-Jdp1XBHSTyg,5368
|
45
45
|
not1mm/data/ssbmacros.txt,sha256=0Qccj4y0nlK-w5da9a9ti-jILkURtwztoDuL_D0pEJM,470
|
@@ -94,7 +94,7 @@ not1mm/data/phonetics/yourcall.wav,sha256=4kheHJmCiRDL2kjhlgXQ8_u_eEMgKxiNGu5UBk
|
|
94
94
|
not1mm/data/phonetics/z.wav,sha256=arafCi7fwmBLdVDI-PRyaL4U-03PIQDhffwY5noJ_2c,51768
|
95
95
|
not1mm/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
96
96
|
not1mm/lib/about.py,sha256=sWycfGcruN3SaEe4JmaJ61K6D8Itq0WxpUYT-lEcmYM,416
|
97
|
-
not1mm/lib/cat_interface.py,sha256=
|
97
|
+
not1mm/lib/cat_interface.py,sha256=FfLldMH4FayArOcwoZBQT3vTU2RoiG7dmaT922Z8i2Y,21459
|
98
98
|
not1mm/lib/cwinterface.py,sha256=FrVB-MfK7CYU2QNjAK7ERrruKTL_NkHpBPIFNNaTvp4,3645
|
99
99
|
not1mm/lib/database.py,sha256=nUVG5H2Dy98PGp6Qdr3xU7zM8-8-IiyqRkXZWlWzIe8,44446
|
100
100
|
not1mm/lib/edit_contact.py,sha256=Ki9bGPpqyQQBB1cU8VIBDCal3lbXeQ6qxhzklmhE2_w,353
|
@@ -114,7 +114,7 @@ not1mm/lib/plugin_common.py,sha256=HbphFFzU1XIIHgsCHOb_tCAnQyqT-nYnxoiz1oZ2_cg,9
|
|
114
114
|
not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
|
115
115
|
not1mm/lib/settings.py,sha256=MWiKXbasaFbzeHTjfzTaTqbCBrIijudP_-0a5jNmUAA,9265
|
116
116
|
not1mm/lib/super_check_partial.py,sha256=p5l3u2ZOCBtlWgbvskC50FpuoaIpR07tfC6zTdRWbh4,2334
|
117
|
-
not1mm/lib/version.py,sha256=
|
117
|
+
not1mm/lib/version.py,sha256=KsnGHengWCv9w4hEEpMncmQfrgUm2Ng8DMA65PR0T5o,48
|
118
118
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
119
119
|
not1mm/plugins/10_10_fall_cw.py,sha256=IttjX1yy4nDdACGsiYlPteFG8eVseX_WtoFio6bqHE8,10953
|
120
120
|
not1mm/plugins/10_10_spring_cw.py,sha256=ThCptdM3dX4ywhoy2JRcOEyHSqcJolFaT7O_PYzM1Mg,10958
|
@@ -156,9 +156,9 @@ not1mm/plugins/ref_cw.py,sha256=aWjHHkqIKutjRUtzh09y5haFfnZK9poRQDWRQMDRxxU,1632
|
|
156
156
|
not1mm/plugins/stew_perry_topband.py,sha256=CKBQbYl4ETxhXJd2dma4fg_C5pag_s7Nf61SCztZtqE,10668
|
157
157
|
not1mm/plugins/weekly_rtty.py,sha256=DQcy3SY0Zn56EdlYGf3NxrRhTnkNa5IqRQPRQdKDSPs,14255
|
158
158
|
not1mm/plugins/winter_field_day.py,sha256=4rcfRtobwjHO6BNL3WOTHzBmyyeuX79BNGBG8PfjrI8,10238
|
159
|
-
not1mm-24.9.
|
160
|
-
not1mm-24.9.
|
161
|
-
not1mm-24.9.
|
162
|
-
not1mm-24.9.
|
163
|
-
not1mm-24.9.
|
164
|
-
not1mm-24.9.
|
159
|
+
not1mm-24.9.23.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
160
|
+
not1mm-24.9.23.dist-info/METADATA,sha256=UNYhVlycDl_2wQtVOiFN_f2Rs0rlyOUNY-WvZaqM58Y,31423
|
161
|
+
not1mm-24.9.23.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
162
|
+
not1mm-24.9.23.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
163
|
+
not1mm-24.9.23.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
164
|
+
not1mm-24.9.23.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|