not1mm 25.3.25.1__py3-none-any.whl → 25.3.26__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.
Files changed (58) hide show
  1. not1mm/__main__.py +2 -0
  2. not1mm/lib/version.py +1 -1
  3. not1mm/plugins/10_10_fall_cw.py +4 -0
  4. not1mm/plugins/10_10_spring_cw.py +4 -0
  5. not1mm/plugins/10_10_summer_phone.py +4 -0
  6. not1mm/plugins/10_10_winter_phone.py +4 -0
  7. not1mm/plugins/arrl_10m.py +4 -0
  8. not1mm/plugins/arrl_160m.py +4 -0
  9. not1mm/plugins/arrl_dx_cw.py +4 -0
  10. not1mm/plugins/arrl_dx_ssb.py +4 -0
  11. not1mm/plugins/arrl_field_day.py +4 -0
  12. not1mm/plugins/arrl_rtty_ru.py +4 -0
  13. not1mm/plugins/arrl_ss_cw.py +4 -0
  14. not1mm/plugins/arrl_ss_phone.py +4 -0
  15. not1mm/plugins/arrl_vhf_jan.py +3 -0
  16. not1mm/plugins/arrl_vhf_jun.py +3 -0
  17. not1mm/plugins/arrl_vhf_sep.py +3 -0
  18. not1mm/plugins/canada_day.py +4 -0
  19. not1mm/plugins/cq_160_cw.py +4 -0
  20. not1mm/plugins/cq_160_ssb.py +4 -0
  21. not1mm/plugins/cq_wpx_cw.py +4 -0
  22. not1mm/plugins/cq_wpx_rtty.py +4 -0
  23. not1mm/plugins/cq_wpx_ssb.py +4 -0
  24. not1mm/plugins/cq_ww_cw.py +4 -8
  25. not1mm/plugins/cq_ww_rtty.py +3 -0
  26. not1mm/plugins/cq_ww_ssb.py +4 -0
  27. not1mm/plugins/cwt.py +4 -0
  28. not1mm/plugins/darc_vhf.py +4 -0
  29. not1mm/plugins/darc_xmas.py +4 -0
  30. not1mm/plugins/ea_majistad_cw.py +3 -0
  31. not1mm/plugins/ea_majistad_ssb.py +3 -0
  32. not1mm/plugins/ea_rtty.py +3 -0
  33. not1mm/plugins/helvetia.py +4 -0
  34. not1mm/plugins/iaru_fieldday_r1_cw.py +3 -0
  35. not1mm/plugins/iaru_fieldday_r1_ssb.py +3 -0
  36. not1mm/plugins/iaru_hf.py +3 -0
  37. not1mm/plugins/icwc_mst.py +4 -0
  38. not1mm/plugins/jidx_cw.py +4 -0
  39. not1mm/plugins/jidx_ph.py +4 -0
  40. not1mm/plugins/k1usn_sst.py +4 -0
  41. not1mm/plugins/labre_rs_digi.py +3 -0
  42. not1mm/plugins/lz-dx.py +3 -0
  43. not1mm/plugins/naqp_cw.py +4 -0
  44. not1mm/plugins/naqp_rtty.py +2 -0
  45. not1mm/plugins/naqp_ssb.py +4 -0
  46. not1mm/plugins/phone_weekly_test.py +4 -0
  47. not1mm/plugins/raem.py +2 -0
  48. not1mm/plugins/ref_cw.py +3 -0
  49. not1mm/plugins/ref_ssb.py +2 -0
  50. not1mm/plugins/stew_perry_topband.py +2 -0
  51. not1mm/plugins/weekly_rtty.py +2 -0
  52. not1mm/plugins/winter_field_day.py +2 -0
  53. {not1mm-25.3.25.1.dist-info → not1mm-25.3.26.dist-info}/METADATA +2 -1
  54. {not1mm-25.3.25.1.dist-info → not1mm-25.3.26.dist-info}/RECORD +58 -58
  55. {not1mm-25.3.25.1.dist-info → not1mm-25.3.26.dist-info}/WHEEL +0 -0
  56. {not1mm-25.3.25.1.dist-info → not1mm-25.3.26.dist-info}/entry_points.txt +0 -0
  57. {not1mm-25.3.25.1.dist-info → not1mm-25.3.26.dist-info}/licenses/LICENSE +0 -0
  58. {not1mm-25.3.25.1.dist-info → not1mm-25.3.26.dist-info}/top_level.txt +0 -0
not1mm/__main__.py CHANGED
@@ -140,6 +140,7 @@ class MainWindow(QtWidgets.QMainWindow):
140
140
  contact = {}
141
141
  contest = None
142
142
  contest_settings = {}
143
+ contact_is_dupe = False
143
144
  pref = None
144
145
  station = {}
145
146
  current_op = ""
@@ -3672,6 +3673,7 @@ class MainWindow(QtWidgets.QMainWindow):
3672
3673
  result = {"isdupe": False}
3673
3674
  debugline = f"{result}"
3674
3675
  logger.debug("%s", debugline)
3676
+ self.contact_is_dupe = result.get("isdupe", False)
3675
3677
  return result.get("isdupe", False)
3676
3678
 
3677
3679
  def setmode(self, mode: str) -> None:
not1mm/lib/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "25.3.25.1"
3
+ __version__ = "25.3.26"
@@ -115,6 +115,10 @@ def prefill(self):
115
115
 
116
116
  def points(self):
117
117
  """Calc point"""
118
+
119
+ if self.contact_is_dupe > 0:
120
+ return 0
121
+
118
122
  exchange = self.other_2.text().upper().split()
119
123
  if len(exchange) == 3:
120
124
  try:
