not1mm 24.10.27.2__py3-none-any.whl → 24.11.2__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/data/main.ui CHANGED
@@ -9,8 +9,8 @@
9
9
  <rect>
10
10
  <x>0</x>
11
11
  <y>0</y>
12
- <width>785</width>
13
- <height>268</height>
12
+ <width>855</width>
13
+ <height>641</height>
14
14
  </rect>
15
15
  </property>
16
16
  <property name="sizePolicy">
@@ -59,7 +59,7 @@
59
59
  <number>0</number>
60
60
  </property>
61
61
  <item row="1" column="0">
62
- <layout class="QVBoxLayout" name="verticalLayout" stretch="1,0,0">
62
+ <layout class="QVBoxLayout" name="verticalLayout" stretch="1,0,0,0">
63
63
  <item>
64
64
  <layout class="QHBoxLayout" name="mainsection">
65
65
  <item>
@@ -1302,7 +1302,7 @@
1302
1302
  <enum>Qt::FocusPolicy::NoFocus</enum>
1303
1303
  </property>
1304
1304
  <property name="text">
1305
- <string>Edit</string>
1305
+ <string>---</string>
1306
1306
  </property>
1307
1307
  </widget>
1308
1308
  </item>
@@ -1322,7 +1322,7 @@
1322
1322
  <enum>Qt::FocusPolicy::NoFocus</enum>
1323
1323
  </property>
1324
1324
  <property name="text">
1325
- <string>Store</string>
1325
+ <string>---</string>
1326
1326
  </property>
1327
1327
  </widget>
1328
1328
  </item>
@@ -1342,7 +1342,7 @@
1342
1342
  <enum>Qt::FocusPolicy::NoFocus</enum>
1343
1343
  </property>
1344
1344
  <property name="text">
1345
- <string>QRZ</string>
1345
+ <string>---</string>
1346
1346
  </property>
1347
1347
  </widget>
1348
1348
  </item>
@@ -1367,6 +1367,13 @@
1367
1367
  </item>
1368
1368
  </layout>
1369
1369
  </item>
1370
+ <item>
1371
+ <widget class="QLabel" name="history_info">
1372
+ <property name="text">
1373
+ <string/>
1374
+ </property>
1375
+ </widget>
1376
+ </item>
1370
1377
  <item>
1371
1378
  <layout class="QHBoxLayout" name="StatusLine">
1372
1379
  <property name="sizeConstraint">
@@ -1443,7 +1450,7 @@
1443
1450
  <rect>
1444
1451
  <x>0</x>
1445
1452
  <y>0</y>
1446
- <width>878</width>
1453
+ <width>855</width>
1447
1454
  <height>25</height>
1448
1455
  </rect>
1449
1456
  </property>
@@ -1476,6 +1483,7 @@
1476
1483
  <addaction name="separator"/>
1477
1484
  <addaction name="actionEdit_Macros"/>
1478
1485
  <addaction name="separator"/>
1486
+ <addaction name="actionLoad_Call_History_File"/>
1479
1487
  <addaction name="actionUpdate_CTY"/>
1480
1488
  <addaction name="actionUpdate_MASTER_SCP"/>
1481
1489
  <addaction name="separator"/>
@@ -1496,6 +1504,7 @@
1496
1504
  </property>
1497
1505
  <addaction name="actionCW_Macros"/>
1498
1506
  <addaction name="actionDark_Mode_2"/>
1507
+ <addaction name="actionCommand_Buttons_2"/>
1499
1508
  </widget>
1500
1509
  <widget class="QMenu" name="menuWindow">
1501
1510
  <property name="title">
@@ -1978,6 +1987,24 @@
1978
1987
  </font>
1979
1988
  </property>
1980
1989
  </action>
1990
+ <action name="actionLoad_Call_History_File">
1991
+ <property name="text">
1992
+ <string>Load Call History File</string>
1993
+ </property>
1994
+ </action>
1995
+ <action name="actionShow_Command_Buttons">
1996
+ <property name="text">
1997
+ <string>Command Buttons</string>
1998
+ </property>
1999
+ </action>
2000
+ <action name="actionCommand_Buttons_2">
2001
+ <property name="checkable">
2002
+ <bool>true</bool>
2003
+ </property>
2004
+ <property name="text">
2005
+ <string>Command Buttons</string>
2006
+ </property>
2007
+ </action>
1981
2008
  </widget>
