not1mm 24.10.5.1__py3-none-any.whl → 24.10.8__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 CHANGED
@@ -95,7 +95,7 @@ class MainWindow(QtWidgets.QMainWindow):
95
95
  "command_buttons": False,
96
96
  "cw_macros": True,
97
97
  "bands_modes": True,
98
- "bands": ["160", "80", "60", "40", "30", "20", "17", "15", "12", "10"],
98
+ "bands": ["160", "80", "40", "20", "15", "10"],
99
99
  "current_database": "ham.db",
100
100
  "contest": "",
101
101
  "multicast_group": "239.1.1.1",
@@ -2609,13 +2609,16 @@ class MainWindow(QtWidgets.QMainWindow):
2609
2609
  self.rig_control.poll_callback.connect(self.poll_radio)
2610
2610
  self.radio_thread.start()
2611
2611
 
2612
- if self.pref.get("cwtype", 0) == 0:
2613
- self.cw = None
2614
- else:
2612
+ self.cw = None
2613
+ if (
2614
+ self.pref.get("cwport")
2615
+ and self.pref.get("cwip")
2616
+ and self.pref.get("cwtype")
2617
+ ):
2615
2618
  self.cw = CW(
2616
2619
  int(self.pref.get("cwtype")),
2617
2620
  self.pref.get("cwip"),
2618
- int(self.pref.get("cwport", 6789)),
2621
+ int(self.pref.get("cwport")),
2619
2622
  )
2620
2623
  self.cw.speed = 20
2621
2624
  if self.cw.servertype == 2:
@@ -2646,13 +2649,9 @@ class MainWindow(QtWidgets.QMainWindow):
2646
2649
  self.pref["bands"] = [
2647
2650
  "160",
2648
2651
  "80",
2649
- "60",
2650
2652
  "40",
2651
- "30",
2652
2653
  "20",
2653
- "17",
2654
2654
  "15",
2655
- "12",
2656
2655
  "10",
2657
2656
  ]
2658
2657
 
@@ -2711,7 +2710,8 @@ class MainWindow(QtWidgets.QMainWindow):
2711
2710
  self.callsign_changed()
2712
2711
  self.callsign.setFocus()
2713
2712
  self.callsign.activateWindow()
2714
- window.raise_()
2713
+ # This broke somehow.
2714
+ # window.raise_()
2715
2715
  continue
2716
2716
 
2717
2717
  if (
@@ -3602,6 +3602,21 @@ def run() -> None:
3602
3602
  """
3603
3603
  Main Entry
3604
3604
  """
3605
+ splash.show()
3606
+ # app.processEvents()
3607
+ splash.showMessage(
3608
+ "Starting Up",
3609
+ alignment=Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignCenter,
3610
+ color=QColor(255, 255, 0),
3611
+ )
3612
+ QCoreApplication.processEvents()
3613
+
3614
+ families = load_fonts_from_dir(os.fspath(fsutils.APP_DATA_PATH))
3615
+ logger.info(f"font families {families}")
3616
+ window = MainWindow(splash)
3617
+ window.callsign.setFocus()
3618
+ splash.finish(window)
3619
+ window.show()
3605
3620
  logger.debug(
3606
3621
  f"Resolved OS file system paths: MODULE_PATH {fsutils.MODULE_PATH}, USER_DATA_PATH {fsutils.USER_DATA_PATH}, CONFIG_PATH {fsutils.CONFIG_PATH}"
3607
3622
  )
@@ -3625,25 +3640,11 @@ logging.basicConfig(
3625
3640
  )
3626
3641
  logging.getLogger("PyQt6.uic.uiparser").setLevel("INFO")
3627
3642
  logging.getLogger("PyQt6.uic.properties").setLevel("INFO")
3643
+
3628
3644
  app = QtWidgets.QApplication(sys.argv)
3629
3645
 
3630
3646
  pixmap = QPixmap(f"{os.fspath(fsutils.APP_DATA_PATH)}/splash.png")
3631
3647
  splash = QSplashScreen(pixmap)
3632
- splash.show()
3633
- # app.processEvents()
3634
- splash.showMessage(
3635
- "Starting Up",
3636
- alignment=Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignCenter,
3637
- color=QColor(255, 255, 0),
3638
- )
3639
- QCoreApplication.processEvents()
3640
-
3641
- families = load_fonts_from_dir(os.fspath(fsutils.APP_DATA_PATH))
3642
- logger.info(f"font families {families}")
3643
- window = MainWindow(splash)
3644
- window.callsign.setFocus()
3645
- splash.finish(window)
3646
- window.show()
3647
3648
 
3648
3649
  if __name__ == "__main__":
3649
3650
  run()
not1mm/lib/multicast.py CHANGED
@@ -31,11 +31,11 @@ class Multicast:
31
31
  int(self.multicast_port),
32
32
  QtNetwork.QAbstractSocket.BindFlag.ReuseAddressHint,
33
33
  )