@@ -114,6 +114,10 @@ def prefill(self):
114
114
 
115
115
  def points(self):
116
116
  """Calc point"""
117
+
118
+ if self.contact_is_dupe > 0:
119
+ return 0
120
+
117
121
  exchange = self.other_2.text().upper().split()
118
122
  if len(exchange) == 3:
119
123
  try:
@@ -118,6 +118,10 @@ def prefill(self):
118
118
 
119
119
  def points(self):
120
120
  """Calc point"""
121
+
122
+ if self.contact_is_dupe > 0:
123
+ return 0
124
+
121
125
  exchange = self.other_2.text().upper().split()
122
126
  if len(exchange) == 3:
123
127
  try:
@@ -116,6 +116,10 @@ def prefill(self):
116
116
 
117
117
  def points(self):
118
118
  """Calc point"""
119
+
120
+ if self.contact_is_dupe > 0:
121
+ return 0
122
+
119
123
  exchange = self.other_2.text().upper().split()
120
124
  if len(exchange) == 3:
121
125
  try:
@@ -166,6 +166,10 @@ def prefill(self):
166
166
 
167
167
  def points(self):
168
168
  """Calc point"""
169
+
170
+ if self.contact_is_dupe > 0:
171
+ return 0
172
+
169
173
  _mode = self.contact.get("Mode", "")
170
174
  if _mode in "SSB, USB, LSB, FM, AM":
171
175
  return 2
@@ -102,6 +102,10 @@ def prefill(self):
102
102
 
103
103
  def points(self):
104
104
  """Calc point"""
105
+
106
+ if self.contact_is_dupe > 0:
107
+ return 0
108
+
105
109
  # Each contact between W/VE stations counts for two (2) QSO points. Each contact with a DX station counts five (5) QSO points
106
110
  call = self.contact.get("Call", "")
107
111
  dupe_check = self.database.check_dupe(call)
@@ -122,6 +122,10 @@ def prefill(self):
122
122
 
123
123
  def points(self):
124
124
  """Calc point"""
125
+
126
+ if self.contact_is_dupe > 0:
127
+ return 0
128
+
125
129
  result = self.cty_lookup(self.station.get("Call", ""))
126
130
  if result:
127
131
  for item in result.items():
@@ -122,6 +122,10 @@ def prefill(self):
122
122
 
123
123
  def points(self):
124
124
  """Calc point"""
125
+
126
+ if self.contact_is_dupe > 0:
127
+ return 0
128
+
125
129
  result = self.cty_lookup(self.station.get("Call", ""))
126
130
  if result:
127
131
  for item in result.items():
@@ -104,6 +104,10 @@ def prefill(self):
104
104
 
105
105
  def points(self):
106
106
  """Calc point"""
107
+
108
+ if self.contact_is_dupe > 0:
109
+ return 0
110
+
107
111
  _mode = self.contact.get("Mode", "")
108
112
  if _mode in "SSB, USB, LSB, FM, AM":
109
113
  return 1
@@ -152,6 +152,10 @@ def prefill(self):
152
152
 
153
153
  def points(self):
154
154
  """Calc point"""
155
+
156
+ if self.contact_is_dupe > 0:
157
+ return 0
158
+
155
159
  return 1
156
160
 
157
161
 
@@ -140,6 +140,10 @@ def check_call_history(self):
140
140
 
141
141
  def points(self):
142
142
  """Calc point"""
143
+
144
+ if self.contact_is_dupe > 0:
145
+ return 0
146
+
143
147
  return 2
144
148
 
145
149
 
@@ -121,6 +121,10 @@ def prefill(self):
121
121
 
122
122
  def points(self):
123
123
  """Calc point"""
124
+
125
+ if self.contact_is_dupe > 0:
126
+ return 0
127
+
124
128
  return 2
125
129
 
126
130
 
@@ -162,6 +162,9 @@ def points(self):
162
162
  # 4 points per 902 or 1296 MHz QSO
163
163
  # 8 points per 2.3 GHz or higher QSO
164
164
 
165
+ if self.contact_is_dupe > 0:
166
+ return 0
167
+
165
168
  _band = self.contact.get("Band", "")
166
169
  if _band in ["50", "144"]:
167
170
  return 1
@@ -130,6 +130,9 @@ def points(self):
130
130
  # 4 points per 902 or 1296 MHz QSO
131
131
  # 8 points per 2.3 GHz or higher QSO
132
132
 
133
+ if self.contact_is_dupe > 0:
134
+ return 0
135
+
133
136
  _band = self.contact.get("Band", "")
134
137
  if _band in ["50", "144"]:
135
138
  return 1
@@ -130,6 +130,9 @@ def points(self):
130
130
  # 3 points per 902 or 1296 MHz QSO
131
131
  # 4 points per 2.3 GHz or higher QSO
132
132
 
133
+ if self.contact_is_dupe > 0:
134
+ return 0
135
+
133
136
  _band = self.contact.get("Band", "")
134
137
  if _band in ["50", "144"]:
135
138
  return 1
@@ -150,6 +150,10 @@ def prefill(self):
150
150
 
151
151
  def points(self):
152
152
  """Calc point"""
153
+
154
+ if self.contact_is_dupe > 0:
155
+ return 0
156
+
153
157
  call = self.contact.get("Call", "")
154
158
  if call in RAC_OFFICIAL_STATIONS:
155
159
  return 20
@@ -134,6 +134,10 @@ def prefill(self):
134
134
  def points(self):
135
135
  """Calc point"""
136
136
  # Maritime Mobile
137
+
138
+ if self.contact_is_dupe > 0:
139
+ return 0
140
+
137
141
  if "/MM" in self.contact.get("Call", ""):
138
142
  return 5
139
143
 