1982
2009
  <resources/>
1983
2010
  <connections/>
not1mm/lib/database.py CHANGED
@@ -78,6 +78,7 @@ class DataBase:
78
78
  self.create_contest_table()
79
79
  self.create_contest_instance_table()
80
80
  self.create_station_table()
81
+ self.create_callhistory_table()
81
82
 
82
83
  @staticmethod
83
84
  def row_factory(cursor, row):
@@ -152,6 +153,36 @@ class DataBase:
152
153
  except sqlite3.OperationalError as exception:
153
154
  logger.debug("%s", exception)
154
155
 
156
+ def create_callhistory_table(self) -> None:
157
+ """creates the callhistory table"""
158
+ logger.debug("Creating DXLOG Table")
159
+ try:
160
+ with sqlite3.connect(self.database) as conn:
161
+ cursor = conn.cursor()
162
+ sql_command = (
163
+ "CREATE TABLE IF NOT EXISTS CALLHISTORY ("
164
+ "Call VARCHAR(15) NOT NULL, "
165
+ "Name VARCHAR(20), "
166
+ "Loc1 VARCHAR(6) DEFAULT '', "
167
+ "Loc2 VARCHAR(6) DEFAULT '', "
168
+ "Sect VARCHAR(8) DEFAULT '', "
169
+ "State VARCHAR(8) DEFAULT '', "
170
+ "CK TINYINT DEFAULT 0, "
171
+ "BirthDate DATE, "
172
+ "Exch1 VARCHAR(12) DEFAULT '', "
173
+ "Misc VARCHAR(15) DEFAULT '', "
174
+ "Power VARCHAR(8) DEFAULT '', "
175
+ "CqZone TINYINT DEFAULT 0, "
176
+ "ITUZone TINYINT DEFAULT 0, "
177
+ "UserText VARCHAR(60) DEFAULT '', "
178
+ "LastUpdateNote VARCHAR(20) DEFAULT '' "
179
+ ");"
180
+ )
181
+ cursor.execute(sql_command)
182
+ conn.commit()
183
+ except sqlite3.OperationalError as exception:
184
+ logger.debug("%s", exception)
185
+
155
186
  def update_dxlog_table(self) -> None:
156
187
  """update missing columns"""
157
188
  logger.debug("Updating DXLOG Table")
@@ -356,6 +387,49 @@ class DataBase:
356
387
  logger.debug("%s", exception)
357
388
  return {}
358
389
 
390
+ def add_callhistory_item(self, history: dict) -> None:
391
+ """Add an item to the call history db"""
392
+ pre = "INSERT INTO CALLHISTORY("
393
+ values = []
394
+ columns = ""
395
+ placeholders = ""
396
+ for key in history.keys():
397
+ columns += f"{key},"
398
+ values.append(history[key])
399
+ placeholders += "?,"
400
+ post = f") VALUES({placeholders[:-1]});"
401
+ sql = f"{pre}{columns[:-1]}{post}"
402
+
403
+ try:
404
+ with sqlite3.connect(self.database) as conn:
405
+ cur = conn.cursor()
406
+ cur.execute(sql, tuple(values))
407
+ conn.commit()
408
+ except sqlite3.Error as exception:
409
+ logger.info("%s", exception)
410
+
411
+ def add_callhistory_items(self, history_list: list) -> None:
412
+ """Add a list of items to the call history db"""
413
+ try:
414
+ with sqlite3.connect(self.database) as conn:
415
+ for history in history_list:
416
+ pre = "INSERT INTO CALLHISTORY("
417
+ values = []
418
+ columns = ""
419
+ placeholders = ""
420
+ for key in history.keys():
421
+ columns += f"{key},"
422
+ values.append(history[key])
423
+ placeholders += "?,"
424
+ post = f") VALUES({placeholders[:-1]});"
425
+ sql = f"{pre}{columns[:-1]}{post}"
426
+ cur = conn.cursor()
427
+ cur.execute(sql, tuple(values))
428
+ conn.commit()
429
+ except sqlite3.Error as exception:
430
+ print(exception)
431
+ logger.info("%s", exception)
432
+
359
433
  def add_contest(self, contest: dict) -> None:
360
434
  """Add Contest"""
361
435
 
@@ -465,6 +539,29 @@ class DataBase:
465
539
  except sqlite3.Error as exception:
466
540
  logger.info("DataBase delete_contact: %s", exception)
467
541
 
542
+ def delete_callhistory(self) -> None:
543
+ """Deletes all info from callhistory table."""
544
+ try:
545
+ with sqlite3.connect(self.database) as conn:
546
+ sql = "delete from CALLHISTORY;"
547
+ cur = conn.cursor()
548
+ cur.execute(sql)
549
+ conn.commit()
550
+ except sqlite3.Error as exception:
551
+ logger.info("%s", exception)
552
+
553
+ def fetch_call_history(self, call: str):
554
+ """"""
555
+ try:
556
+ with sqlite3.connect(self.database) as conn:
557
+ conn.row_factory = self.row_factory
558
+ cursor = conn.cursor()
559
+ cursor.execute(f"select * from CALLHISTORY where call='{call}';")
560
+ return cursor.fetchone()
561
+ except sqlite3.OperationalError as exception:
562
+ logger.debug("%s", exception)
563
+ return {}
564
+
468
565
  def fetch_all_contacts_asc(self) -> list:
469
566
  """returns a list of dicts with contacts in the database."""
470
567
  try:
not1mm/lib/settings.py CHANGED
@@ -19,6 +19,8 @@ class Settings(QtWidgets.QDialog):
19
19
  super().__init__(parent)
20
20
  self.logger = logging.getLogger("settings")
21
21
  uic.loadUi(app_data_path / "configuration.ui", self)
22
+ self.tabWidget.setTabVisible(5, False)
23
+ # self.group_tab.hide()
22
24
  self.buttonBox.accepted.connect(self.save_changes)
23
25
  self.usecwdaemon_radioButton.clicked.connect(self.set_cwdaemon_port_hint)
24
26
  self.usepywinkeyer_radioButton.clicked.connect(self.set_winkeyer_port_hint)
@@ -39,7 +41,11 @@ class Settings(QtWidgets.QDialog):
39
41
  def setup(self):
40
42
  """setup dialog"""
41
43
 
42
- self.use_esm.setChecked(bool(self.preference.get("use_esm")))
44
+ self.use_call_history.setChecked(
45
+ bool(self.preference.get("use_call_history", False))
46
+ )
47
+
48
+ self.use_esm.setChecked(bool(self.preference.get("use_esm", False)))
43
49
 
44
50
  value = self.preference.get("esm_agn", "DISABLED")
45
51
  index = self.esm_agn.findText(value)
@@ -188,6 +194,7 @@ class Settings(QtWidgets.QDialog):
188
194
  """
189
195
  Write preferences to json file.
190
196
  """
197
+ self.preference["use_call_history"] = self.use_call_history.isChecked()
191
198
  self.preference["use_esm"] = self.use_esm.isChecked()
192
199
  self.preference["esm_cq"] = self.esm_cq.currentText()
193
200
  self.preference["esm_agn"] = self.esm_agn.currentText()
not1mm/lib/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "24.10.27.2"
3
+ __version__ = "24.11.2"
@@ -134,6 +134,16 @@ def prefill(self):
134
134
  field.setText(serial_nr)
135
135
 
136
136
 
137
+ def check_call_history(self):
138
+ """"""
139
+ result = self.database.fetch_call_history(self.callsign.text())
140
+ print(f"{result=}")
141
+ if result:
142
+ self.history_info.setText(f"{result.get('UserText','')}")
143
+ if self.other_2.text() == "":
144
+ self.other_2.setText(f" {result.get('CK','')}{result.get('Sect', '')}")
145
+
146
+
137
147
  def points(self):
138
148
  """Calc point"""
139
149
  return 2
not1mm/test.py CHANGED
@@ -1,11 +1,61 @@
1
- from dasbus.connection import SessionMessageBus
1
+ from not1mm.lib.database import DataBase
2
+ from json import loads
3
+ import not1mm.fsutils as fsutils
4
+ import os
2
5
 
3
- bus = SessionMessageBus()
6
+ dbname = None
7
+ pref = {}
4
8
 
5
- proxy = bus.get_proxy("org.freedesktop.Notifications", "/org/freedesktop/Notifications")
6
9
 