34
- logger.warn(f"multicast bind {b_result}")
34
+ logger.warning(f"multicast bind {b_result}")
35
35
  join_result = self.server_udp.joinMulticastGroup(
36
36
  QtNetwork.QHostAddress(self.multicast_group)
37
37
  )
38
- logger.warn(f"joinMulticastGroup result {join_result}")
38
+ logger.warning(f"joinMulticastGroup result {join_result}")
39
39
 
40
40
  def has_pending_datagrams(self) -> bool:
41
41
  """Check if there is a pending datagram"""
not1mm/lib/settings.py CHANGED
@@ -20,6 +20,9 @@ class Settings(QtWidgets.QDialog):
20
20
  self.logger = logging.getLogger("settings")
21
21
  uic.loadUi(app_data_path / "configuration.ui", self)
22
22
  self.buttonBox.accepted.connect(self.save_changes)
23
+ self.usecwdaemon_radioButton.clicked.connect(self.set_cwdaemon_port_hint)
24
+ self.usepywinkeyer_radioButton.clicked.connect(self.set_winkeyer_port_hint)
25
+ self.usecwviacat_radioButton.clicked.connect(self.set_catforcw_port_hint)
23
26
  self.preference = pref
24
27
  if sd:
25
28
  self.devices = sd.query_devices()
@@ -37,7 +40,6 @@ class Settings(QtWidgets.QDialog):
37
40
  if index != -1:
38
41
  self.sounddevice.setCurrentIndex(index)
39
42
  self.useqrz_radioButton.setChecked(bool(self.preference.get("useqrz")))
40
- # self.usehamdb_radioButton.setChecked(bool(self.preference.get("usehamdb")))
41
43
  self.usehamqth_radioButton.setChecked(bool(self.preference.get("usehamqth")))
42
44
  self.lookup_user_name_field.setText(
43
45
  str(self.preference.get("lookupusername", ""))
@@ -51,7 +53,10 @@ class Settings(QtWidgets.QDialog):
51
53
  self.useflrig_radioButton.setChecked(bool(self.preference.get("useflrig")))
52
54
 
53
55
  self.cwip_field.setText(str(self.preference.get("cwip", "")))
54
- self.cwport_field.setText(str(self.preference.get("cwport", "")))
56
+ if self.preference.get("cwport", ""):
57
+ self.cwport_field.setText(str(self.preference.get("cwport", "")))
58
+ else:
59
+ self.cwport_field.setText("")
55
60
  self.usecwdaemon_radioButton.setChecked(
56
61
  bool(self.preference.get("cwtype") == 1)
57
62
  )
@@ -61,6 +66,13 @@ class Settings(QtWidgets.QDialog):
61
66
  self.usecwviacat_radioButton.setChecked(
62
67
  bool(self.preference.get("cwtype") == 3)
63
68
  )
69
+ if self.preference.get("cwtype") == 1:
70
+ self.set_cwdaemon_port_hint()
71
+ elif self.preference.get("cwtype") == 2:
72
+ self.set_winkeyer_port_hint()
73
+ elif self.preference.get("cwtype") == 3:
74
+ self.set_catforcw_port_hint()
75
+
64
76
  self.connect_to_server.setChecked(bool(self.preference.get("useserver")))
65
77
  self.multicast_group.setText(str(self.preference.get("multicast_group", "")))
66
78
  self.multicast_port.setText(str(self.preference.get("multicast_port", "")))
@@ -73,13 +85,14 @@ class Settings(QtWidgets.QDialog):
73
85
  str(self.preference.get("n1mm_station_name", ""))
74
86
  )