@@ -134,6 +134,10 @@ def prefill(self):
134
134
  def points(self):
135
135
  """Calc point"""
136
136
  # Maritime Mobile
137
+
138
+ if self.contact_is_dupe > 0:
139
+ return 0
140
+
137
141
  if "/MM" in self.contact.get("Call", ""):
138
142
  return 5
139
143
 
@@ -154,6 +154,10 @@ def prefill(self):
154
154
 
155
155
  def points(self):
156
156
  """Calc point"""
157
+
158
+ if self.contact_is_dupe > 0:
159
+ return 0
160
+
157
161
  result = self.cty_lookup(self.station.get("Call", ""))
158
162
  if result:
159
163
  for item in result.items():
@@ -160,6 +160,10 @@ def points(self):
160
160
  - Different-country contacts within any continent (not just North America) get 2 or 4 points
161
161
  - Same-country contacts get 2 points on the low bands
162
162
  """
163
+
164
+ if self.contact_is_dupe > 0:
165
+ return 0
166
+
163
167
  result = self.cty_lookup(self.station.get("Call", ""))
164
168
  if result:
165
169
  for item in result.items():
@@ -117,6 +117,10 @@ def prefill(self):
117
117
 
118
118
  def points(self):
119
119
  """Calc point"""
120
+
121
+ if self.contact_is_dupe > 0:
122
+ return 0
123
+
120
124
  result = self.cty_lookup(self.station.get("Call", ""))
121
125
  if result:
122
126
  for item in result.items():
@@ -140,14 +140,10 @@ def prefill(self):
140
140
 
141
141
  def points(self):
142
142
  """Calc point"""
143
- # @awandahl Retrieve callsign and band information
144
- call = self.contact.get("Call", "")
145
- band = float(get_logged_band(str(int(self.contact.get("Freq", 0.0) * 1000))))
146
-
147
- # @awandahl Check if the contact is a duplicate on the current band
148
- dupe_check = self.database.check_dupe_on_band(call, band)
149
- if dupe_check.get("isdupe", 0) > 0:
150
- return 0 # @awandahl Return zero points for duplicates
143
+
144
+ if self.contact_is_dupe > 0:
145
+ return 0
146
+
151
147
  result = self.cty_lookup(self.station.get("Call", ""))
152
148
  if result:
153
149
  for item in result.items():
@@ -150,6 +150,9 @@ def points(self):
150
150
  # 2 points per QSO with same continent
151
151
  # 3 points per QSO with different continent
152
152
 
153
+ if self.contact_is_dupe > 0:
154
+ return 0
155
+
153
156
  result = self.cty_lookup(self.station.get("Call", ""))
154
157
  if result:
155
158
  for item in result.items():
@@ -139,6 +139,10 @@ def prefill(self):
139
139
 
140
140
  def points(self):
141
141
  """Calc point"""
142
+
143
+ if self.contact_is_dupe > 0:
144
+ return 0
145
+
142
146
  result = self.cty_lookup(self.station.get("Call", ""))
143
147
  if result:
144
148
  for item in result.items():
not1mm/plugins/cwt.py CHANGED
@@ -148,6 +148,10 @@ def prefill(self):
148
148
 
149
149
  def points(self):
150
150
  """Calc point"""
151
+
152
+ if self.contact_is_dupe > 0:
153
+ return 0
154
+
151
155
  return 1
152
156
 
153
157
 
@@ -159,6 +159,10 @@ def prefill(self):
159
159
 
160
160
  def points(self):
161
161
  """Calc point"""
162
+
163
+ if self.contact_is_dupe > 0:
164
+ return 0
165
+
162
166
  _points = 1
163
167
  _kilometers = 0
164
168
  _their_grid = self.contact["Exchange1"].upper()
@@ -173,6 +173,10 @@ def prefill(self):
173
173
 
174
174
  def points(self):
175
175
  """Calc point"""
176
+
177
+ if self.contact_is_dupe > 0:
178
+ return 0
179
+
176
180
  return 1
177
181
 
178
182
 
@@ -176,6 +176,9 @@ def points(self) -> int:
176
176
  # non-EA: 3 points per QSO with EA
177
177
  # non-EA: 1 point per QSO with non-EA
178
178
 
179
+ if self.contact_is_dupe > 0:
180
+ return 0
181
+
179
182
  ea_prefixes = ["EA", "EA1", "EA2", "EA3", "EA4", "EA5", "EA6", "EA7", "EA8", "EA9"]
180
183
 
181
184
  me = None
@@ -176,6 +176,9 @@ def points(self) -> int:
176
176
  # non-EA: 3 points per QSO with EA
177
177
  # non-EA: 1 point per QSO with non-EA
178
178
 
179
+ if self.contact_is_dupe > 0:
180
+ return 0
181
+
179
182
  ea_prefixes = ["EA", "EA1", "EA2", "EA3", "EA4", "EA5", "EA6", "EA7", "EA8", "EA9"]
180
183
 
181
184
  me = None
not1mm/plugins/ea_rtty.py CHANGED
@@ -180,6 +180,9 @@ def points(self) -> int:
180
180
  # non-EA: 3 points per QSO with EA
181
181
  # non-EA: 1 point per QSO with non-EA
182
182
 
183
+ if self.contact_is_dupe > 0:
184
+ return 0
185
+
183
186
  ea_prefixes = ["EA", "EA1", "EA2", "EA3", "EA4", "EA5", "EA6", "EA7", "EA8", "EA9"]
184
187
 
185
188
  me = None
@@ -216,6 +216,10 @@ def points(self):
216
216
  self.contact["CountryPrefix"]
217
217
  self.contact["Continent"]
218
218
  """
