not1mm 24.7.12__py3-none-any.whl → 24.7.19__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 +81 -74
- not1mm/data/main.ui +2 -2
- not1mm/lib/cat_interface.py +27 -4
- not1mm/lib/ham_utility.py +1 -1
- not1mm/lib/version.py +1 -1
- {not1mm-24.7.12.dist-info → not1mm-24.7.19.dist-info}/METADATA +3 -3
- {not1mm-24.7.12.dist-info → not1mm-24.7.19.dist-info}/RECORD +11 -11
- {not1mm-24.7.12.dist-info → not1mm-24.7.19.dist-info}/WHEEL +1 -1
- {not1mm-24.7.12.dist-info → not1mm-24.7.19.dist-info}/LICENSE +0 -0
- {not1mm-24.7.12.dist-info → not1mm-24.7.19.dist-info}/entry_points.txt +0 -0
- {not1mm-24.7.12.dist-info → not1mm-24.7.19.dist-info}/top_level.txt +0 -0
not1mm/__main__.py
CHANGED
@@ -39,7 +39,7 @@ except OSError as exception:
|
|
39
39
|
print("portaudio is not installed")
|
40
40
|
sd = None
|
41
41
|
from PyQt6 import QtCore, QtGui, QtWidgets, uic
|
42
|
-
from PyQt6.QtCore import QDir, Qt, QThread
|
42
|
+
from PyQt6.QtCore import QDir, Qt, QThread, QSettings
|
43
43
|
from PyQt6.QtGui import QFontDatabase, QColorConstants, QPalette, QColor
|
44
44
|
from PyQt6.QtWidgets import QFileDialog
|
45
45
|
|
@@ -120,10 +120,6 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
120
120
|
"cw_macros": True,
|
121
121
|
"bands_modes": True,
|
122
122
|
"bands": ["160", "80", "40", "20", "15", "10"],
|
123
|
-
"window_height": 200,
|
124
|
-
"window_width": 600,
|
125
|
-
"window_x": 120,
|
126
|
-
"window_y": 120,
|
127
123
|
"current_database": "ham.db",
|
128
124
|
"contest": "",
|
129
125
|
"multicast_group": "239.1.1.1",
|
@@ -202,6 +198,14 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
202
198
|
def __init__(self, *args, **kwargs):
|
203
199
|
super().__init__(*args, **kwargs)
|
204
200
|
logger.info("MainWindow: __init__")
|
201
|
+
|
202
|
+
self.dock_loc = {
|
203
|
+
"Top": Qt.DockWidgetArea.TopDockWidgetArea,
|
204
|
+
"Right": Qt.DockWidgetArea.RightDockWidgetArea,
|
205
|
+
"Left": Qt.DockWidgetArea.LeftDockWidgetArea,
|
206
|
+
"Bottom": Qt.DockWidgetArea.BottomDockWidgetArea,
|
207
|
+
}
|
208
|
+
|
205
209
|
self.setCorner(Qt.Corner.TopRightCorner, Qt.DockWidgetArea.RightDockWidgetArea)
|
206
210
|
self.setCorner(
|
207
211
|
Qt.Corner.BottomRightCorner, Qt.DockWidgetArea.RightDockWidgetArea
|
@@ -219,6 +223,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
219
223
|
self.mscp = SCP(fsutils.APP_DATA_PATH)
|
220
224
|
self.next_field = self.other_2
|
221
225
|
self.dupe_indicator.hide()
|
226
|
+
|
222
227
|
self.cw_speed.valueChanged.connect(self.cwspeed_spinbox_changed)
|
223
228
|
|
224
229
|
self.cw_entry.textChanged.connect(self.handle_text_change)
|
@@ -516,38 +521,47 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
516
521
|
if self.pref.get("contest"):
|
517
522
|
self.load_contest()
|
518
523
|
self.read_cw_macros()
|
524
|
+
|
525
|
+
self.log_window = LogWindow()
|
526
|
+
self.log_window.setObjectName("log-window")
|
527
|
+
self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
|
528
|
+
self.log_window.hide()
|
529
|
+
|
530
|
+
self.bandmap_window = BandMapWindow()
|
531
|
+
self.bandmap_window.setObjectName("bandmap-window")
|
532
|
+
self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window)
|
533
|
+
self.bandmap_window.hide()
|
534
|
+
|
535
|
+
self.check_window = CheckWindow()
|
536
|
+
self.check_window.setObjectName("check-window")
|
537
|
+
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.check_window)
|
538
|
+
self.check_window.hide()
|
539
|
+
|
540
|
+
self.vfo_window = VfoWindow()
|
541
|
+
self.vfo_window.setObjectName("vfo-window")
|
542
|
+
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.vfo_window)
|
543
|
+
self.vfo_window.hide()
|
544
|
+
|
545
|
+
self.settings = QSettings("K6GTE", "not1mm")
|
546
|
+
if self.settings.value("windowState") is not None:
|
547
|
+
self.restoreState(self.settings.value("windowState"))
|
548
|
+
if self.settings.value("geometry") is not None:
|
549
|
+
self.restoreGeometry(self.settings.value("geometry"))
|
550
|
+
|
519
551
|
self.actionLog_Window.setChecked(self.pref.get("logwindow", False))
|
520
|
-
if self.log_window:
|
521
|
-
self.log_window.close()
|
522
552
|
if self.actionLog_Window.isChecked():
|
523
|
-
self.log_window = LogWindow()
|
524
|
-
self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
|
525
553
|
self.log_window.show()
|
526
554
|
|
527
555
|
self.actionBandmap.setChecked(self.pref.get("bandmapwindow", False))
|
528
|
-
if self.bandmap_window:
|
529
|
-
self.bandmap_window.close()
|
530
556
|
if self.actionBandmap.isChecked():
|
531
|
-
self.bandmap_window = BandMapWindow()
|
532
|
-
self.addDockWidget(
|
533
|
-
Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window
|
534
|
-
)
|
535
557
|
self.bandmap_window.show()
|
536
558
|
|
537
559
|
self.actionCheck_Window.setChecked(self.pref.get("checkwindow", False))
|
538
|
-
if self.check_window:
|
539
|
-
self.check_window.close()
|
540
560
|
if self.actionCheck_Window.isChecked():
|
541
|
-
self.check_window = CheckWindow()
|
542
|
-
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.check_window)
|
543
561
|
self.check_window.show()
|
544
562
|
|
545
563
|
self.actionVFO.setChecked(self.pref.get("vfowindow", False))
|
546
|
-
if self.vfo_window:
|
547
|
-
self.vfo_window.close()
|
548
564
|
if self.actionVFO.isChecked():
|
549
|
-
self.vfo_window = VfoWindow()
|
550
|
-
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.vfo_window)
|
551
565
|
self.vfo_window.show()
|
552
566
|
|
553
567
|
if not DEBUG_ENABLED:
|
@@ -1424,47 +1438,37 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1424
1438
|
"""Launch the log window"""
|
1425
1439
|
self.pref["logwindow"] = self.actionLog_Window.isChecked()
|
1426
1440
|
self.write_preference()
|
1427
|
-
if self.log_window:
|
1428
|
-
self.log_window.close()
|
1429
1441
|
if self.actionLog_Window.isChecked():
|
1430
|
-
self.log_window = LogWindow()
|
1431
|
-
self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
|
1432
1442
|
self.log_window.show()
|
1443
|
+
else:
|
1444
|
+
self.log_window.hide()
|
1433
1445
|
|
1434
1446
|
def launch_bandmap_window(self) -> None:
|
1435
1447
|
"""Launch the bandmap window"""
|
1436
1448
|
self.pref["bandmapwindow"] = self.actionBandmap.isChecked()
|
1437
1449
|
self.write_preference()
|
1438
|
-
if self.bandmap_window:
|
1439
|
-
self.bandmap_window.close()
|
1440
1450
|
if self.actionBandmap.isChecked():
|
1441
|
-
self.bandmap_window = BandMapWindow()
|
1442
|
-
self.addDockWidget(
|
1443
|
-
Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window
|
1444
|
-
)
|
1445
1451
|
self.bandmap_window.show()
|
1452
|
+
else:
|
1453
|
+
self.bandmap_window.hide()
|
1446
1454
|
|
1447
1455
|
def launch_check_window(self) -> None:
|
1448
1456
|
"""Launch the check window"""
|
1449
1457
|
self.pref["checkwindow"] = self.actionCheck_Window.isChecked()
|
1450
1458
|
self.write_preference()
|
1451
|
-
if self.check_window:
|
1452
|
-
self.check_window.close()
|
1453
1459
|
if self.actionCheck_Window.isChecked():
|
1454
|
-
self.check_window = CheckWindow()
|
1455
|
-
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.check_window)
|
1456
1460
|
self.check_window.show()
|
1461
|
+
else:
|
1462
|
+
self.check_window.hide()
|
1457
1463
|
|
1458
1464
|
def launch_vfo(self) -> None:
|
1459
1465
|
"""Launch the VFO window"""
|
1460
1466
|
self.pref["vfowindow"] = self.actionVFO.isChecked()
|
1461
1467
|
self.write_preference()
|
1462
|
-
if self.vfo_window:
|
1463
|
-
self.vfo_window.close()
|
1464
1468
|
if self.actionVFO.isChecked():
|
1465
|
-
self.vfo_window = VfoWindow()
|
1466
|
-
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.vfo_window)
|
1467
1469
|
self.vfo_window.show()
|
1470
|
+
else:
|
1471
|
+
self.vfo_window.hide()
|
1468
1472
|
|
1469
1473
|
def clear_band_indicators(self) -> None:
|
1470
1474
|
"""
|
@@ -1522,14 +1526,14 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1522
1526
|
None
|
1523
1527
|
"""
|
1524
1528
|
|
1529
|
+
self.settings.setValue("geometry", self.saveGeometry())
|
1530
|
+
self.settings.setValue("windowState", self.saveState())
|
1531
|
+
self.settings.sync()
|
1532
|
+
|
1525
1533
|
cmd = {}
|
1526
1534
|
cmd["cmd"] = "HALT"
|
1527
1535
|
cmd["station"] = platform.node()
|
1528
1536
|
self.multicast_interface.send_as_json(cmd)
|
1529
|
-
self.pref["window_width"] = self.size().width()
|
1530
|
-
self.pref["window_height"] = self.size().height()
|
1531
|
-
self.pref["window_x"] = self.pos().x()
|
1532
|
-
self.pref["window_y"] = self.pos().y()
|
1533
1537
|
self.write_preference()
|
1534
1538
|
|
1535
1539
|
def cty_lookup(self, callsign: str) -> list:
|
@@ -2863,7 +2867,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2863
2867
|
None
|
2864
2868
|
"""
|
2865
2869
|
|
2866
|
-
if mode
|
2870
|
+
if mode in ("CW", "CW-U", "CW-L"):
|
2867
2871
|
self.setmode("CW")
|
2868
2872
|
self.radio_state["mode"] = "CW"
|
2869
2873
|
if self.rig_control:
|
@@ -3015,7 +3019,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3015
3019
|
|
3016
3020
|
def setmode(self, mode: str) -> None:
|
3017
3021
|
"""Call when the mode changes."""
|
3018
|
-
if mode
|
3022
|
+
if mode in ("CW", "CW-U", "CW-L"):
|
3019
3023
|
if self.current_mode != "CW":
|
3020
3024
|
self.current_mode = "CW"
|
3021
3025
|
self.sent.setText("599")
|
@@ -3032,7 +3036,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3032
3036
|
self.receive.setText("59")
|
3033
3037
|
self.read_cw_macros()
|
3034
3038
|
return
|
3035
|
-
if mode
|
3039
|
+
if mode in ("RTTY", "DIGI-U", "DIGI-L"):
|
3036
3040
|
if self.current_mode != "RTTY":
|
3037
3041
|
self.current_mode = "RTTY"
|
3038
3042
|
self.sent.setText("59")
|
@@ -3145,7 +3149,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3145
3149
|
info_dirty = True
|
3146
3150
|
self.radio_state["bw"] = bw
|
3147
3151
|
|
3148
|
-
if mode
|
3152
|
+
if mode in ("CW", "CW-U", "CW-L"):
|
3149
3153
|
self.setmode(mode)
|
3150
3154
|
if mode == "LSB" or mode == "USB":
|
3151
3155
|
self.setmode("SSB")
|
@@ -3153,26 +3157,29 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3153
3157
|
self.setmode("RTTY")
|
3154
3158
|
|
3155
3159
|
if info_dirty:
|
3156
|
-
|
3157
|
-
|
3158
|
-
|
3159
|
-
|
3160
|
-
|
3161
|
-
|
3162
|
-
|
3163
|
-
|
3164
|
-
|
3165
|
-
|
3166
|
-
|
3167
|
-
if self.n1mm
|
3168
|
-
self.n1mm.
|
3169
|
-
|
3170
|
-
|
3171
|
-
|
3172
|
-
|
3173
|
-
self.
|
3174
|
-
|
3175
|
-
|
3160
|
+
try:
|
3161
|
+
logger.debug("VFO: %s MODE: %s BW: %s", vfo, mode, bw)
|
3162
|
+
self.set_window_title()
|
3163
|
+
cmd = {}
|
3164
|
+
cmd["cmd"] = "RADIO_STATE"
|
3165
|
+
cmd["station"] = platform.node()
|
3166
|
+
cmd["band"] = band
|
3167
|
+
cmd["vfoa"] = vfo
|
3168
|
+
cmd["mode"] = mode
|
3169
|
+
cmd["bw"] = bw
|
3170
|
+
self.multicast_interface.send_as_json(cmd)
|
3171
|
+
if self.n1mm:
|
3172
|
+
if self.n1mm.send_radio_packets:
|
3173
|
+
self.n1mm.radio_info["Freq"] = vfo[:-1]
|
3174
|
+
self.n1mm.radio_info["TXFreq"] = vfo[:-1]
|
3175
|
+
self.n1mm.radio_info["Mode"] = mode
|
3176
|
+
self.n1mm.radio_info["OpCall"] = self.current_op
|
3177
|
+
self.n1mm.radio_info["IsRunning"] = str(
|
3178
|
+
self.pref.get("run_state", False)
|
3179
|
+
)
|
3180
|
+
self.n1mm.send_radio()
|
3181
|
+
except TypeError as err:
|
3182
|
+
logger.debug(f"{err=} {vfo=} {the_dict=}")
|
3176
3183
|
|
3177
3184
|
def edit_cw_macros(self) -> None:
|
3178
3185
|
"""
|
@@ -3396,11 +3403,11 @@ app = QtWidgets.QApplication(sys.argv)
|
|
3396
3403
|
families = load_fonts_from_dir(os.fspath(fsutils.APP_DATA_PATH))
|
3397
3404
|
logger.info(f"font families {families}")
|
3398
3405
|
window = MainWindow()
|
3399
|
-
height = window.pref.get("window_height", 300)
|
3400
|
-
width = window.pref.get("window_width", 700)
|
3401
|
-
x = window.pref.get("window_x", -1)
|
3402
|
-
y = window.pref.get("window_y", -1)
|
3403
|
-
window.setGeometry(x, y, width, height)
|
3406
|
+
# height = window.pref.get("window_height", 300)
|
3407
|
+
# width = window.pref.get("window_width", 700)
|
3408
|
+
# x = window.pref.get("window_x", -1)
|
3409
|
+
# y = window.pref.get("window_y", -1)
|
3410
|
+
# window.setGeometry(x, y, width, height)
|
3404
3411
|
window.callsign.setFocus()
|
3405
3412
|
window.show()
|
3406
3413
|
# timer = QtCore.QTimer()
|
not1mm/data/main.ui
CHANGED
not1mm/lib/cat_interface.py
CHANGED
@@ -138,6 +138,8 @@ class CAT:
|
|
138
138
|
ConnectionRefusedError,
|
139
139
|
xmlrpc.client.Fault,
|
140
140
|
http.client.BadStatusLine,
|
141
|
+
http.client.CannotSendRequest,
|
142
|
+
http.client.ResponseNotReady,
|
141
143
|
) as exception:
|
142
144
|
self.online = False
|
143
145
|
logger.debug("getvfo_flrig: %s", f"{exception}")
|
@@ -177,6 +179,8 @@ class CAT:
|
|
177
179
|
ConnectionRefusedError,
|
178
180
|
xmlrpc.client.Fault,
|
179
181
|
http.client.BadStatusLine,
|
182
|
+
http.client.CannotSendRequest,
|
183
|
+
http.client.ResponseNotReady,
|
180
184
|
) as exception:
|
181
185
|
self.online = False
|
182
186
|
logger.debug("%s", f"{exception}")
|
@@ -220,6 +224,8 @@ class CAT:
|
|
220
224
|
ConnectionRefusedError,
|
221
225
|
xmlrpc.client.Fault,
|
222
226
|
http.client.BadStatusLine,
|
227
|
+
http.client.CannotSendRequest,
|
228
|
+
http.client.ResponseNotReady,
|
223
229
|
) as exception:
|
224
230
|
self.online = False
|
225
231
|
logger.debug("getbw_flrig: %s", f"{exception}")
|
@@ -261,6 +267,8 @@ class CAT:
|
|
261
267
|
ConnectionRefusedError,
|
262
268
|
xmlrpc.client.Fault,
|
263
269
|
http.client.BadStatusLine,
|
270
|
+
http.client.CannotSendRequest,
|
271
|
+
http.client.ResponseNotReady,
|
264
272
|
) as exception:
|
265
273
|
self.online = False
|
266
274
|
logger.debug("getpower_flrig: %s", f"{exception}")
|
@@ -295,6 +303,8 @@ class CAT:
|
|
295
303
|
ConnectionRefusedError,
|
296
304
|
xmlrpc.client.Fault,
|
297
305
|
http.client.BadStatusLine,
|
306
|
+
http.client.CannotSendRequest,
|
307
|
+
http.client.ResponseNotReady,
|
298
308
|
) as exception:
|
299
309
|
self.online = False
|
300
310
|
logger.debug("%s", f"{exception}")
|
@@ -318,10 +328,13 @@ class CAT:
|
|
318
328
|
|
319
329
|
def set_vfo(self, freq: str) -> bool:
|
320
330
|
"""Sets the radios vfo"""
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
331
|
+
try:
|
332
|
+
if self.interface == "flrig":
|
333
|
+
return self.__setvfo_flrig(freq)
|
334
|
+
if self.interface == "rigctld":
|
335
|
+
return self.__setvfo_rigctld(freq)
|
336
|
+
except ValueError:
|
337
|
+
...
|
325
338
|
return False
|
326
339
|
|
327
340
|
def __setvfo_flrig(self, freq: str) -> bool:
|
@@ -333,6 +346,8 @@ class CAT:
|
|
333
346
|
ConnectionRefusedError,
|
334
347
|
xmlrpc.client.Fault,
|
335
348
|
http.client.BadStatusLine,
|
349
|
+
http.client.CannotSendRequest,
|
350
|
+
http.client.ResponseNotReady,
|
336
351
|
) as exception:
|
337
352
|
self.online = False
|
338
353
|
logger.debug("setvfo_flrig: %s", f"{exception}")
|
@@ -371,6 +386,8 @@ class CAT:
|
|
371
386
|
ConnectionRefusedError,
|
372
387
|
xmlrpc.client.Fault,
|
373
388
|
http.client.BadStatusLine,
|
389
|
+
http.client.CannotSendRequest,
|
390
|
+
http.client.ResponseNotReady,
|
374
391
|
) as exception:
|
375
392
|
self.online = False
|
376
393
|
logger.debug("setmode_flrig: %s", f"{exception}")
|
@@ -408,6 +425,8 @@ class CAT:
|
|
408
425
|
ConnectionRefusedError,
|
409
426
|
xmlrpc.client.Fault,
|
410
427
|
http.client.BadStatusLine,
|
428
|
+
http.client.CannotSendRequest,
|
429
|
+
http.client.ResponseNotReady,
|
411
430
|
) as exception:
|
412
431
|
self.online = False
|
413
432
|
logger.debug("setpower_flrig: %s", f"{exception}")
|
@@ -462,6 +481,8 @@ class CAT:
|
|
462
481
|
ConnectionRefusedError,
|
463
482
|
xmlrpc.client.Fault,
|
464
483
|
http.client.BadStatusLine,
|
484
|
+
http.client.CannotSendRequest,
|
485
|
+
http.client.ResponseNotReady,
|
465
486
|
) as exception:
|
466
487
|
self.online = False
|
467
488
|
logger.debug("%s", f"{exception}")
|
@@ -496,6 +517,8 @@ class CAT:
|
|
496
517
|
ConnectionRefusedError,
|
497
518
|
xmlrpc.client.Fault,
|
498
519
|
http.client.BadStatusLine,
|
520
|
+
http.client.CannotSendRequest,
|
521
|
+
http.client.ResponseNotReady,
|
499
522
|
) as exception:
|
500
523
|
self.online = False
|
501
524
|
logger.debug("%s", f"{exception}")
|
not1mm/lib/ham_utility.py
CHANGED
@@ -242,7 +242,7 @@ def fakefreq(band: str, mode: str) -> str:
|
|
242
242
|
"80": ["3530", "3559", "3970"],
|
243
243
|
"60": ["5332", "5373", "5405"],
|
244
244
|
"40": ["7030", "7040", "7250"],
|
245
|
-
"30": ["10130", "10130", "
|
245
|
+
"30": ["10130", "10130", "10130"],
|
246
246
|
"20": ["14030", "14070", "14250"],
|
247
247
|
"17": ["18080", "18100", "18150"],
|
248
248
|
"15": ["21065", "21070", "21200"],
|
not1mm/lib/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.7.
|
3
|
+
Version: 24.7.19
|
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
|
@@ -223,8 +223,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
223
223
|
|
224
224
|
## Recent Changes
|
225
225
|
|
226
|
-
- [24-
|
227
|
-
- [24-
|
226
|
+
- [24-7-19] Use Qt's QSettings to store window and dockwidgets states.
|
227
|
+
- [24-7-13] Trap Exceptions in flrig xmlrpc client.
|
228
228
|
|
229
229
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
230
230
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
not1mm/__main__.py,sha256=
|
2
|
+
not1mm/__main__.py,sha256=yVBck7JN7jIc49RvxkHhMI9QphC85pLufOH7Uul738o,120573
|
3
3
|
not1mm/bandmap.py,sha256=Ml5DDoybk_I56q2WLYDKE4lfmh6pb9XxW0qpl5nDFYY,32161
|
4
4
|
not1mm/checkwindow.py,sha256=zHxkCQ4BJ-pN80dSTQdiKq8RqY4oWzJveXZhQ2bu3PY,10436
|
5
5
|
not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
|
@@ -29,7 +29,7 @@ not1mm/data/k6gte.not1mm-32.png,sha256=XdTsCa3xqwTfn26Ga7RwO_Vlbg_77RKkSc8bMxVcC
|
|
29
29
|
not1mm/data/k6gte.not1mm-64.png,sha256=6ku45Gq1g5ezh04F07osoKRtanb3e4kbx5XdIEh3N90,2925
|
30
30
|
not1mm/data/logwindow.ui,sha256=vfkNdzJgFs3tTOBKLDavF2zVMvNHWOZ82fAErRi6pQY,1436
|
31
31
|
not1mm/data/logwindowx.ui,sha256=9FzDJtLRpagvAWcDjFdB9NnvNZ4bVxdTNHy1Jit2ido,1610
|
32
|
-
not1mm/data/main.ui,sha256=
|
32
|
+
not1mm/data/main.ui,sha256=Y8F0gOqMTcsxBmc3QvWkJMxhYFpxUJQl-btGiM1-31w,56506
|
33
33
|
not1mm/data/new_contest.ui,sha256=qP4v6el5mZrIuHUcIZXDkNviuGJk09ZtnpwpgxzQ6TY,21928
|
34
34
|
not1mm/data/not1mm.html,sha256=c9-mfjMwDt4f5pySUruz2gREW33CQ2_rCddM2z5CZQo,23273
|
35
35
|
not1mm/data/opon.ui,sha256=mC4OhoVIfR1H9IqHAKXliPMm8VOVmxSEadpsFQ7XnS4,2247
|
@@ -91,7 +91,7 @@ not1mm/data/phonetics/yourcall.wav,sha256=4kheHJmCiRDL2kjhlgXQ8_u_eEMgKxiNGu5UBk
|
|
91
91
|
not1mm/data/phonetics/z.wav,sha256=arafCi7fwmBLdVDI-PRyaL4U-03PIQDhffwY5noJ_2c,51768
|
92
92
|
not1mm/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
93
93
|
not1mm/lib/about.py,sha256=sWycfGcruN3SaEe4JmaJ61K6D8Itq0WxpUYT-lEcmYM,416
|
94
|
-
not1mm/lib/cat_interface.py,sha256=
|
94
|
+
not1mm/lib/cat_interface.py,sha256=NDlS4vdlH18oCgvXNjqFVymCAKJKyUNh6g1hmKwoV7k,16964
|
95
95
|
not1mm/lib/cwinterface.py,sha256=Q8p3pScOHczZ8ptICfH1Yu6rCEwQJLgrNwYMN76B2i8,3389
|
96
96
|
not1mm/lib/database.py,sha256=RQoj3JsTejMiiFIN42lY3N4jrj80htftdoFeRqVKnKs,42480
|
97
97
|
not1mm/lib/edit_contact.py,sha256=Ki9bGPpqyQQBB1cU8VIBDCal3lbXeQ6qxhzklmhE2_w,353
|
@@ -99,7 +99,7 @@ not1mm/lib/edit_macro.py,sha256=raKWBwsHInj5EUKmvyLQ6gqc3ZFDlstsD3xqoM4PC8E,517
|
|
99
99
|
not1mm/lib/edit_opon.py,sha256=j3qJ1aBsQoIOnQ9yiBl3lyeISvKTP0I_rtBYBPAfgeI,359
|
100
100
|
not1mm/lib/edit_station.py,sha256=doL21Hs6jzIE43ohAopdFt_iqnRJZHFcqzcnCS0-iio,1965
|
101
101
|
not1mm/lib/ft8_watcher.py,sha256=ISfXjs-Mgbz_lE5SThEnFoCe8apNLElgSuECAMCH18I,4080
|
102
|
-
not1mm/lib/ham_utility.py,sha256=
|
102
|
+
not1mm/lib/ham_utility.py,sha256=rHYTHxeoMhpzmh_J6jEqCPJmVLpJbM2o4mbvydGLyvE,10979
|
103
103
|
not1mm/lib/lookup.py,sha256=F2fl5QkMxaGSxl1XMWnLUub3T9Mt7LhCX4acOlAsks4,13952
|
104
104
|
not1mm/lib/multicast.py,sha256=bnFUNHyy82GmIb3_88EPBVVssj7-HzkJPaH671cK8Qw,3249
|
105
105
|
not1mm/lib/n1mm.py,sha256=H54mpgJF0GAmKavM-nb5OAq2SJFWYkux4eMWWiSRxJc,6288
|
@@ -109,7 +109,7 @@ not1mm/lib/plugin_common.py,sha256=AAKBPCXzTWZJb-h08uPNnHVG7bSCg7kwukc211gFivY,8
|
|
109
109
|
not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
|
110
110
|
not1mm/lib/settings.py,sha256=MWiKXbasaFbzeHTjfzTaTqbCBrIijudP_-0a5jNmUAA,9265
|
111
111
|
not1mm/lib/super_check_partial.py,sha256=p5l3u2ZOCBtlWgbvskC50FpuoaIpR07tfC6zTdRWbh4,2334
|
112
|
-
not1mm/lib/version.py,sha256=
|
112
|
+
not1mm/lib/version.py,sha256=X7UsWTkmHNoMFl40ndtGBSQuMBMqWBxeRhSrC6sjElw,48
|
113
113
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
114
114
|
not1mm/plugins/10_10_fall_cw.py,sha256=IttjX1yy4nDdACGsiYlPteFG8eVseX_WtoFio6bqHE8,10953
|
115
115
|
not1mm/plugins/10_10_spring_cw.py,sha256=ThCptdM3dX4ywhoy2JRcOEyHSqcJolFaT7O_PYzM1Mg,10958
|
@@ -145,9 +145,9 @@ not1mm/plugins/naqp_ssb.py,sha256=VLWVrSzI0UP1AhSXYn61eZ7or1rz6a_pS_xCKfgS4Jw,11
|
|
145
145
|
not1mm/plugins/phone_weekly_test.py,sha256=fLpMe03WB9_KgRl6vMgQQt_aktFdqfNt2Sw81CTRAUs,12325
|
146
146
|
not1mm/plugins/stew_perry_topband.py,sha256=CKBQbYl4ETxhXJd2dma4fg_C5pag_s7Nf61SCztZtqE,10668
|
147
147
|
not1mm/plugins/winter_field_day.py,sha256=4rcfRtobwjHO6BNL3WOTHzBmyyeuX79BNGBG8PfjrI8,10238
|
148
|
-
not1mm-24.7.
|
149
|
-
not1mm-24.7.
|
150
|
-
not1mm-24.7.
|
151
|
-
not1mm-24.7.
|
152
|
-
not1mm-24.7.
|
153
|
-
not1mm-24.7.
|
148
|
+
not1mm-24.7.19.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
149
|
+
not1mm-24.7.19.dist-info/METADATA,sha256=EdsnUz2o1LrulLIrNHTDLohqKB56-4s8S5VNWk5bWDw,29186
|
150
|
+
not1mm-24.7.19.dist-info/WHEEL,sha256=rWxmBtp7hEUqVLOnTaDOPpR-cZpCDkzhhcBce-Zyd5k,91
|
151
|
+
not1mm-24.7.19.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
152
|
+
not1mm-24.7.19.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
153
|
+
not1mm-24.7.19.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|