7
- id = proxy.Notify(
8
- "weenes", 0, "face-smile", "My notification", "Hello World!", [], {}, 0
9
- )
10
+ def load_pref():
11
+ try:
12
+ if os.path.exists(fsutils.CONFIG_FILE):
13
+ with open(fsutils.CONFIG_FILE, "rt", encoding="utf-8") as file_descriptor:
14
+ pref = loads(file_descriptor.read())
15
+ else:
16
+ pref["current_database"] = "ham.db"
10
17
 
11
- print("The notification {} was sent.".format(id))
18
+ except IOError:
19
+ ...
20
+
21
+
22
+ load_pref()
23
+ dbname = fsutils.USER_DATA_PATH / pref.get("current_database", "ham.db")
24
+ database = DataBase(dbname, fsutils.USER_DATA_PATH)
25
+
26
+ database.create_callhistory_table()
27
+ database.delete_callhistory()
28
+
29
+ try:
30
+ with open(
31
+ "/home/mbridak/call_history/CWOPS_3634-AAA.txt", "rt", encoding="utf-8"
32
+ ) as file_descriptor:
33
+ lines = file_descriptor.readlines()
34
+ if "!!Order!!" in lines[0]:
35
+ item_names = lines[0].strip().split(",")
36
+ # ['!!Order!!', 'Call', 'Sect', 'State', 'CK', 'UserText', '']
37
+ item_names = item_names[1:-1]
38
+ # ['Call', 'Sect', 'State', 'CK', 'UserText']
39
+ lines = lines[1:]
40
+ group_list = []
41
+ for line in lines:
42
+ if line.startswith("#"):
43
+ continue
44
+ group = {}
45
+ fields = line.strip().split(",")
46
+ # ['4U1WB','MDC','DC','89','']
47
+ count = 0
48
+ try:
49
+ for item in item_names:
50
+ if item == "":
51
+ continue
52
+ group[item] = fields[count]
53
+ count += 1
54
+ group_list.append(group)
55
+ # database.add_callhistory_item(group)
56
+ # print(f"{group=}")
57
+ except IndexError:
58
+ ...
59
+ database.add_callhistory_items(group_list)
60
+ except FileNotFoundError:
61
+ print("error")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.10.27.2
3
+ Version: 24.11.2
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
@@ -232,36 +232,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
232
232
 
233
233
  ## Recent Changes (Polishing the Turd)
234
234
 