219
+
220
+ if self.contact_is_dupe > 0:
221
+ return 0
222
+
219
223
  result = self.cty_lookup(self.station.get("Call", ""))
220
224
  if result:
221
225
  for item in result.items():
@@ -154,6 +154,9 @@ def points(self):
154
154
  # portable stations outside Europe: 6 points
155
155
  """
156
156
 
157
+ if self.contact_is_dupe > 0:
158
+ return 0
159
+
157
160
  their_portable = False
158
161
  im_portable = False
159
162
  their_continent = self.contact.get("Continent", "")
@@ -154,6 +154,9 @@ def points(self):
154
154
  # portable stations outside Europe: 6 points
155
155
  """
156
156
 
157
+ if self.contact_is_dupe > 0:
158
+ return 0
159
+
157
160
  their_portable = False
158
161
  im_portable = False
159
162
  their_continent = self.contact.get("Continent", "")
not1mm/plugins/iaru_hf.py CHANGED
@@ -126,6 +126,9 @@ def points(self):
126
126
  5 points per QSO with different zone on different continent
127
127
  """
128
128
 
129
+ if self.contact_is_dupe > 0:
130
+ return 0
131
+
129
132
  result = self.cty_lookup(self.station.get("Call", ""))
130
133
  if result:
131
134
  for item in result.items():
@@ -134,6 +134,10 @@ def prefill(self):
134
134
 
135
135
  def points(self):
136
136
  """Calc point"""
137
+
138
+ if self.contact_is_dupe > 0:
139
+ return 0
140
+
137
141
  return 1
138
142
 
139
143
 
not1mm/plugins/jidx_cw.py CHANGED
@@ -152,6 +152,10 @@ def prefill(self):
152
152
 
153
153
  def points(self):
154
154
  """Calc point"""
155
+
156
+ if self.contact_is_dupe > 0:
157
+ return 0
158
+
155
159
  pts = {
156
160
  1: 4,
157
161
  3: 2,
not1mm/plugins/jidx_ph.py CHANGED
@@ -121,6 +121,10 @@ def prefill(self):
121
121
 
122
122
  def points(self):
123
123
  """Calc point"""
124
+
125
+ if self.contact_is_dupe > 0:
126
+ return 0
127
+
124
128
  pts = {
125
129
  1: 4,
126
130
  3: 2,
@@ -125,6 +125,10 @@ def prefill(self):
125
125
 
126
126
  def points(self):
127
127
  """Calc point"""
128
+
129
+ if self.contact_is_dupe > 0:
130
+ return 0
131
+
128
132
  return 1
129
133
 
130
134
 
@@ -150,6 +150,9 @@ def points(self):
150
150
  # QSO Points: 1 point per QSO
151
151
  # 1 additional point per QSO with PY3,PU3,ZZ3,PP3,etc
152
152
 
153
+ if self.contact_is_dupe > 0:
154
+ return 0
155
+
153
156
  if len(self.contact.get("Call", "")) > 2:
154
157
  if self.contact.get("Call", "")[:3] in ["PY3", "PU3", "ZZ3", "PP3", "PX3"]:
155
158
  return 2
not1mm/plugins/lz-dx.py CHANGED
@@ -448,6 +448,9 @@ def points(self):
448
448
  self.contact["CountryPrefix"]
449
449
  self.contact["Continent"]
450
450
  """
451
+ if self.contact_is_dupe > 0:
452
+ return 0
453
+
451
454
  result = self.cty_lookup(self.station.get("Call", ""))
452
455
  if result:
453
456
  for item in result.items():
not1mm/plugins/naqp_cw.py CHANGED
@@ -139,6 +139,10 @@ def prefill(self):
139
139
 
140
140
  def points(self):
141
141
  """Calc point"""
142
+
143
+ if self.contact_is_dupe > 0:
144
+ return 0
145
+
142
146
  mycontinent = ""
143
147
  hiscontinent = ""
144
148
  result = self.cty_lookup(self.station.get("Call", ""))
@@ -142,6 +142,8 @@ def prefill(self):
142
142
 
143
143
  def points(self):
144
144
  """Calc point"""
145
+ if self.contact_is_dupe > 0:
146
+ return 0
145
147
  mycontinent = ""
146
148
  hiscontinent = ""
147
149
  result = self.cty_lookup(self.station.get("Call", ""))
@@ -109,6 +109,10 @@ def prefill(self):
109
109
 
110
110
  def points(self):
111
111
  """Calc point"""
112
+
113
+ if self.contact_is_dupe > 0:
114
+ return 0
115
+
112
116
  mycontinent = ""
113
117
  hiscontinent = ""
114
118
  result = self.cty_lookup(self.station.get("Call", ""))
@@ -129,6 +129,10 @@ def prefill(self):
129
129
 
130
130
  def points(self):
131
131
  """Calc point"""
132
+
133
+ if self.contact_is_dupe > 0:
134
+ return 0
135
+
132
136
  mycontinent = ""
133
137
  hiscontinent = ""
134
138
  result = self.cty_lookup(self.station.get("Call", ""))
not1mm/plugins/raem.py CHANGED
@@ -214,6 +214,8 @@ def points(self):
214
214
  # QSO with Polar station: 100 points additional
215
215
  # QSO with RAEM Memorial Station: 300 points additional
216
216
 
217
+ if self.contact_is_dupe > 0:
218
+ return 0
217
219
  points = 50
218
220
  morepoints, ispolar = latlondif(self, self.other_2.text())
219
221
  points += morepoints
not1mm/plugins/ref_cw.py CHANGED
@@ -204,6 +204,9 @@ def points(self):
204
204
  self.contact["Continent"]
