not1mm 24.4.30__py3-none-any.whl → 24.5.9__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 +40 -67
- not1mm/bandmap.py +3 -1
- not1mm/checkwindow.py +5 -1
- not1mm/data/new_contest.ui +5 -0
- not1mm/lib/playsound.py +296 -0
- not1mm/lib/version.py +1 -1
- not1mm/logwindow.py +5 -1
- not1mm/playsoundtest.py +15 -0
- not1mm/plugins/10_10_fall_cw.py +2 -0
- not1mm/plugins/10_10_spring_cw.py +2 -0
- not1mm/plugins/10_10_summer_phone.py +2 -0
- not1mm/plugins/10_10_winter_phone.py +2 -0
- not1mm/plugins/arrl_10m.py +2 -0
- not1mm/plugins/arrl_dx_cw.py +2 -0
- not1mm/plugins/arrl_dx_ssb.py +2 -0
- not1mm/plugins/arrl_ss_cw.py +2 -0
- not1mm/plugins/arrl_ss_phone.py +2 -0
- not1mm/plugins/arrl_vhf_jan.py +2 -0
- not1mm/plugins/arrl_vhf_jun.py +2 -0
- not1mm/plugins/arrl_vhf_sep.py +2 -0
- not1mm/plugins/canada_day.py +2 -0
- not1mm/plugins/cq_160_cw.py +2 -0
- not1mm/plugins/cq_160_ssb.py +2 -0
- not1mm/plugins/cq_wpx_cw.py +39 -0
- not1mm/plugins/cq_wpx_ssb.py +2 -0
- not1mm/plugins/cq_ww_cw.py +2 -0
- not1mm/plugins/cq_ww_ssb.py +2 -0
- not1mm/plugins/cwt.py +26 -0
- not1mm/plugins/general_logging.py +2 -0
- not1mm/plugins/iaru_hf.py +2 -0
- not1mm/plugins/icwc_mst.py +372 -0
- not1mm/plugins/jidx_cw.py +31 -0
- not1mm/plugins/jidx_ph.py +2 -0
- not1mm/plugins/naqp_cw.py +32 -0
- not1mm/plugins/naqp_ssb.py +2 -0
- not1mm/plugins/stew_perry_topband.py +2 -0
- not1mm/radio.py +12 -9
- not1mm/vfo.py +5 -1
- not1mm/voice_keying.py +103 -0
- {not1mm-24.4.30.dist-info → not1mm-24.5.9.dist-info}/METADATA +9 -21
- {not1mm-24.4.30.dist-info → not1mm-24.5.9.dist-info}/RECORD +45 -41
- {not1mm-24.4.30.dist-info → not1mm-24.5.9.dist-info}/LICENSE +0 -0
- {not1mm-24.4.30.dist-info → not1mm-24.5.9.dist-info}/WHEEL +0 -0
- {not1mm-24.4.30.dist-info → not1mm-24.5.9.dist-info}/entry_points.txt +0 -0
- {not1mm-24.4.30.dist-info → not1mm-24.5.9.dist-info}/top_level.txt +0 -0
not1mm/plugins/naqp_ssb.py
CHANGED
@@ -51,6 +51,8 @@ def interface(self):
|
|
51
51
|
self.field2.hide()
|
52
52
|
self.field3.show()
|
53
53
|
self.field4.show()
|
54
|
+
self.snt_label.setText("SNT")
|
55
|
+
self.field1.setAccessibleName("RST Sent")
|
54
56
|
namefield = self.field3.findChild(QtWidgets.QLabel)
|
55
57
|
namefield.setText("Name")
|
56
58
|
self.field3.setAccessibleName("Name")
|
@@ -74,6 +74,8 @@ def interface(self):
|
|
74
74
|
self.field2.show()
|
75
75
|
self.field3.show()
|
76
76
|
self.field4.hide()
|
77
|
+
self.snt_label.setText("SNT")
|
78
|
+
self.field1.setAccessibleName("RST Sent")
|
77
79
|
label = self.field3.findChild(QtWidgets.QLabel)
|
78
80
|
label.setText("Grid")
|
79
81
|
self.field3.setAccessibleName("Grid")
|
not1mm/radio.py
CHANGED
@@ -12,7 +12,7 @@ GPL V3
|
|
12
12
|
import datetime
|
13
13
|
import logging
|
14
14
|
|
15
|
-
from PyQt6.QtCore import QObject, pyqtSignal, QThread
|
15
|
+
from PyQt6.QtCore import QObject, pyqtSignal, QThread, QEventLoop
|
16
16
|
from not1mm.lib.cat_interface import CAT
|
17
17
|
|
18
18
|
logger = logging.getLogger("cat_interface")
|
@@ -65,14 +65,17 @@ class Radio(QObject):
|
|
65
65
|
if bw:
|
66
66
|
self.bw = bw
|
67
67
|
self.online = True
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
68
|
+
try:
|
69
|
+
self.poll_callback.emit(
|
70
|
+
{
|
71
|
+
"vfoa": self.vfoa,
|
72
|
+
"mode": self.mode,
|
73
|
+
"bw": self.bw,
|
74
|
+
"online": self.online,
|
75
|
+
}
|
76
|
+
)
|
77
|
+
except QEventLoop:
|
78
|
+
...
|
76
79
|
QThread.msleep(100)
|
77
80
|
|
78
81
|
def sendcw(self, texttosend):
|
not1mm/vfo.py
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
#!/usr/bin/env python3
|
2
2
|
"""
|
3
|
-
|
3
|
+
not1mm Contest logger
|
4
|
+
Email: michael.bridak@gmail.com
|
5
|
+
GPL V3
|
6
|
+
Class: VfoWindow
|
7
|
+
Purpose: Provide onscreen widget that interacts with DIY VFO knob and remote rig.
|
4
8
|
"""
|
5
9
|
# pylint: disable=no-name-in-module, unused-import, no-member, invalid-name, logging-fstring-interpolation, c-extension-no-member
|
6
10
|
|
not1mm/voice_keying.py
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
|
3
|
+
"""
|
4
|
+
Not1MM Contest logger
|
5
|
+
Email: michael.bridak@gmail.com
|
6
|
+
GPL V3
|
7
|
+
Class: Voice
|
8
|
+
Purpose: A voice keying class to handle playing soundfiles and activating PTT
|
9
|
+
Run in it's own thread.
|
10
|
+
"""
|
11
|
+
|
12
|
+
# pylint: disable=unused-import, c-extension-no-member, no-member, invalid-name, too-many-lines
|
13
|
+
# pylint: disable=logging-fstring-interpolation, line-too-long, no-name-in-module
|
14
|
+
|
15
|
+
import logging
|
16
|
+
from pathlib import Path
|
17
|
+
|
18
|
+
try:
|
19
|
+
import sounddevice as sd
|
20
|
+
except OSError as exception:
|
21
|
+
print(exception)
|
22
|
+
print("portaudio is not installed")
|
23
|
+
sd = None
|
24
|
+
import soundfile as sf
|
25
|
+
|
26
|
+
from PyQt6.QtCore import QObject, pyqtSignal, QThread
|
27
|
+
|
28
|
+
logger = logging.getLogger("cat_interface")
|
29
|
+
|
30
|
+
|
31
|
+
class Voice(QObject):
|
32
|
+
"""Voice class"""
|
33
|
+
|
34
|
+
ptt_on = pyqtSignal()
|
35
|
+
ptt_off = pyqtSignal()
|
36
|
+
data_path = None
|
37
|
+
current_op = None
|
38
|
+
sounddevice = None
|
39
|
+
voicings = []
|
40
|
+
|
41
|
+
def __init__(self) -> None:
|
42
|
+
super().__init__()
|
43
|
+
"""setup interface"""
|
44
|
+
|
45
|
+
def run(self):
|
46
|
+
while True:
|
47
|
+
keyed = False
|
48
|
+
while len(self.voicings):
|
49
|
+
if not keyed:
|
50
|
+
self.ptt_on.emit()
|
51
|
+
keyed = True
|
52
|
+
filename = self.voicings.pop(0)
|
53
|
+
if Path(filename).is_file():
|
54
|
+
logger.debug("Voicing: %s", filename)
|
55
|
+
data, _fs = sf.read(filename, dtype="float32")
|
56
|
+
# self.ptt_on.emit()
|
57
|
+
try:
|
58
|
+
sd.default.device = self.sounddevice
|
59
|
+
sd.default.samplerate = 44100.0
|
60
|
+
sd.play(data, blocking=True)
|
61
|
+
# _status = sd.wait()
|
62
|
+
# https://snyk.io/advisor/python/sounddevice/functions/sounddevice.PortAudioError
|
63
|
+
except sd.PortAudioError as err:
|
64
|
+
logger.warning("%s", f"{err}")
|
65
|
+
if keyed:
|
66
|
+
self.ptt_off.emit()
|
67
|
+
QThread.msleep(100)
|
68
|
+
|
69
|
+
def voice_string(self, the_string: str) -> None:
|
70
|
+
"""
|
71
|
+
voices string using nato phonetics.
|
72
|
+
|
73
|
+
Parameters
|
74
|
+
----------
|
75
|
+
the_string : str
|
76
|
+
String to voicify.
|
77
|
+
|
78
|
+
Returns
|
79
|
+
-------
|
80
|
+
None
|
81
|
+
"""
|
82
|
+
|
83
|
+
logger.debug("Voicing: %s", the_string)
|
84
|
+
if sd is None:
|
85
|
+
logger.warning("Sounddevice/portaudio not installed.")
|
86
|
+
return
|
87
|
+
# fsutils.USER_DATA_PATH
|
88
|
+
# self.current_op
|
89
|
+
op_path = self.data_path / self.current_op
|
90
|
+
if "[" in the_string:
|
91
|
+
sub_string = the_string.strip("[]").lower()
|
92
|
+
filename = f"{str(op_path)}/{sub_string}.wav"
|
93
|
+
if Path(filename).is_file():
|
94
|
+
self.voicings.append(filename)
|
95
|
+
return
|
96
|
+
for letter in the_string.lower():
|
97
|
+
if letter in "abcdefghijklmnopqrstuvwxyz 1234567890":
|
98
|
+
if letter == " ":
|
99
|
+
letter = "space"
|
100
|
+
filename = f"{str(op_path)}/{letter}.wav"
|
101
|
+
if Path(filename).is_file():
|
102
|
+
logger.debug("Voicing: %s", filename)
|
103
|
+
self.voicings.append(filename)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.
|
3
|
+
Version: 24.5.9
|
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
|
@@ -169,6 +169,7 @@ I wish to thank those who've contributed to the project.
|
|
169
169
|
- CQ World Wide SSB
|
170
170
|
- CWOps CWT
|
171
171
|
- IARU HF
|
172
|
+
- ICWC MST
|
172
173
|
- Japan International DX CW
|
173
174
|
- Japan International DX SSB
|
174
175
|
- NAQP CW
|
@@ -180,24 +181,8 @@ I wish to thank those who've contributed to the project.
|
|
180
181
|
|
181
182
|
## Recent Changes
|
182
183
|
|
183
|
-
- [24-
|
184
|
-
- [24-
|
185
|
-
- [24-4-25-1] Reduce delta time to poll. Reorder poll_radio callback. Remove unused CAT lib from main.
|
186
|
-
- [24-4-25] Limited loop in radio.py, reducing clock cycles used. Moved Log window to the top of the logger.
|
187
|
-
- [24-4-24] Placed CAT control into a thread so disconnecting the radio wouldn't lock up the interface.
|
188
|
-
- [24-4-17] Trap OSError if no sound device. Stop fsutils/appdata from creating useless .not1mm and .username folder structures on Linux platforms.
|
189
|
-
- [24-4-15] checkwindow.py Tighter results. Changed the call selection to use a single click.
|
190
|
-
- [24-4-9-4] Check for portaudio instead of crash boom. Removed empty dockwidget. Tested on Plasma 6.
|
191
|
-
- [24-4-9-3] Ugh. It's not a real day unless you forget to test.
|
192
|
-
- [24-4-9-2] Put back the floatable dock widgets, 'cause Wayland strikes again.
|
193
|
-
- [24-4-9-1] Removed DockWidgetFloatable from the dock widgets since my wee brain can't figure out how to add a dragable window frame to them once they are floating. Added a minimum size for the VFO LCD digits. Defaulted bandmap window to the right.
|
194
|
-
- [24-4-9] Fixed Checkwindow not showing calls from logged contacts.
|
195
|
-
- [24-4-7] Added FT8Watcher class to prep for FT8 support.
|
196
|
-
- [24-4-4-1] Made docking widgets open state persistent.
|
197
|
-
- [24-4-4] Added per-contest echange hint when adding new contest.
|
198
|
-
- [24-4-2] Migrated to PyQt6. I'm sure there are broken things.
|
199
|
-
- [24-4-1-2] Added color text indicators to the Check Partial window. Poached the code from @kyleboyle. Thanks! Fixed the Log, VFO and Check Partial windows to be actual docking widgets. Refocus call field after double clicking on item in the check partial window.
|
200
|
-
- [24-4-1] Removed some un-needed loops and widgets from the check window. Fixed docking to the left side.
|
184
|
+
- [24-5-9] Add ICWC MST.
|
185
|
+
- [24-5-1] Moved the voice keying into it's own thread.
|
201
186
|
|
202
187
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
203
188
|
|
@@ -229,8 +214,11 @@ noted the minimum steps needed to install not1mm.
|
|
229
214
|
```bash
|
230
215
|
sudo apt update
|
231
216
|
sudo apt upgrade
|
232
|
-
sudo apt install -y
|
233
|
-
pip install -U
|
217
|
+
sudo apt install -y python3-pip python3-numpy libxcb-cursor0 libportaudio2
|
218
|
+
python3 -m pip install -U pip
|
219
|
+
# Logout and back in
|
220
|
+
pip3 install PyQt6
|
221
|
+
pip3 install not1mm
|
234
222
|
```
|
235
223
|
|
236
224
|
#### Ubuntu 23.04
|
@@ -1,11 +1,13 @@
|
|
1
1
|
not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
not1mm/__main__.py,sha256=
|
3
|
-
not1mm/bandmap.py,sha256=
|
4
|
-
not1mm/checkwindow.py,sha256=
|
2
|
+
not1mm/__main__.py,sha256=CtRVGZkQAZfIPsm73V3qrE7Ms42GugEJU4h_trp42XQ,120468
|
3
|
+
not1mm/bandmap.py,sha256=Ml5DDoybk_I56q2WLYDKE4lfmh6pb9XxW0qpl5nDFYY,32161
|
4
|
+
not1mm/checkwindow.py,sha256=zHxkCQ4BJ-pN80dSTQdiKq8RqY4oWzJveXZhQ2bu3PY,10436
|
5
5
|
not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
|
6
|
-
not1mm/logwindow.py,sha256=
|
7
|
-
not1mm/
|
8
|
-
not1mm/
|
6
|
+
not1mm/logwindow.py,sha256=pwhiwolmGnW01LF4sjlu3ywLsgfxL6KuGuKuYKYmgeY,44403
|
7
|
+
not1mm/playsoundtest.py,sha256=_kvvOfgs-u-H4kVSiSlnDtn9HWv0RiJQybkv24CEngc,464
|
8
|
+
not1mm/radio.py,sha256=NFU7PDu_79xoD1O79_oasEX8Qz76lrTi38FeY8V2l74,3221
|
9
|
+
not1mm/vfo.py,sha256=FVuRjA8LCLkt8pZ3enBuCcxLJchb1ysvaMnX0txrZSs,12038
|
10
|
+
not1mm/voice_keying.py,sha256=fkexCCwWcZsXxYVAk0QGcpGbLjbS10ToxWtdKihIVM4,3152
|
9
11
|
not1mm/data/JetBrainsMono-Regular.ttf,sha256=UOHctAKY_PzCGh7zy-6f6egnCcSK0wzmF0csBqO9lDY,203952
|
10
12
|
not1mm/data/MASTER.SCP,sha256=1vQRvEZ865brfmmajp-Lj-hgWejVGI992q8o971bUV8,366478
|
11
13
|
not1mm/data/about.ui,sha256=7TqvtXFFm0Rmcu0bmLupwpO1CsK8MekfZ09_xn6kZrQ,2067
|
@@ -28,7 +30,7 @@ not1mm/data/k6gte.not1mm-64.png,sha256=6ku45Gq1g5ezh04F07osoKRtanb3e4kbx5XdIEh3N
|
|
28
30
|
not1mm/data/logwindow.ui,sha256=vfkNdzJgFs3tTOBKLDavF2zVMvNHWOZ82fAErRi6pQY,1436
|
29
31
|
not1mm/data/logwindowx.ui,sha256=9FzDJtLRpagvAWcDjFdB9NnvNZ4bVxdTNHy1Jit2ido,1610
|
30
32
|
not1mm/data/main.ui,sha256=wtfBeYdgv0VYuwlXx6WlKbKkrML_zeiSx79866Wi6cM,54585
|
31
|
-
not1mm/data/new_contest.ui,sha256=
|
33
|
+
not1mm/data/new_contest.ui,sha256=qP4v6el5mZrIuHUcIZXDkNviuGJk09ZtnpwpgxzQ6TY,21928
|
32
34
|
not1mm/data/not1mm.html,sha256=c9-mfjMwDt4f5pySUruz2gREW33CQ2_rCddM2z5CZQo,23273
|
33
35
|
not1mm/data/opon.ui,sha256=mC4OhoVIfR1H9IqHAKXliPMm8VOVmxSEadpsFQ7XnS4,2247
|
34
36
|
not1mm/data/pickcontest.ui,sha256=_9JFiJw4l-bRRgNDtVg1DpxreylYd_UqEq0wfcr9gJc,1600
|
@@ -102,47 +104,49 @@ not1mm/lib/lookup.py,sha256=F2fl5QkMxaGSxl1XMWnLUub3T9Mt7LhCX4acOlAsks4,13952
|
|
102
104
|
not1mm/lib/multicast.py,sha256=bnFUNHyy82GmIb3_88EPBVVssj7-HzkJPaH671cK8Qw,3249
|
103
105
|
not1mm/lib/n1mm.py,sha256=V1NiNyOHaPNYKe_vRsq44O1R42N8uS5PlfRa5Db4Tv0,5712
|
104
106
|
not1mm/lib/new_contest.py,sha256=IznTDMq7yXHB6zBoGUEC_WDYPCPpsSZW4wwMJi16zK0,816
|
107
|
+
not1mm/lib/playsound.py,sha256=kxkcitBFbZCXJ2wxQ1lxg4rBwfxiSpuNpJSXHOPCoXA,9241
|
105
108
|
not1mm/lib/plugin_common.py,sha256=AAKBPCXzTWZJb-h08uPNnHVG7bSCg7kwukc211gFivY,8605
|
106
109
|
not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
|
107
110
|
not1mm/lib/settings.py,sha256=MWiKXbasaFbzeHTjfzTaTqbCBrIijudP_-0a5jNmUAA,9265
|
108
111
|
not1mm/lib/super_check_partial.py,sha256=p5l3u2ZOCBtlWgbvskC50FpuoaIpR07tfC6zTdRWbh4,2334
|
109
|
-
not1mm/lib/version.py,sha256=
|
112
|
+
not1mm/lib/version.py,sha256=O6cciNYkRjD26EgUr4tnal4tFjBXnUf8y7HayJUjA0s,47
|
110
113
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
111
|
-
not1mm/plugins/10_10_fall_cw.py,sha256=
|
112
|
-
not1mm/plugins/10_10_spring_cw.py,sha256=
|
113
|
-
not1mm/plugins/10_10_summer_phone.py,sha256=
|
114
|
-
not1mm/plugins/10_10_winter_phone.py,sha256=
|
114
|
+
not1mm/plugins/10_10_fall_cw.py,sha256=IttjX1yy4nDdACGsiYlPteFG8eVseX_WtoFio6bqHE8,10953
|
115
|
+
not1mm/plugins/10_10_spring_cw.py,sha256=ThCptdM3dX4ywhoy2JRcOEyHSqcJolFaT7O_PYzM1Mg,10958
|
116
|
+
not1mm/plugins/10_10_summer_phone.py,sha256=VJTCD2JikpzVTEYG6naK_n6cGQXgxVHvLV7pmYt1hq0,10967
|
117
|
+
not1mm/plugins/10_10_winter_phone.py,sha256=kFz4DRU850_dhHIQAhrVfGfQ8c59Rkcdurq4mk3XBQY,10970
|
115
118
|
not1mm/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
116
|
-
not1mm/plugins/arrl_10m.py,sha256=
|
117
|
-
not1mm/plugins/arrl_dx_cw.py,sha256=
|
118
|
-
not1mm/plugins/arrl_dx_ssb.py,sha256=
|
119
|
+
not1mm/plugins/arrl_10m.py,sha256=IGJyRQgDXsXuxBzJJpiWsKYFBdwyV1pAy9R8c6S8lDY,13757
|
120
|
+
not1mm/plugins/arrl_dx_cw.py,sha256=LVnYDNFEUiIpQ1TlhOCcRK7JNwH5XPO5WzUoApSUMTY,13802
|
121
|
+
not1mm/plugins/arrl_dx_ssb.py,sha256=fUFzuNbCAfA5sQSYm8ISV3P9Z_2xnuKeOdO6E66zn1k,13805
|
119
122
|
not1mm/plugins/arrl_field_day.py,sha256=OSro24LsSVW41yecKziWQMjflJbo62P8C53Q3M3-Lb0,10052
|
120
123
|
not1mm/plugins/arrl_rtty_ru.py,sha256=hKUS4isjdXo3EYxQrsqsDupPp2chW8fpoWj0T1pTgJ4,7994
|
121
|
-
not1mm/plugins/arrl_ss_cw.py,sha256=
|
122
|
-
not1mm/plugins/arrl_ss_phone.py,sha256=
|
123
|
-
not1mm/plugins/arrl_vhf_jan.py,sha256=
|
124
|
-
not1mm/plugins/arrl_vhf_jun.py,sha256=
|
125
|
-
not1mm/plugins/arrl_vhf_sep.py,sha256=
|
126
|
-
not1mm/plugins/canada_day.py,sha256=
|
127
|
-
not1mm/plugins/cq_160_cw.py,sha256=
|
128
|
-
not1mm/plugins/cq_160_ssb.py,sha256=
|
129
|
-
not1mm/plugins/cq_wpx_cw.py,sha256=
|
130
|
-
not1mm/plugins/cq_wpx_ssb.py,sha256=
|
131
|
-
not1mm/plugins/cq_ww_cw.py,sha256=
|
132
|
-
not1mm/plugins/cq_ww_ssb.py,sha256=
|
133
|
-
not1mm/plugins/cwt.py,sha256=
|
134
|
-
not1mm/plugins/general_logging.py,sha256=
|
135
|
-
not1mm/plugins/iaru_hf.py,sha256
|
136
|
-
not1mm/plugins/
|
137
|
-
not1mm/plugins/
|
138
|
-
not1mm/plugins/
|
139
|
-
not1mm/plugins/
|
124
|
+
not1mm/plugins/arrl_ss_cw.py,sha256=pBBoUozHfgcAR6Xy-FBYYZrDSSdK8YVclNZIiCn23ho,13069
|
125
|
+
not1mm/plugins/arrl_ss_phone.py,sha256=BNcE4zfhK1LphKbI2tT_NJye8tIA_rb3QtxINERSIpE,13057
|
126
|
+
not1mm/plugins/arrl_vhf_jan.py,sha256=tC5FyMQNqKNVI8V3r1p71wJvvUNQ0XPXVvxEj4cMyio,12561
|
127
|
+
not1mm/plugins/arrl_vhf_jun.py,sha256=F4eHxuxH-8GM7kuTWvYXeKtx-M0KC_U3T_4Fm3u4h5s,11580
|
128
|
+
not1mm/plugins/arrl_vhf_sep.py,sha256=AEKCxDk3UhUWDGT1rNmJ2dk94ihXQ8jexkemkx9N-xQ,11580
|
129
|
+
not1mm/plugins/canada_day.py,sha256=dZWmwbdjO4CUSu_cK6FAZxII0DhaEMji_mmrpMO5wjo,11987
|
130
|
+
not1mm/plugins/cq_160_cw.py,sha256=e9ajqIzDRteSI7zQaFpXUJ_6SNvBlIuNq213wadReUs,14139
|
131
|
+
not1mm/plugins/cq_160_ssb.py,sha256=7MuMC_AVlj9ds_ohvEU4Tts-z9eTvnsSIENSMFKQCBc,14182
|
132
|
+
not1mm/plugins/cq_wpx_cw.py,sha256=GW_nr3ISErqMDgwA5pybxgpnSANaZaAwJOp_KTQPRP4,13845
|
133
|
+
not1mm/plugins/cq_wpx_ssb.py,sha256=Ptx4GDXgnM9c38fB9LN2KSPVfnSVB2-OFySsHqxHHyw,12567
|
134
|
+
not1mm/plugins/cq_ww_cw.py,sha256=ltXFnSXabCOuW70s-WOydgghZTNpztX8TKLpVIV50B4,11194
|
135
|
+
not1mm/plugins/cq_ww_ssb.py,sha256=kt-EQofmCbynX1iXFm9ehffi_TMW25ke8Qi9MiR69ZQ,11199
|
136
|
+
not1mm/plugins/cwt.py,sha256=4xdXN6ZJM5k-6gn0hJzNheWfFlGiqquC2p0ZMEe516M,12818
|
137
|
+
not1mm/plugins/general_logging.py,sha256=t02xtJs601qRICGdrvLs3G9y4GCG9H4AgQNkgA18CYs,3467
|
138
|
+
not1mm/plugins/iaru_hf.py,sha256=-ROUo2gBkw3xB89t8bd-4f7_1hROw2VXZXVHLFdB62s,11541
|
139
|
+
not1mm/plugins/icwc_mst.py,sha256=v8L5NX2QmTM7x8Po1mb4yfN-dGVIuqky5MIT-OjfaVY,11831
|
140
|
+
not1mm/plugins/jidx_cw.py,sha256=-cHhOFDy6lojD8cPaE6bYxrHmQ-x27QL3rh91YGZfbU,12142
|
141
|
+
not1mm/plugins/jidx_ph.py,sha256=xKIYbs27uploZ5srUvsVHHskcV6-fLkGEsSJ0i-rky4,11172
|
142
|
+
not1mm/plugins/naqp_cw.py,sha256=c0MuKqfkIxiYFvv2z7vqrBz3m9FSnSYkPK3f-DdkTIA,12632
|
143
|
+
not1mm/plugins/naqp_ssb.py,sha256=VLWVrSzI0UP1AhSXYn61eZ7or1rz6a_pS_xCKfgS4Jw,11595
|
140
144
|
not1mm/plugins/phone_weekly_test.py,sha256=gCX0ESUoiQzDp9puwibt9-dRembNsiuEeBdawCVvjHA,12316
|
141
|
-
not1mm/plugins/stew_perry_topband.py,sha256=
|
145
|
+
not1mm/plugins/stew_perry_topband.py,sha256=CKBQbYl4ETxhXJd2dma4fg_C5pag_s7Nf61SCztZtqE,10668
|
142
146
|
not1mm/plugins/winter_field_day.py,sha256=4rcfRtobwjHO6BNL3WOTHzBmyyeuX79BNGBG8PfjrI8,10238
|
143
|
-
not1mm-24.
|
144
|
-
not1mm-24.
|
145
|
-
not1mm-24.
|
146
|
-
not1mm-24.
|
147
|
-
not1mm-24.
|
148
|
-
not1mm-24.
|
147
|
+
not1mm-24.5.9.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
148
|
+
not1mm-24.5.9.dist-info/METADATA,sha256=s45Rsw1RwqoLEBHOCj4iTyrhTPz3xeTTBVeIYCyjEXY,27208
|
149
|
+
not1mm-24.5.9.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
150
|
+
not1mm-24.5.9.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
151
|
+
not1mm-24.5.9.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
152
|
+
not1mm-24.5.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|