75
87
  self.n1mm_operator.setText(str(self.preference.get("n1mm_operator", "")))
76
- # self.n1mm_ip.setText(str(self.preference.get("n1mm_ip", "")))
77
88
  self.n1mm_radioport.setText(str(self.preference.get("n1mm_radioport", "")))
78
89
  self.n1mm_contactport.setText(str(self.preference.get("n1mm_contactport", "")))
79
90
  self.n1mm_lookupport.setText(str(self.preference.get("n1mm_lookupport", "")))
80
91
  self.n1mm_scoreport.setText(str(self.preference.get("n1mm_scoreport", "")))
81
92
  self.send_n1mm_radio.setChecked(bool(self.preference.get("send_n1mm_radio")))
82
- self.send_n1mm_contact.setChecked(bool(self.preference.get("send_n1mm_contact")))
93
+ self.send_n1mm_contact.setChecked(
94
+ bool(self.preference.get("send_n1mm_contact"))
95
+ )
83
96
  self.send_n1mm_lookup.setChecked(bool(self.preference.get("send_n1mm_lookup")))
84
97
  self.send_n1mm_score.setChecked(bool(self.preference.get("send_n1mm_score")))
85
98
 
@@ -105,11 +118,28 @@ class Settings(QtWidgets.QDialog):
105
118
  self.activate_6m.setChecked(bool("6" in self.preference.get("bands", [])))
106
119
  self.activate_4m.setChecked(bool("4" in self.preference.get("bands", [])))
107
120
  self.activate_2m.setChecked(bool("2" in self.preference.get("bands", [])))
108
- self.activate_1dot25.setChecked(bool("1.25" in self.preference.get("bands", [])))
121
+ self.activate_1dot25.setChecked(
122
+ bool("1.25" in self.preference.get("bands", []))
123
+ )
109
124
  self.activate_70cm.setChecked(bool("70cm" in self.preference.get("bands", [])))
110
125
  self.activate_33cm.setChecked(bool("33cm" in self.preference.get("bands", [])))
111
126
  self.activate_23cm.setChecked(bool("23cm" in self.preference.get("bands", [])))
112
127
 
128
+ def set_cwdaemon_port_hint(self):
129
+ """Sets placeholder hint for the CW interface."""
130
+ self.cwip_field.setPlaceholderText("127.0.0.1")
131
+ self.cwport_field.setPlaceholderText("6789")
132
+
133
+ def set_winkeyer_port_hint(self):
134
+ """Sets placeholder hint for the CW interface."""
135
+ self.cwip_field.setPlaceholderText("127.0.0.1")
136
+ self.cwport_field.setPlaceholderText("8000")
137
+
138
+ def set_catforcw_port_hint(self):
139
+ """Sets placeholder hint for the CW interface."""
140
+ self.cwip_field.setPlaceholderText("")
141
+ self.cwport_field.setPlaceholderText("")
142
+
113
143
  def save_changes(self):