205
205
  """
206
206
 
207
+ if self.contact_is_dupe > 0:
208
+ return 0
209
+
207
210
  # Just incase the cty lookup fails
208
211
  my_country = None
209
212
  my_continent = None
not1mm/plugins/ref_ssb.py CHANGED
@@ -219,6 +219,8 @@ def points(self):
219
219
  self.contact["Continent"]
220
220
  """
221
221
 
222
+ if self.contact_is_dupe > 0:
223
+ return 0
222
224
  # Just incase the cty lookup fails
223
225
  my_country = None
224
226
  my_continent = None
@@ -121,6 +121,8 @@ def prefill(self):
121
121
 
122
122
  def points(self):
123
123
  """Calc point"""
124
+ if self.contact_is_dupe > 0:
125
+ return 0
124
126
  _points = 1
125
127
  _kilometers = 0
126
128
  _their_grid = self.other_1.text().upper()
@@ -133,6 +133,8 @@ def prefill(self):
133
133
 
134
134
  def points(self):
135
135
  """Calc point"""
136
+ if self.contact_is_dupe > 0:
137
+ return 0
136
138
  return 1
137
139
 
138
140
 
@@ -112,6 +112,8 @@ def prefill(self):
112
112
 
113
113
  def points(self):
114
114
  """Calc point"""
115
+ if self.contact_is_dupe > 0:
116
+ return 0
115
117
  _mode = self.contact.get("Mode", "")
116
118
  if _mode in "SSB, USB, LSB, FM, AM":
117
119
  return 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: not1mm
3
- Version: 25.3.25.1
3
+ Version: 25.3.26
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  License: GPL-3.0-or-later
@@ -247,6 +247,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
247
247
 
248
248
  ## Recent Changes
249
249
 
250
+ - [25-3-26] Record 0 points on dupes for each contest, excluding RandomGram.
250
251
  - [25-3-25-1] Improved process messaging.
251
252
  - [25-3-25] Use safer dict key access in the stats window.
252
253
  - [25-3-24] Add CW, PH, DI counts to the statistics window.
@@ -1,5 +1,5 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=9ZLWDHNb5qJuxMEg5GKeD20UXuRHlrR-rIeN2u21Csw,151697
2
+ not1mm/__main__.py,sha256=kpJ-oyLzUEyx4xEQwO7rFCnVybOnY7RJYXqjym79YBA,151784
3
3
  not1mm/bandmap.py,sha256=mdSK6oj8plEmr6WVYkzPTCfsHWKl9lea3R14cmRsAI4,31531
4
4
  not1mm/checkwindow.py,sha256=VFAcKYTcoWhmIf91chwY6tyao9FQMWPiUkgDDkkWaog,9670
5
5
  not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
@@ -118,64 +118,64 @@ not1mm/lib/plugin_common.py,sha256=D1OBjyLmX7zuSPqgTCmHwXzAKA12J_zTQItvyIem-4Y,1
118
118
  not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
119
119
  not1mm/lib/settings.py,sha256=mXffn8Xaj5KATPQinNBR0V5DbHWQPsRfh24_axWGYuk,15254
120
120
  not1mm/lib/super_check_partial.py,sha256=hwT2NRwobu0PLDyw6ltmbmcAtGBD02CKGFbgGWjXMqA,2334
121
- not1mm/lib/version.py,sha256=SKj4r7lEIjLeD8QQRRVxsZuo0H-n3mXD10xKg4YlIFo,50
121
+ not1mm/lib/version.py,sha256=VtZWMGr7eyJr4aR2JSVUkEKeiMYRhbtGhdYbGR4TUmc,48
122
122
  not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
123
- not1mm/plugins/10_10_fall_cw.py,sha256=P63dEhRmvsEV7ixHYg-qhs5zzj0_DJXjjPHQBQr8Wwg,14731
124
- not1mm/plugins/10_10_spring_cw.py,sha256=S_z-KbExH4_kfRbKo07zM-iVlJUKxFwzbm6LRnXYyNU,14734
125
- not1mm/plugins/10_10_summer_phone.py,sha256=PEEo_H_7JjlGAidGN0aC9kJpx123MPmAul8JPq0PUcU,14844
126
- not1mm/plugins/10_10_winter_phone.py,sha256=qr-5hc_dT1mE8Kc5Kzc_qNkJVl9hA5h1zTe9B1ueAS4,14743
123
+ not1mm/plugins/10_10_fall_cw.py,sha256=oJh3JKqjOpnWElSlZpiQ631UnaOd8qra5s9bl_QoInk,14783
124
+ not1mm/plugins/10_10_spring_cw.py,sha256=p7dSDtbFK0e6Xouw2V6swYn3VFVgHKyx4IfRWyBjMZY,14786
125
+ not1mm/plugins/10_10_summer_phone.py,sha256=NWWT5YTZN6CkPl5Jy4lCuTqHd1R_JodhsOLqCoGOzdU,14896
126
+ not1mm/plugins/10_10_winter_phone.py,sha256=4xoWLbnE2di5XnUUlhsvTR__E0Z4kbhu-rcUitPMR0U,14795
127
127
  not1mm/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- not1mm/plugins/arrl_10m.py,sha256=Rl5AvpbKCXYmk9POgzIQtRm4vrP_LK9NAAlxQB6ZHyo,18337