235
- - [24-10-27-2] Changed CQ zone auto population for CQ WW, it now waits for the user to exit the callsign entry window before auto filling the zone.
236
- - [24-10-27-1] Fixed setting radios ssb mode when crossing 10M boundary.
237
- - [24-10-27] Fix bug where a contacts info could be carried over to new contact if no new value was written.
238
- - [24-10-26] Clear inputs when seeking to a call from the bandmap via the arrow up and down. Fixed bandmap crash from bad telnet data. Drop beacons from bandmap.
239
- - [24-10-25] Add File Menu option to create either an ASCII or UTF8 Cabrillo.
240
- - [24-10-24-1] Make all Cabrillo files with UTF-8.
241
- - [24-10-24] Forgot to convert the VFO dockwidget along with the rest. CQ WW CW, Dupes now score 0.
242
- - [24-10-23] Remove duplicate marked calls in the bandmap.
243
- - [24-10-22] Added ESM to RAC Canada Day. Added French REF.
244
- - [24-10-21] Scaled back the hits returned from the check window from 25 to 20. Seems less resource hungry now.
245
- - [24-10-20-1] ReWrote how the widgets interact. I probably broke a thing or two. Let me know.
246
- - [24-10-20] Add ESM to ARRL DX.
247
- - [24-10-19-1] Rewrite part of CAT control.
248
- - [24-10-19] Change ESM button states when the run state is toggled. Add ESM to ARRL Field Day and Winter Field Day.
249
- - [24-10-18] Fixed marked spots showing the correct time.
250
- - [24-10-17-2] Add ESM to ARRL Sweepstakes.
251
- - [24-10-17-1] Fix dupe check. Reordered change mode and interface update sequence. Resend mode if rigctld does not report back `RPRT 0`
252
- - [24-10-17] Increased max CW speed to 99, 'cause people be crazy. Trying smaller timeout for the rigctlsocket. Not having the checkwindow process events while not visible since it's a resource hog.
253
- - [24-10-15-1] Fix callsigns with a slash failing check during ESM.
254
- - [24-10-15] Add NAQP RTTY, Added ESM to NAQP.
255
- - [24-10-14] Add ESM to CQ WPX.
256
- - [24-10-13] Added ESM to Weekly RTTY, K1USN and CWT.
257
- - [24-10-11] added ESM to CQWW SSB and RTTY.
258
- - [24-10-10] Add ESM to CQ WW CW to test it out.
259
- - [24-10-8] Fix crash on Tune to spot. Change placeholder text for the CW port for those unable to read documentation.
260
- - [24-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
261
- - [24-10-5-1] Store the bandmap spots age timer in the preferences.
262
- - [24-10-5] Force reselction of contest after different DB opened.
263
- - [24-10-2] Add WPX RTTY.
264
- - [24-10-1] Merged PR removing leading zeros from serial numbers. Merged PR correcting the parsing of lookups for previous name and state in the CWT.
235
+ - [24-11-2] Add beginning of call history files. Add command buttons.
265
236
 
266
237
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
267
238
 
@@ -1,12 +1,12 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=AWA2Dud5vG75fjxlS0gGnWrKJJaYV_rkO7-yREQWCIA,136633
2
+ not1mm/__main__.py,sha256=7th18LkLGN7OnN-q20QuE381dxIOXzr3DKfaLtWCr9w,140914
3
3
  not1mm/bandmap.py,sha256=X6mMHXS1kXBbUPZCaKgiVJ6Dz6DE6LEQqtEXfT3telg,30811
4
4
  not1mm/checkwindow.py,sha256=F6hNCbVSLG2PPY2afgmwlBWeqr1Uj4-n__AivDLVQ_0,9670
5
5
  not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
6
6
  not1mm/logwindow.py,sha256=TvpzQTNB92hISlUO3iWBqtlPmlebdhOkAArx0DNGcOs,43966
7
7
  not1mm/lookupservice.py,sha256=4c36x_1G3Sy69gQfJ6El7vHLIKTjLGH67ziPPoeYweM,2648
8
8
  not1mm/radio.py,sha256=eu1kBjmttREFZ5tAJpNuQSMrmWeKw4Tb-sjgjChUYUs,4693
9
- not1mm/test.py,sha256=atZoDXL9DArK4dS8gBCDmlMt5AHuiVZmFOQIp62hDHg,314
9
+ not1mm/test.py,sha256=o3DH2wQ3C_HwK650dBqNFf0eYCg5D6s8_GvJht1WjVo,1924
10
10
  not1mm/vfo.py,sha256=ggPyWtxMbdSE5RwdK0nDRwDNqOxdpb_pvnzZdbzZVQE,11136
11
11
  not1mm/voice_keying.py,sha256=sA3gw5_k7kShTg2qhG7HkKDM5M6KheJVRkAc_C7mxDk,3006
12
12
  not1mm/data/JetBrainsMono-ExtraLight.ttf,sha256=g5Hn7BPounWMGDj1a8zZcyKMz03HSqW__pUluRR7Evg,274144
@@ -16,7 +16,7 @@ not1mm/data/alpha bravo charlie delta.txt,sha256=d5QMmSWEUAe4Rj1XbNjTPLa_5Be4Se6
16
16
  not1mm/data/bandmap.ui,sha256=hvovf1YKyfUVVbKl6Ib2zU4RdUrFsQwm-255wVeKXZE,7180
17
17
  not1mm/data/check.png,sha256=UvFOLr8V-79qnjW8wUaGItXk_OSP8m8hqPevs8NDlFY,387
18
18
  not1mm/data/checkwindow.ui,sha256=Ux5EgO-JalGB9qx3M6tmMpGHO0RmuuY1w0XEbuwd1xk,4658
19
- not1mm/data/configuration.ui,sha256=VGJYL14XPuJkJVKk0FWyZWFXK5ibZ3_0_VUBXyzKnOk,68141
19
+ not1mm/data/configuration.ui,sha256=iva5exfJJFBiiITpz6vgCB8e_j0lgsLeVWOltxtUk4g,70006
20
20
  not1mm/data/contests.sql,sha256=4hmJCDvrbxnA_Y5S4T5o52TZieeFk6QUwFerwlFePNA,89307
21
21
  not1mm/data/cty.json,sha256=dPG9K1Pm4Rxd4uJom_gQ8y-sbqiZfILpl4kBAFnOveU,4877142
22
22
  not1mm/data/cwmacros.txt,sha256=NztufsX6R52gAO7VyJ2AHr7wOh41pJTwHKh5Lcs32ds,468
@@ -30,7 +30,7 @@ not1mm/data/k6gte.not1mm-32.png,sha256=XdTsCa3xqwTfn26Ga7RwO_Vlbg_77RKkSc8bMxVcC
30
30
  not1mm/data/k6gte.not1mm-64.png,sha256=6ku45Gq1g5ezh04F07osoKRtanb3e4kbx5XdIEh3N90,2925
31
31
  not1mm/data/logwindow.ui,sha256=f7vULj96tHIQuR1nJMyvPHHcmVgzkhv9D1isyojsnFU,1458
32
32
  not1mm/data/logwindowx.ui,sha256=CwpI-h7cI1yqyldH9quKftsdHL5lTyL9ABOcf80nfqc,1632
33
- not1mm/data/main.ui,sha256=qX8IAGDP5oeky36GEzniWW0EoeJP5HaRTLUVlPG2Ug0,62449
33
+ not1mm/data/main.ui,sha256=pI-70TYESe85ENkRH8l1DXnKDOkwYqKXUdMk6KYaN50,63193
34
34
  not1mm/data/new_contest.ui,sha256=CBvg-L_81Aftk9_cp88aHrFMLhpRsM80BmA6gOpaGa0,23429
35
35
  not1mm/data/not1mm.html,sha256=c9-mfjMwDt4f5pySUruz2gREW33CQ2_rCddM2z5CZQo,23273
36
36
  not1mm/data/opon.ui,sha256=QDicqAk2lORG2UWsHa6jHlsGn6uzrrI2R4HSAocpPes,2258
@@ -97,7 +97,7 @@ not1mm/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
97
  not1mm/lib/about.py,sha256=sWycfGcruN3SaEe4JmaJ61K6D8Itq0WxpUYT-lEcmYM,416
98
98
  not1mm/lib/cat_interface.py,sha256=Vkxq4JvWguP8O95JYUfQ5hrllzggm6jeFXFiTBKvnw8,22534
99
99
  not1mm/lib/cwinterface.py,sha256=3H_Ur5qtZCg6AA-CBURdnS3IUcvs3YAcwYLO0S8SUBg,3621
100
- not1mm/lib/database.py,sha256=nUVG5H2Dy98PGp6Qdr3xU7zM8-8-IiyqRkXZWlWzIe8,44446
100
+ not1mm/lib/database.py,sha256=nqWp2eJ7JfUTqaQ9AVbx3XjgtlRnYY9ruTQCv2YRreY,48310
101
101
  not1mm/lib/edit_contact.py,sha256=Ki9bGPpqyQQBB1cU8VIBDCal3lbXeQ6qxhzklmhE2_w,353
102
102
  not1mm/lib/edit_macro.py,sha256=raKWBwsHInj5EUKmvyLQ6gqc3ZFDlstsD3xqoM4PC8E,517
103
103
  not1mm/lib/edit_opon.py,sha256=j3qJ1aBsQoIOnQ9yiBl3lyeISvKTP0I_rtBYBPAfgeI,359
@@ -113,9 +113,9 @@ not1mm/lib/new_contest.py,sha256=IznTDMq7yXHB6zBoGUEC_WDYPCPpsSZW4wwMJi16zK0,816
113
113
  not1mm/lib/playsound.py,sha256=kxkcitBFbZCXJ2wxQ1lxg4rBwfxiSpuNpJSXHOPCoXA,9241
114
114
  not1mm/lib/plugin_common.py,sha256=TbFUbftjELFt4QRdsjSHbqnXSngZOlSwlCTClqosDXA,9727
115
115
  not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
116
- not1mm/lib/settings.py,sha256=7_JFDSKPOd35Gwzqhrbed4EfrlYUm7AEnz2xBRioc-g,13280
116
+ not1mm/lib/settings.py,sha256=Xt0WE2ro_kUYdugQ0Pe1SQX07MHrJ0jyQqDqAKKqxuU,13564
117
117
  not1mm/lib/super_check_partial.py,sha256=hwT2NRwobu0PLDyw6ltmbmcAtGBD02CKGFbgGWjXMqA,2334
118
- not1mm/lib/version.py,sha256=t_SYOIINyKke0cb6vNpdKmuJ7yZ3cV5iXEIae-BqEQU,51
118
+ not1mm/lib/version.py,sha256=pRpJebKEGw9jPFJsZe4XWJV3SfLTQj5DNbxN3j2YgiU,48
119
119
  not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
120
120
  not1mm/plugins/10_10_fall_cw.py,sha256=QQjEgWQRT35qG1bi87QhoUIOzGbN8C27WIUhhoFNsAI,11866
121
121
  not1mm/plugins/10_10_spring_cw.py,sha256=nGznP9VLooaDnHi0JXttosqAtSRH32oXwWmMrXf95A0,11871
@@ -127,7 +127,7 @@ not1mm/plugins/arrl_dx_cw.py,sha256=6CxLhewtceKCWY3jMyhdxknW4Eg1uFqTK0To-9sjZAc,
127
127
  not1mm/plugins/arrl_dx_ssb.py,sha256=AqSiIRlC4UAVyc4S2MnUqT1-vFkxQStl0zjeXPThRCk,18011
128
128
  not1mm/plugins/arrl_field_day.py,sha256=Jukp3TxYJojPVktA5hMaq272hiCqvl0V8A71F5mL--A,16961
129
129
  not1mm/plugins/arrl_rtty_ru.py,sha256=hKUS4isjdXo3EYxQrsqsDupPp2chW8fpoWj0T1pTgJ4,7994
130
- not1mm/plugins/arrl_ss_cw.py,sha256=pi24xK7S8fve6U2rdcOATOmnG552i5oHXFXEIukpKB4,17252
130
+ not1mm/plugins/arrl_ss_cw.py,sha256=wXMgPkSj3-ZZ-Sl8JJdTxVIlh87QQx7AWKeVtrzKkyo,17590
131
131
  not1mm/plugins/arrl_ss_phone.py,sha256=XnfNFwtjuAxu285DUsUQdDNC_mDtKut0CT2KVRDKZN8,17240
132
132
  not1mm/plugins/arrl_vhf_jan.py,sha256=QonafOYBtrdwlvMSyu0SyroDLsyIqHvJ46Mx-QoaI4Q,16630
133
133
  not1mm/plugins/arrl_vhf_jun.py,sha256=F8XhZvYEx-rwaeKbiOGQybQrusurzOkRtKMx5oHY1hE,15722
@@ -160,9 +160,9 @@ not1mm/plugins/ref_ssb.py,sha256=UC8xwl4uRihTvlYsITCvfTCPVbNXpnO91T8qMDKaW8E,209
160
160
  not1mm/plugins/stew_perry_topband.py,sha256=UOK9M23eMkcEB83kL8NPHl6QDBJFCXKZpBRlhfuEH2c,11581
161
161
  not1mm/plugins/weekly_rtty.py,sha256=WoMfQXJczvoHQB04i6TAvL6MF91uOOQ9ZmB9BpUkOfo,19098
162
162
  not1mm/plugins/winter_field_day.py,sha256=wPxHKPPeyE2XlRT6Unnz09evFwd0ghWtXU5l-nMr3aI,14492
163
- not1mm-24.10.27.2.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
164
- not1mm-24.10.27.2.dist-info/METADATA,sha256=rRd4LhDlcAwDLmN-QGrE352ykLrXt2M0kXOZ1y_pmk4,35767
165
- not1mm-24.10.27.2.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
166
- not1mm-24.10.27.2.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
167
- not1mm-24.10.27.2.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
168
- not1mm-24.10.27.2.dist-info/RECORD,,
163
+ not1mm-24.11.2.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
164
+ not1mm-24.11.2.dist-info/METADATA,sha256=szJETrgmUj0gukL2o-smSRdGH-QMKSu793tH9GtgtfI,33359
165
+ not1mm-24.11.2.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
166
+ not1mm-24.11.2.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
167
+ not1mm-24.11.2.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
168
+ not1mm-24.11.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5