114
144
  """
115
145
  Write preferences to json file.
@@ -131,6 +161,7 @@ class Settings(QtWidgets.QDialog):
131
161
  try:
132
162
  self.preference["cwport"] = int(self.cwport_field.text())
133
163
  except ValueError:
164
+ self.preference["cwport"] = None
134
165
  ...
135
166
  self.preference["cwtype"] = 0
136
167
  if self.usecwdaemon_radioButton.isChecked():
not1mm/lib/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "24.10.5.1"
3
+ __version__ = "24.10.8"
@@ -491,7 +491,7 @@ def ft8_handler(the_packet: dict):
491
491
  ALTEREGO.contact["Call"] = the_packet.get("CALL", "")
492
492
  ALTEREGO.contact["SNT"] = ALTEREGO.sent.text()
493
493
  ALTEREGO.contact["RCV"] = ALTEREGO.receive.text()
494
- ALTEREGO.contact["Exchange1"] = f"{the_packet.get("STATE", "")}".strip()
494
+ ALTEREGO.contact["Exchange1"] = f'{the_packet.get("STATE", "")}'.strip()
495
495
  ALTEREGO.contact["ZN"] = the_packet.get("CQZ", "")
496
496
  ALTEREGO.contact["Mode"] = the_packet.get("MODE", "ERR")
497
497
  ALTEREGO.contact["Freq"] = round(float(the_packet.get("FREQ", "0.0")) * 1000, 2)
@@ -502,6 +502,6 @@ def ft8_handler(the_packet: dict):
502
502
  str(int(float(the_packet.get("FREQ", "0.0")) * 1000000))
503
503
  )
504
504
  logger.debug(f"{ALTEREGO.contact=}")
505
- ALTEREGO.other_1.setText(f"{the_packet.get("STX", "")}".strip())
506
- ALTEREGO.other_2.setText(f"{the_packet.get("SRX", "")}".strip())
505
+ ALTEREGO.other_1.setText(f'{the_packet.get("STX", "")}'.strip())
506
+ ALTEREGO.other_2.setText(f'{the_packet.get("SRX", "")}'.strip())
507
507
  ALTEREGO.save_contact()
@@ -477,7 +477,7 @@ def ft8_handler(the_packet: dict):
477
477
  ALTEREGO.contact["Call"] = the_packet.get("CALL", "")
478
478
  ALTEREGO.contact["SNT"] = ALTEREGO.sent.text()
479
479
  ALTEREGO.contact["RCV"] = ALTEREGO.receive.text()
480
- ALTEREGO.contact["Exchange1"] = f"{the_packet.get("STATE", "")}".strip()
480
+ ALTEREGO.contact["Exchange1"] = f'{the_packet.get("STATE", "")}'.strip()
481
481
  ALTEREGO.contact["ZN"] = the_packet.get("CQZ", "")
482
482
  ALTEREGO.contact["Mode"] = the_packet.get("MODE", "ERR")
483
483
  ALTEREGO.contact["Freq"] = round(float(the_packet.get("FREQ", "0.0")) * 1000, 2)
@@ -489,5 +489,5 @@ def ft8_handler(the_packet: dict):
489
489
  )
490
490
  logger.debug(f"{ALTEREGO.contact=}")
491
491
  ALTEREGO.other_1.setText(str(the_packet.get("CQZ", "ERR")))
492
- ALTEREGO.other_2.setText(f"{the_packet.get("STATE", "")}".strip())
492
+ ALTEREGO.other_2.setText(f'{the_packet.get("STATE", "")}'.strip())
493
493
  ALTEREGO.save_contact()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.10.5.1
3
+ Version: 24.10.8
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
@@ -219,6 +219,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
219
219
 
220
220
  ## Recent Changes
221
221
 
222
+ - [24-10-8] Fix crash on Tune to spot. Change placeholder text for the CW port for those unable to read documentation.
223
+ - [24-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
222
224
  - [24-10-5-1] Store the bandmap spots age timer in the preferences.
223
225
  - [24-10-5] Force reselction of contest after different DB opened.
224
226
  - [24-10-2] Add WPX RTTY.
@@ -567,7 +569,7 @@ onscreen icon for CAT status. Green good, Red bad, Grey neither.
567
569
  ### CW Keyer interface
568
570
 
569
571
  Under the `CW` TAB, There are three options. `cwdaemon`, which normally uses IP
570
- `127.0.0.1` and port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` and
572
+ `127.0.0.1`port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` port `8000` and
571
573
  `CAT` which if your radio supports it, sends Morse characters via rigctld. As far
572
574
  as I can tell rigctld does not support setting the radios internal keyer speed. So
573
575
  the CW speed control widget will not be functional and you'd need to control the
@@ -1,5 +1,5 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=8bgimshIW_mPwFTv6_j2cKutj3PNYyZgB3zqRzKrhKU,131487
2
+ not1mm/__main__.py,sha256=IjYrGDuq8T-Noe8gJ736-Mo7pyVepAHDGcMUigUGb-Y,131546
3
3
  not1mm/bandmap.py,sha256=P91rYGmd8r5K6TRNZt7kqqW6zCBVlFA1_n9-V7as1WE,31672
4
4
  not1mm/checkwindow.py,sha256=aI-nr8OF90IWV7R_XRdmitvBJ9M85evCs72HoU3Jnvc,10374
5
5
  not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
@@ -106,15 +106,15 @@ not1mm/lib/fldigi_watcher.py,sha256=reZz3fZLDoJVVZhJD9nIssk2aczCzadDSQTVu-5mTCM,
106
106
  not1mm/lib/ft8_watcher.py,sha256=BFmVIsnbwuRMWoe-dIBybuCgi0WFmr8Km0O9l4eiwMM,4624
107
107
  not1mm/lib/ham_utility.py,sha256=WMmYLDI_fJHHsn0wkpGVit2Hv8fo6r9ybexXROia8Cg,11967
108
108
  not1mm/lib/lookup.py,sha256=_Awt1HjiuSrhLTrwoF8EoFQC_bYYH1vqfAo_HSaMb00,10838
109
- not1mm/lib/multicast.py,sha256=bnFUNHyy82GmIb3_88EPBVVssj7-HzkJPaH671cK8Qw,3249
109
+ not1mm/lib/multicast.py,sha256=KJcruI-bOuHfHXPjl3SGQhL6I9sKrygy-sdFSvxffUM,3255
110
110
  not1mm/lib/n1mm.py,sha256=H54mpgJF0GAmKavM-nb5OAq2SJFWYkux4eMWWiSRxJc,6288
111
111
  not1mm/lib/new_contest.py,sha256=IznTDMq7yXHB6zBoGUEC_WDYPCPpsSZW4wwMJi16zK0,816
112
112
  not1mm/lib/playsound.py,sha256=kxkcitBFbZCXJ2wxQ1lxg4rBwfxiSpuNpJSXHOPCoXA,9241
113
113
  not1mm/lib/plugin_common.py,sha256=TbFUbftjELFt4QRdsjSHbqnXSngZOlSwlCTClqosDXA,9727
114
114
  not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
115
- not1mm/lib/settings.py,sha256=0Su8BQM4haVhc_P74q8UhzRZxtgWhM40UmVtQdMJQeM,10022
115
+ not1mm/lib/settings.py,sha256=YYAAdvhqlQ6y4GOJSxNmE4eDlgsIt2MvLxxOAbcpscY,11184
116
116
  not1mm/lib/super_check_partial.py,sha256=p5l3u2ZOCBtlWgbvskC50FpuoaIpR07tfC6zTdRWbh4,2334
117
- not1mm/lib/version.py,sha256=5uwpZq4lmKw9eq6mo-j6TGPKC-i7jRbA_5Tg5_AjOyo,50
117
+ not1mm/lib/version.py,sha256=UYQ03Ct1PZCaboAlM47NoWvd3H9bDtVzUrLc-mKQ5h8,48
118
118
  not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
119
119
  not1mm/plugins/10_10_fall_cw.py,sha256=IttjX1yy4nDdACGsiYlPteFG8eVseX_WtoFio6bqHE8,10953
120
120
  not1mm/plugins/10_10_spring_cw.py,sha256=ThCptdM3dX4ywhoy2JRcOEyHSqcJolFaT7O_PYzM1Mg,10958
@@ -135,10 +135,10 @@ not1mm/plugins/canada_day.py,sha256=OVpcCl1Chse_zLHf6PayTrgawWM4W-pmrTw40Al-o9s,
135
135
  not1mm/plugins/cq_160_cw.py,sha256=5s6rIZdJEnmWe1SI06BEyz7p5vP0N2n9mI4l_mZ0icw,14139
136
136
  not1mm/plugins/cq_160_ssb.py,sha256=zIwSMAjHSt6W2edrDzVbyTf860JowHoFkU9BKO8Enag,14182
137
137
  not1mm/plugins/cq_wpx_cw.py,sha256=9aNzAR-KhznIwUlxUFjAi_hbiw_6RrCMwUBk9I2f6Hs,14037
138
- not1mm/plugins/cq_wpx_rtty.py,sha256=d0YsC_RDNEhp0mFGxtm7Ao7tI8wEeJJOACYAXdSWiWw,16473
138
+ not1mm/plugins/cq_wpx_rtty.py,sha256=PpU_PxjQGeMjzbofYNsl-No37s7IgkPyW2bKFRkN9jU,16473
139
139
  not1mm/plugins/cq_wpx_ssb.py,sha256=-hGRovqHR9rfOUnG4LPOoABTb4heH8VAX6rYdJbCqsw,12687
140
140
  not1mm/plugins/cq_ww_cw.py,sha256=m4Xkqb_qFyXWEgkxqbanvtiCTvI8NNPKNXzHgFZzhnE,12340
141
- not1mm/plugins/cq_ww_rtty.py,sha256=N0togQbMSpRyRpGoYvnlGC3mpduR82g-D39Swtp5wjI,16772
141
+ not1mm/plugins/cq_ww_rtty.py,sha256=WnqSfCNX6ieLZlUg_P_vx-Z2iY0lxdwEgPuT9aax1JU,16772
142
142
  not1mm/plugins/cq_ww_ssb.py,sha256=hZwG88-hPLmwIGXHX_S_ty8Nhn1kIuPjSuTRpCWoN9g,12631
143
143
  not1mm/plugins/cwt.py,sha256=KvvkEfQrYSra0y8qE4yThvZNLrZcslt0IqYEomDpf-M,12774
144
144
  not1mm/plugins/general_logging.py,sha256=n-2es7erqK1ptwq_wwIKIwktptKN7ra2eWjAQlpXUac,3479
@@ -157,9 +157,9 @@ not1mm/plugins/ref_cw.py,sha256=aWjHHkqIKutjRUtzh09y5haFfnZK9poRQDWRQMDRxxU,1632
157
157
  not1mm/plugins/stew_perry_topband.py,sha256=CKBQbYl4ETxhXJd2dma4fg_C5pag_s7Nf61SCztZtqE,10668
158
158
  not1mm/plugins/weekly_rtty.py,sha256=DQcy3SY0Zn56EdlYGf3NxrRhTnkNa5IqRQPRQdKDSPs,14255
159
159
  not1mm/plugins/winter_field_day.py,sha256=4rcfRtobwjHO6BNL3WOTHzBmyyeuX79BNGBG8PfjrI8,10238
160
- not1mm-24.10.5.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
161
- not1mm-24.10.5.1.dist-info/METADATA,sha256=Cto5bth3V2_4VBPF_bV9cenpvAdRaLJ2xo_p6Xh3Mgk,30662
162
- not1mm-24.10.5.1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
163
- not1mm-24.10.5.1.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
164
- not1mm-24.10.5.1.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
165
- not1mm-24.10.5.1.dist-info/RECORD,,
160
+ not1mm-24.10.8.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
161
+ not1mm-24.10.8.dist-info/METADATA,sha256=Fkd1pSMlrrpa3X5I6LYhg_L0Ul2ZI1ntz1WJAjqCDJ8,30857
162
+ not1mm-24.10.8.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
163
+ not1mm-24.10.8.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
164
+ not1mm-24.10.8.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
165
+ not1mm-24.10.8.dist-info/RECORD,,