129
- not1mm/plugins/arrl_160m.py,sha256=U3wLqljfg-60Xq9QZ5QI0_1ChmACNahhVBOX3pBkDUM,20248
130
- not1mm/plugins/arrl_dx_cw.py,sha256=sAbgRyUP2RLuq4p4S51wr9sJb_s1BI_TsY7JJkiq-EY,18838
131
- not1mm/plugins/arrl_dx_ssb.py,sha256=sO0Xc6qJURA2NkJmapu3Ii0sVs0ProGjo1P5RHeeQpA,18886
132
- not1mm/plugins/arrl_field_day.py,sha256=6wCx80bXagLeKw5bgqlb6NN3UzJoFb7TWOIjrpFbEX8,17489
133
- not1mm/plugins/arrl_rtty_ru.py,sha256=kPK33M0N-J8TwjLeX7lm8ckUIt5HIspPwq92LUs3W4Q,20905
134
- not1mm/plugins/arrl_ss_cw.py,sha256=CbvvUxYYrdzftYqTjUNzWJQFg72WpxsBIrLSts85U8k,17470
135
- not1mm/plugins/arrl_ss_phone.py,sha256=8gQkpeEOY0sqEZnJG6yRFVKMv6ilxfWc6Yrz3gmz4tU,16806
136
- not1mm/plugins/arrl_vhf_jan.py,sha256=VV_rHy_Uh0A8gMyp3P_1FmeCJZoChwjSytvSxnukw-M,20279
137
- not1mm/plugins/arrl_vhf_jun.py,sha256=xjnvqV_KleQdJqioINW0e6oN9PJUYpsxSfR89Kg95MQ,19371
138
- not1mm/plugins/arrl_vhf_sep.py,sha256=Trnb_jhewskp-A1VoRFabxhL9L0oaZn4yrNf_BDuBXs,19404
139
- not1mm/plugins/canada_day.py,sha256=vesz3KfCHFxcwO1szbcbtWs0vdgN1IF_koRfTaogioc,15718
140
- not1mm/plugins/cq_160_cw.py,sha256=4HK9FQqnHh1kZCOqMqvIdCteF7gwof2sdnQUTQRtSRw,18659
141
- not1mm/plugins/cq_160_ssb.py,sha256=2NU0UQQAH-rQn-VuhbhM79mDCATCAxbu6jzv5Lpsiyo,18702
142
- not1mm/plugins/cq_wpx_cw.py,sha256=uiYjZeD-yOjaTZE7S4CtrBIUFhh5Tj-PVm9uO3_1wO0,18197
143
- not1mm/plugins/cq_wpx_rtty.py,sha256=r0KBaePLV180udt-Y4TGOQea5w8P3YkeTmPk4Ig5xlo,21016
144
- not1mm/plugins/cq_wpx_ssb.py,sha256=9QQq3r2bZsMfxzVn0hy11W0WvNMgUY0dkVRAhpN5yPo,16764
145
- not1mm/plugins/cq_ww_cw.py,sha256=GCsKohb1SQf9RbsXVUa_ojwkPIzm_TmCJHu2SAjaeKg,18405
146
- not1mm/plugins/cq_ww_rtty.py,sha256=6McNrXDziFpxgUP244jFXr3FirpVAKHPK8PU_szXvvE,22498
147
- not1mm/plugins/cq_ww_ssb.py,sha256=gDAizDcr9cIgXJQ6S63UDtG64jvjIZQfvWw_MYfkNKU,18003
148
- not1mm/plugins/cwt.py,sha256=mN1wGGao9lcXN8ztqED564tEbf1APl8_jQDoDFaThkw,17542
149
- not1mm/plugins/darc_vhf.py,sha256=WENCNr_v5_OrjluXDTYsIY9rPnhlx2qi-aD-96sjpZI,27367
150
- not1mm/plugins/darc_xmas.py,sha256=KmpFXWS1jKegPCvk8XZWlzUCshhtDww2AgTGtauricQ,18919
151
- not1mm/plugins/ea_majistad_cw.py,sha256=WUPM9sY2mOKSVFfOCPxtNAvEAwbjDIP8S1X1KgPJn0E,23301
152
- not1mm/plugins/ea_majistad_ssb.py,sha256=FOd26kb_QjGCk_CIkQiG0FDw5fZQfAqE2b2xooPNylc,22895
153
- not1mm/plugins/ea_rtty.py,sha256=RBaavcn2CRcH3NuSx5YAPsChYY2BCKpES-8YT9FtS0E,23178
128
+ not1mm/plugins/arrl_10m.py,sha256=9p7EX2vAXVilF8y6AYHG4fXczU6g9QuMA2Pvj64pSXE,18389
129
+ not1mm/plugins/arrl_160m.py,sha256=rdWDhmPN0h9ADTlYaRLk-5j8KVye0rUEs1tyD-kfHV0,20300
130
+ not1mm/plugins/arrl_dx_cw.py,sha256=Bx6_PBmTHKf4l52XwLFVeR2y6F134kXbGTfEXC_1agk,18890
131
+ not1mm/plugins/arrl_dx_ssb.py,sha256=Mr002qRF1jUD_U5kVw5U_cx2MixvzyYEmRNhgPqsMjc,18938
132
+ not1mm/plugins/arrl_field_day.py,sha256=CzUAzcOus4MwJ0Ha08OvQwCfjcfRRNIEx1WCL9xBSR4,17541
133
+ not1mm/plugins/arrl_rtty_ru.py,sha256=bxOvrcb6R_Qf3H2MnkfpQkAfJbCyGjKwbZXt1PHCuAM,20957
134
+ not1mm/plugins/arrl_ss_cw.py,sha256=WnRiVLqiC_sX4QqDyyMOy3f07IJCPgxkFf9PstKkhK4,17522
135
+ not1mm/plugins/arrl_ss_phone.py,sha256=PzybC--tSB7_oNLbbN9xYkMnftH-z6qgcGZUp3-JGLU,16858
136
+ not1mm/plugins/arrl_vhf_jan.py,sha256=yGwzcwRwyHM6FF8d61WayjxvIEmJmOGqeziYUP9s3do,20330
137
+ not1mm/plugins/arrl_vhf_jun.py,sha256=zieBad2LkyjmrtoB8NgDL5993zXBvuFu0Y-U1-Fy13k,19422
138
+ not1mm/plugins/arrl_vhf_sep.py,sha256=4rFf8DXRKQqtyXQtG6ZpqZS1v3bBVJONG_e4EUmcm_U,19455
139
+ not1mm/plugins/canada_day.py,sha256=89aGXm4S9PjKL9FYm3z7BMFRz--MugQQilwQnzLJvv0,15770
140
+ not1mm/plugins/cq_160_cw.py,sha256=bmHtxVcIWsqmgqpMCMso7DCBERtAr9fIKIjgymSKtms,18711
141
+ not1mm/plugins/cq_160_ssb.py,sha256=9KKDmmapETEebm1azfEzUWk1NyW3TBnYtBlFIPZYHBs,18754
142
+ not1mm/plugins/cq_wpx_cw.py,sha256=F5lLuXumrviNHnNEk377OKeEJCnv_j9vnjHEcV70gFc,18249
143
+ not1mm/plugins/cq_wpx_rtty.py,sha256=WohxnrCIC2EF7hqLLcixJFAK505X-Z766L3DMVUf4sA,21068
144
+ not1mm/plugins/cq_wpx_ssb.py,sha256=mtUD0tQnraDHoCHIeuWpOD64my3Kni9mXVH5IF2QPL0,16816
145
+ not1mm/plugins/cq_ww_cw.py,sha256=YBlP4Nzp5X-cg4ZEnlrW1CnNpN0GAQqn30S-bYMM-aQ,18041
146
+ not1mm/plugins/cq_ww_rtty.py,sha256=2u3k4ofPh3S4B-BVlQtis-X4rwdx221WRf3hjHWPEyg,22549
147
+ not1mm/plugins/cq_ww_ssb.py,sha256=txeBfJ8rZCrAG2BWY-UmTH81ufRYbkeJJ6NpnV1eKKg,18055
148
+ not1mm/plugins/cwt.py,sha256=_bYlv6AMhfNVI7pChkSfEZ9amaIYhxu71qdmwgPTrKw,17594
149
+ not1mm/plugins/darc_vhf.py,sha256=cyckJ-0c_z7uONEWwxbvxi_olxPP0NJm3ryQRCkT5tE,27419
150
+ not1mm/plugins/darc_xmas.py,sha256=p5UNYLdtylsC_sSlxT8NvXXL1oSW0KyUhIN-rJonHgI,18971
151
+ not1mm/plugins/ea_majistad_cw.py,sha256=tl9y92Oz4NTch4H-SrBnZND2tHGqWQvtgl3emXfU8og,23352
152
+ not1mm/plugins/ea_majistad_ssb.py,sha256=TwZLHwgybpIgA4ECXzV3bIeP89MLr3vXa4_O99-mgxQ,22946
153
+ not1mm/plugins/ea_rtty.py,sha256=JvszWdtUqC_Sn2sJAlMhMp2AdlLyAIj-6nWT-yFkihw,23229
154
154
  not1mm/plugins/general_logging.py,sha256=eQuna-LnrWpf93LmHTTo6956GWoGocVfeYnzY5cyTmw,9600
155
- not1mm/plugins/helvetia.py,sha256=-aL4GYn3boRMJWVWqqS3xvXUgehB58-5cTs1jWTsnxE,20027
156
- not1mm/plugins/iaru_fieldday_r1_cw.py,sha256=tgVKu190bMWdwX_rxVxuoD51qbZsY0QFmLep0w5rHDw,17167
157
- not1mm/plugins/iaru_fieldday_r1_ssb.py,sha256=LC1K5CzBl3PDwm2Dg-ad6QYUVjvVJzAe3o68H79-YKk,17171
158
- not1mm/plugins/iaru_hf.py,sha256=fkWTi_erk1MgX4wqR6nxcxP-2yM2O2LamjhbE1faRaI,16670
159
- not1mm/plugins/icwc_mst.py,sha256=P1cZcdPLi4acTYp1zS7ao_JlpOgay8z2y5STf4uMKik,16487
160
- not1mm/plugins/jidx_cw.py,sha256=mgZSEcL8VrIK-NksASsUBZLpgyckfCuml51pI4pX4-Q,15893
161
- not1mm/plugins/jidx_ph.py,sha256=n4YjSKEVeWFJIYEvl-mNRezrbwt7PqSYzXrERE0VW40,14842
162
- not1mm/plugins/k1usn_sst.py,sha256=Tudz8ycUBG2Qj4y5SC-7pVRIRnSQP23-ezHJ7HdVzGs,17146
163
- not1mm/plugins/labre_rs_digi.py,sha256=NCO9mQ91nG-Q0xozxN3S5_PGc98pDO02ol7_gCqy2RM,20074
164
- not1mm/plugins/lz-dx.py,sha256=_E4XKokfLAPbAQTrG3FLYg0AsMfxMCPCu9ok3wJTvP0,19835
165
- not1mm/plugins/naqp_cw.py,sha256=49BP1rs-rEp9lZtEoQfT532ETDEkeO3xuhUUj9eeZlM,18909
166
- not1mm/plugins/naqp_rtty.py,sha256=wMu9wP_gpacIvUsJOZGxl0v-5joeZbL9JjR8A5NSJuw,22651
167
- not1mm/plugins/naqp_ssb.py,sha256=C1A6qwZnPmZxoy0LaMJSd9jYfahUEmmauYjvOY4Ndb8,17826
168
- not1mm/plugins/phone_weekly_test.py,sha256=cq0WwV_sYgUxvtTlrHafAPm1MQjaSZ8SzhYVjd9I89U,16320
169
- not1mm/plugins/raem.py,sha256=NVz9VJt9mUZdDWpRAmV0H3issnIr8KWd_8iLec9REUE,19574
155
+ not1mm/plugins/helvetia.py,sha256=fDKhvjDh5PxxLxmxvqTHzt-u0cMjHOjlF6JWBu3qB20,20079
156
+ not1mm/plugins/iaru_fieldday_r1_cw.py,sha256=1AVyZFi3ri2zqaNJY181Wtyz74fai8QLoi7PoyXpfaY,17218
157
+ not1mm/plugins/iaru_fieldday_r1_ssb.py,sha256=w0j4MY1LeGxOaQfRjxRS-Q4waTOOt-hbxA1spil7z_I,17222
158
+ not1mm/plugins/iaru_hf.py,sha256=VtNCijj_p03EIRfUJE-5FSarGb8P-Ek7gxIdPF_zHQQ,16721
159
+ not1mm/plugins/icwc_mst.py,sha256=IUpAETCjXxeTmOFu2ItivXiZGRaQgcuaPSu6Q1kOJAk,16539
160
+ not1mm/plugins/jidx_cw.py,sha256=dsirWVEmogPSxSpo2uNGYa12qXiokAGad1IoclG5rpA,15945
161
+ not1mm/plugins/jidx_ph.py,sha256=Ln47W-lPDieG3e67vVHwtPN3jKHVtb87fviyYBL8pi0,14894
162
+ not1mm/plugins/k1usn_sst.py,sha256=yeaejs9rgXot1ISayTHFCWtYcNxOT2NG4E9oeXfQrq8,17198
163
+ not1mm/plugins/labre_rs_digi.py,sha256=93awbxHK2Wi_XZWvUvtaZlQaxpoyX-ev_uj5lm0IZ60,20125
164
+ not1mm/plugins/lz-dx.py,sha256=hP6APYus4AFpz1rMxU82mq7ZB15_hwgsfuR4qInEG6k,19886
165
+ not1mm/plugins/naqp_cw.py,sha256=2XOukhvsJ3rys8VYlO86aX86SXny2GHylfKzggBgPfo,18961
166
+ not1mm/plugins/naqp_rtty.py,sha256=9FiNHoxNn1j-EZ7EFwtl8p-E9uzrX7oq-AB2vRaIAkY,22701
167
+ not1mm/plugins/naqp_ssb.py,sha256=QoJfdVrH5wOfQZy3wGT5fBWM2aCukNMGrf7yIdM5BSU,17878
168
+ not1mm/plugins/phone_weekly_test.py,sha256=WZ7iCoA-JwKjBIPKavV0cmqXnPhEHEQNaGm_BeFZkKQ,16372
169
+ not1mm/plugins/raem.py,sha256=EWoUWhuYrLaR6lRz8fDG09GT4AyZNuf7LlkKg1i1aYc,19624
170
170
  not1mm/plugins/randomgram.py,sha256=h68Ul57maCRhZOou7jU4_B1Dfd3d4n5r-Qzex80yJOk,7401
171
- not1mm/plugins/ref_cw.py,sha256=AOY2AfRaoqzEQ_o9im70WtbLPqojqK-5JIxoe3b9f4w,21331
172
- not1mm/plugins/ref_ssb.py,sha256=tGK5XeFrc3z7l8OViG9DM3rc4HLUBF9S3SUkaAPrjQk,21542
173
- not1mm/plugins/stew_perry_topband.py,sha256=LHt0WnWMRS_m5nO9BOIQs0kO38M6x-k4eaA4nbEqDVA,15353
174
- not1mm/plugins/weekly_rtty.py,sha256=4gfFg25KGkU9tKmwslHLc38qPAXuRGWNX48n582NC7w,20078
175
- not1mm/plugins/winter_field_day.py,sha256=jLgEr95hJCZoc3Fi95PiNeB06thPQHFI3zOHmR6NprE,15234
176
- not1mm-25.3.25.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
177
- not1mm-25.3.25.1.dist-info/METADATA,sha256=acj-Ll6ob6QsRdAa8uAjZvWUtb3Y1nYreeUPyVifVzc,37395
178
- not1mm-25.3.25.1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
179
- not1mm-25.3.25.1.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
180
- not1mm-25.3.25.1.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
181
- not1mm-25.3.25.1.dist-info/RECORD,,
171
+ not1mm/plugins/ref_cw.py,sha256=SY-U-DSyhkTFrsQ6ZLYAt0jTWKa8z05rIZiQ8sTQC-U,21382
172
+ not1mm/plugins/ref_ssb.py,sha256=cUFUtbe7-5rwZZHEzpPnaIAnwrwayqBvtgctxQDF5Gw,21592
173
+ not1mm/plugins/stew_perry_topband.py,sha256=3U-Dr28haBTqTaZWLiC1qHQBmLsLENDL-ihyddPpJbg,15403
174
+ not1mm/plugins/weekly_rtty.py,sha256=C8Xs3Q5UgSYx-mFFar8BVARWtmqlyrbeC98Ubzb4UN8,20128
175
+ not1mm/plugins/winter_field_day.py,sha256=hmAMgkdqIXtnCNyUp8J9Bb8liN8wj10wps6ROuG-Bok,15284
176
+ not1mm-25.3.26.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
177
+ not1mm-25.3.26.dist-info/METADATA,sha256=ctRZxwTGcU_OPyasV_iuRKVGNtp1Vw6R9lz7HXPsURI,37470
178
+ not1mm-25.3.26.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
179
+ not1mm-25.3.26.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
180
+ not1mm-25.3.26.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
181
+ not1mm-25.3.26.dist-info/RECORD,,