not1mm 24.3.15__py3-none-any.whl → 24.3.24__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 +288 -124
- not1mm/bandmap.py +207 -191
- not1mm/checkwindow.py +62 -109
- not1mm/data/MASTER.SCP +1077 -749
- not1mm/data/bandmap.ui +4 -4
- not1mm/data/checkwindow.ui +9 -16
- not1mm/data/cty.json +1 -1
- not1mm/data/logwindow.ui +16 -11
- not1mm/data/main.ui +16 -6
- not1mm/data/vfo.ui +64 -52
- not1mm/fsutils.py +63 -0
- not1mm/lib/about.py +4 -2
- not1mm/lib/cat_interface.py +1 -1
- not1mm/lib/cwinterface.py +1 -1
- not1mm/lib/database.py +4 -4
- not1mm/lib/edit_contact.py +2 -2
- not1mm/lib/edit_macro.py +2 -3
- not1mm/lib/edit_opon.py +2 -2
- not1mm/lib/edit_station.py +3 -3
- not1mm/lib/ham_utility.py +1 -1
- not1mm/lib/lookup.py +1 -1
- not1mm/lib/multicast.py +9 -4
- not1mm/lib/n1mm.py +1 -1
- not1mm/lib/new_contest.py +2 -2
- not1mm/lib/plugin_common.py +3 -2
- not1mm/lib/select_contest.py +2 -2
- not1mm/lib/settings.py +3 -4
- not1mm/lib/super_check_partial.py +8 -5
- not1mm/lib/version.py +1 -1
- not1mm/logwindow.py +62 -105
- not1mm/plugins/10_10_fall_cw.py +3 -1
- not1mm/plugins/10_10_spring_cw.py +3 -1
- not1mm/plugins/10_10_summer_phone.py +3 -1
- not1mm/plugins/10_10_winter_phone.py +3 -1
- not1mm/plugins/arrl_10m.py +3 -1
- not1mm/plugins/arrl_dx_cw.py +3 -1
- not1mm/plugins/arrl_dx_ssb.py +3 -1
- not1mm/plugins/arrl_field_day.py +3 -1
- not1mm/plugins/arrl_ss_cw.py +3 -1
- not1mm/plugins/arrl_ss_phone.py +3 -1
- not1mm/plugins/arrl_vhf_jan.py +3 -1
- not1mm/plugins/arrl_vhf_jun.py +3 -1
- not1mm/plugins/arrl_vhf_sep.py +3 -1
- not1mm/plugins/canada_day.py +3 -1
- not1mm/plugins/cq_160_cw.py +4 -2
- not1mm/plugins/cq_160_ssb.py +4 -2
- not1mm/plugins/cq_wpx_cw.py +3 -1
- not1mm/plugins/cq_wpx_ssb.py +3 -1
- not1mm/plugins/cq_ww_cw.py +3 -1
- not1mm/plugins/cq_ww_ssb.py +3 -1
- not1mm/plugins/cwt.py +3 -1
- not1mm/plugins/general_logging.py +1 -1
- not1mm/plugins/iaru_hf.py +3 -1
- not1mm/plugins/jidx_cw.py +3 -1
- not1mm/plugins/jidx_ph.py +3 -1
- not1mm/plugins/naqp_cw.py +3 -1
- not1mm/plugins/naqp_ssb.py +3 -1
- not1mm/plugins/phone_weekly_test.py +3 -1
- not1mm/plugins/stew_perry_topband.py +3 -1
- not1mm/plugins/winter_field_day.py +3 -1
- not1mm/vfo.py +78 -98
- {not1mm-24.3.15.dist-info → not1mm-24.3.24.dist-info}/METADATA +68 -55
- {not1mm-24.3.15.dist-info → not1mm-24.3.24.dist-info}/RECORD +69 -67
- testing/detectdark.py +35 -0
- testing/test.py +13 -11
- {not1mm-24.3.15.dist-info → not1mm-24.3.24.dist-info}/LICENSE +0 -0
- {not1mm-24.3.15.dist-info → not1mm-24.3.24.dist-info}/WHEEL +0 -0
- {not1mm-24.3.15.dist-info → not1mm-24.3.24.dist-info}/entry_points.txt +0 -0
- {not1mm-24.3.15.dist-info → not1mm-24.3.24.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.3.
|
3
|
+
Version: 24.3.24
|
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
|
@@ -27,6 +27,7 @@ Requires-Dist: soundfile
|
|
27
27
|
Requires-Dist: numpy
|
28
28
|
Requires-Dist: notctyparser >=23.6.21
|
29
29
|
Requires-Dist: rapidfuzz
|
30
|
+
Requires-Dist: appdata
|
30
31
|
|
31
32
|
# Not1MM
|
32
33
|
|
@@ -47,19 +48,16 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
|
|
47
48
|
- [Our Code Contributors ✨](#our-code-contributors-)
|
48
49
|
- [List of should be working contests](#list-of-should-be-working-contests)
|
49
50
|
- [Recent Changes](#recent-changes)
|
50
|
-
- [
|
51
|
-
- [Python and
|
52
|
-
- [
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
- [Installation](#installation)
|
52
|
+
- [Python, PyPI, pip and pipx](#python-pypi-pip-and-pipx)
|
53
|
+
- [Bootstrapping pipx](#bootstrapping-pipx)
|
54
|
+
- [Installing with pipx](#installing-with-pipx)
|
55
|
+
- [Installing portaudio](#installing-portaudio)
|
56
|
+
- [After install](#after-install)
|
56
57
|
- [You may or may not get a warning message like](#you-may-or-may-not-get-a-warning-message-like)
|
57
58
|
- [Or this fan favorite](#or-this-fan-favorite)
|
58
|
-
- [Updating with pip/pipx](#updating-with-pippipx)
|
59
|
-
- [Other Libraries](#other-libraries)
|
60
|
-
- [Dark mode on Ubuntu](#dark-mode-on-ubuntu)
|
61
59
|
- [Wayland Compositor](#wayland-compositor)
|
62
|
-
|
60
|
+
- [Running from source](#running-from-source)
|
63
61
|
- [Various data file locations](#various-data-file-locations)
|
64
62
|
- [Data](#data)
|
65
63
|
- [Config](#config)
|
@@ -70,13 +68,14 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
|
|
70
68
|
- [Revisiting an old friend](#revisiting-an-old-friend)
|
71
69
|
- [Station Settings dialog (REQUIRED)](#station-settings-dialog-required)
|
72
70
|
- [Changing station information](#changing-station-information)
|
73
|
-
- [
|
74
|
-
|
75
|
-
|
71
|
+
- [Selecting a contest (REQUIRED)](#selecting-a-contest-required)
|
72
|
+
- [Selecting a new contest](#selecting-a-new-contest)
|
73
|
+
- [Selecting an existing contest as the current contest](#selecting-an-existing-contest-as-the-current-contest)
|
74
|
+
- [Editing existing contest parameters](#editing-existing-contest-parameters)
|
76
75
|
- [Configuration Settings](#configuration-settings)
|
77
76
|
- [Lookup](#lookup)
|
78
77
|
- [Soundcard](#soundcard)
|
79
|
-
- [CAT](#cat)
|
78
|
+
- [CAT Control](#cat-control)
|
80
79
|
- [CW Keyer interface](#cw-keyer-interface)
|
81
80
|
- [Cluster](#cluster)
|
82
81
|
- [N1MM Packets](#n1mm-packets)
|
@@ -89,7 +88,7 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
|
|
89
88
|
- [Other uses for the call field](#other-uses-for-the-call-field)
|
90
89
|
- [Windows](#windows)
|
91
90
|
- [The Main Window](#the-main-window)
|
92
|
-
|
91
|
+
- [Keyboard commands](#keyboard-commands)
|
93
92
|
- [Log Display](#log-display)
|
94
93
|
- [Editing a contact](#editing-a-contact)
|
95
94
|
- [Recalulate Mults](#recalulate-mults)
|
@@ -168,6 +167,11 @@ I wish to thank those who've contributed to the project.
|
|
168
167
|
|
169
168
|
## Recent Changes
|
170
169
|
|
170
|
+
- [24-3-24] Reworked fsutil.py to correct directory paths for Linux.
|
171
|
+
- [24-3-23] Yanked version 24-3-21, too many bugs for existing userbase.
|
172
|
+
- [24-3-21] Merged PR from @kyleboyle for docking windows. MacOS and Windows support.
|
173
|
+
- [24-3-19] Removed some useless bloat causing slow interface on FreeBSD 13/14 and maybe others.
|
174
|
+
- [24-3-16] Add Save/Fail confirmation dialogs when saving ADIF of Cabrillo files.
|
171
175
|
- [24-3-15] Change 'CWR' to 'CW' in the ADIF output.
|
172
176
|
- [24-3-13] Added CQ 160 CW and SSB
|
173
177
|
- [24-3-9] Marked calls in the bandmap window colored Blue, until worked.
|
@@ -177,43 +181,64 @@ I wish to thank those who've contributed to the project.
|
|
177
181
|
|
178
182
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
179
183
|
|
180
|
-
##
|
184
|
+
## Installation
|
181
185
|
|
182
|
-
### Python and
|
186
|
+
### Python, PyPI, pip and pipx
|
183
187
|
|
184
|
-
This software is a Python package hosted on
|
188
|
+
This software is a Python package hosted on PyPI, and installable with the pip or pipx command. If this is your first exposure to Python packaging you can get all the details from:
|
185
189
|
|
186
|
-
|
190
|
+
- [The PyPA](https://packaging.python.org/en/latest/tutorials/installing-packages/)
|
191
|
+
- [Install packages in a virtual environment using pip and venv](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/)
|
192
|
+
- [Installing stand alone command line tools](https://packaging.python.org/en/latest/guides/installing-stand-alone-command-line-tools/)
|
187
193
|
|
188
|
-
|
194
|
+
In short, You should install stuff into a Python virtual environment. Newer Linux distros will make you do this unless you include a command line argument akin to '--break-my-system' when using pip. I'm not telling you to use pipx. But... **Use pipx**.
|
189
195
|
|
190
|
-
|
196
|
+
### Bootstrapping pipx
|
197
|
+
|
198
|
+
Assuming you have only Python installed, your path to pipx is:
|
191
199
|
|
192
200
|
```bash
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
pip
|
201
|
+
# First get pip installed. Either with apt or dnf, or the ensurepip command.
|
202
|
+
python3 -m ensurepip
|
203
|
+
|
204
|
+
# Update the pip that was just installed.
|
205
|
+
python3 -m pip install --upgrade pip
|
206
|
+
|
207
|
+
# Install pipx
|
208
|
+
python3 -m pip install --user pipx
|
209
|
+
python3 -m pipx ensurepath
|
197
210
|
```
|
198
211
|
|
199
|
-
|
212
|
+
### Installing with pipx
|
213
|
+
|
214
|
+
Then installing not1mm is as simple as:
|
200
215
|
|
201
216
|
```bash
|
202
|
-
|
203
|
-
sudo apt upgrade
|
204
|
-
sudo apt install -y libportaudio2 adwaita-qt pipx
|
217
|
+
# Install not1mm
|
205
218
|
pipx install not1mm
|
206
|
-
pipx ensurepath
|
207
219
|
```
|
208
220
|
|
209
|
-
|
221
|
+
If you need to later update not1mm, you can do so with:
|
222
|
+
|
223
|
+
```bash
|
224
|
+
# Update not1mm
|
225
|
+
pipx upgrade not1mm
|
226
|
+
```
|
227
|
+
|
228
|
+
### Installing portaudio
|
229
|
+
|
230
|
+
not1mm uses portaudio to play audio. You can install it with:
|
210
231
|
|
211
232
|
```bash
|
212
|
-
|
233
|
+
# Ubuntu
|
234
|
+
sudo apt install -y libportaudio2
|
235
|
+
|
236
|
+
# Fedora
|
213
237
|
sudo dnf install python3-pip portaudio
|
214
|
-
pip install not1mm
|
215
238
|
```
|
216
239
|
|
240
|
+
## After install
|
241
|
+
|
217
242
|
You can now open a new terminal and type `not1mm`. On it's first run, it may or may not install a lovely non AI generated
|
218
243
|
icon, which you can later click on to launch the application.
|
219
244
|
|
@@ -240,27 +265,13 @@ To avoid this you can export an environment variable and launch the app like thi
|
|
240
265
|
|
241
266
|
For a more permanent solution you can place the line `export QT_QPA_PLATFORM=wayland` in your home directories .bashrc file. Then after logging out and back in you should be able to launch it normally.
|
242
267
|
|
243
|
-
### Updating with pip/pipx
|
244
|
-
|
245
|
-
I've been posting updates just about everyday. Sometimes multiple times a day. It's early days, so there is much to do. You can check for and install updates with `pip install -U not1mm` or if installed with pipx `pipx upgrade not1mm`.
|
246
|
-
|
247
|
-
## Other Libraries
|
248
|
-
|
249
|
-
The audio library used, uses pipewire/portaudio. You may need to install portaudio. Ubuntu: `sudo apt install libportaudio2`
|
250
|
-
|
251
|
-
### Dark mode on Ubuntu
|
252
|
-
|
253
|
-
I believe I figured out dark mode in Ubuntu and have it working on my shack PC that runs Ubuntu 22.04. The secret sauce seems to be installing adwaita-qt with apt, and setting an environment variable `QT_STYLE_OVERRIDE` to `Adwaita-Dark`. I set the environment variable in the start of the program if running on a Gnome platform. So you don't need to do that part.
|
254
|
-
|
255
|
-
Or see this discussion [darkmode](https://github.com/mbridak/not1mm/discussions/60).
|
256
|
-
|
257
268
|
## Wayland Compositor
|
258
269
|
|
259
270
|
One side effect of Wayland is that we are not able to request for a window to regain or retain focus. So if you were to click on a spot in the bandmap window to tune to that spot, you would have to then click on the main window to continue entering contest data. I'm aware of this, but I can not change it.
|
260
271
|
|
261
|
-
|
272
|
+
### Running from source
|
262
273
|
|
263
|
-
Since this is packaged for
|
274
|
+
Since this is packaged for PyPI, if you want to work on your own source branch, after cloning from github you would:
|
264
275
|
|
265
276
|
```bash
|
266
277
|
pip install --upgrade pip
|
@@ -329,19 +340,21 @@ You can fill. You can fill. Everyone look at your keys.
|
|
329
340
|
|
330
341
|
Station information can be changed any time by going to `File` > `Station Settings` and editing the information.
|
331
342
|
|
332
|
-
##
|
343
|
+
## Selecting a contest (REQUIRED)
|
344
|
+
|
345
|
+
### Selecting a new contest
|
333
346
|
|
334
347
|
Select `File` > `New Contest`
|
335
348
|
|
336
349
|

|
337
350
|
|
338
|
-
|
351
|
+
### Selecting an existing contest as the current contest
|
339
352
|
|
340
353
|
Select `File` > `Open Contest`
|
341
354
|
|
342
355
|

|
343
356
|
|
344
|
-
|
357
|
+
### Editing existing contest parameters
|
345
358
|
|
346
359
|
You can edit the parameters of a previously defined contest by selecting it as the current contest. Then select `File` > `Edit Current Contest`. Click `OK` to save the new values and reload the contest. `Cancel` to keep the existing parameters.
|
347
360
|
|
@@ -361,7 +374,7 @@ For callsign lookup, Two services are supported. QRZ and HamQTH. They require a
|
|
361
374
|
|
362
375
|
Choose the sound output device for the voice keyer.
|
363
376
|
|
364
|
-
### CAT
|
377
|
+
### CAT Control
|
365
378
|
|
366
379
|
Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of `127.0.0.1` and a port of `4532`. Or `flrig`, IP normally of `127.0.0.1` and a port of `12345`. `None` is always an option, but is it really? There's an onscreen icon for CAT status. Green good, Red bad, Grey neither.
|
367
380
|
|
@@ -444,7 +457,7 @@ After this, a request is made to QRZ for the gridsquare of the callsign. If ther
|
|
444
457
|
|
445
458
|

|
446
459
|
|
447
|
-
|
460
|
+
### Keyboard commands
|
448
461
|
|
449
462
|
| Key | Result |
|
450
463
|
| -------------- | --- |
|
@@ -1,19 +1,20 @@
|
|
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=
|
5
|
-
not1mm/
|
6
|
-
not1mm/
|
2
|
+
not1mm/__main__.py,sha256=rbAS_BogM6bnkhvKuTpyaDeW5kJhkXy-vc7wpGmiGdw,115699
|
3
|
+
not1mm/bandmap.py,sha256=RsvKJpSuz3mveB_FWPZBpujlctO91KP6JVKfmGbuKKY,32117
|
4
|
+
not1mm/checkwindow.py,sha256=I7f82yO-ODwVbLH9YrNxIyoI34g9G6F3odmu5h_jVGI,7376
|
5
|
+
not1mm/fsutils.py,sha256=Li8Tq9K7c_q7onOHOQ7u1dOOFfhIIz5Aj2LKuQtGOO4,1652
|
6
|
+
not1mm/logwindow.py,sha256=y5xqnGPoHGSzcw6lHl7GPSsVsWyn_bxHm0PVFenjm20,43657
|
7
|
+
not1mm/vfo.py,sha256=9Z7osgvzfk0Vh8DFbx7uoWCdyyzj4PEnfkfQk5ldv60,11530
|
7
8
|
not1mm/data/JetBrainsMono-Regular.ttf,sha256=UOHctAKY_PzCGh7zy-6f6egnCcSK0wzmF0csBqO9lDY,203952
|
8
|
-
not1mm/data/MASTER.SCP,sha256=
|
9
|
+
not1mm/data/MASTER.SCP,sha256=1vQRvEZ865brfmmajp-Lj-hgWejVGI992q8o971bUV8,366478
|
9
10
|
not1mm/data/about.ui,sha256=7TqvtXFFm0Rmcu0bmLupwpO1CsK8MekfZ09_xn6kZrQ,2067
|
10
11
|
not1mm/data/alpha bravo charlie delta.txt,sha256=d5QMmSWEUAe4Rj1XbNjTPLa_5Be4Se6u5LUIqAYidOQ,224
|
11
|
-
not1mm/data/bandmap.ui,sha256=
|
12
|
+
not1mm/data/bandmap.ui,sha256=X6BpebEQLc77OF37a_25JTndL5LPc6PJUaIF9THogQs,6746
|
12
13
|
not1mm/data/check.png,sha256=UvFOLr8V-79qnjW8wUaGItXk_OSP8m8hqPevs8NDlFY,387
|
13
|
-
not1mm/data/checkwindow.ui,sha256=
|
14
|
+
not1mm/data/checkwindow.ui,sha256=_a22PpCNxO2TrXL0n9xT6JDkCuck2vAIrCmTf0ffAmo,2564
|
14
15
|
not1mm/data/configuration.ui,sha256=DJZxA4zZPb4sTdVn17j1fwaTw-5lJCNQ6PspQrsdMe4,51643
|
15
16
|
not1mm/data/contests.sql,sha256=4hmJCDvrbxnA_Y5S4T5o52TZieeFk6QUwFerwlFePNA,89307
|
16
|
-
not1mm/data/cty.json,sha256=
|
17
|
+
not1mm/data/cty.json,sha256=CGf_bvqr_qfr0kXLQC0JGW1BWSX-1Ce8qZwDMMN7tuM,4783134
|
17
18
|
not1mm/data/cwmacros.txt,sha256=PvJ7TxGILq-ErHb6Gbrm-08x76BbCdXb8AY8a7st5mg,451
|
18
19
|
not1mm/data/donors.html,sha256=8hNzO3Q5a6p-_3egT1hfOjimPf810tKMUM5ukLzUsGM,116
|
19
20
|
not1mm/data/editcontact.ui,sha256=ax-pm4TeECpHl3LSb5z4L403WjPWXZ9KV2it_6gIjqk,27404
|
@@ -23,8 +24,8 @@ not1mm/data/k6gte-not1mm.desktop,sha256=bSiSG7PzGygv0bBaF7Nf48PApVyrobSBVNk7j7wR
|
|
23
24
|
not1mm/data/k6gte.not1mm-128.png,sha256=ZP93MfRqr4WwsFCwg1m5MZjLs8bG895vDW9DDDn1B_Q,6076
|
24
25
|
not1mm/data/k6gte.not1mm-32.png,sha256=XdTsCa3xqwTfn26Ga7RwO_Vlbg_77RKkSc8bMxVcCac,1526
|
25
26
|
not1mm/data/k6gte.not1mm-64.png,sha256=6ku45Gq1g5ezh04F07osoKRtanb3e4kbx5XdIEh3N90,2925
|
26
|
-
not1mm/data/logwindow.ui,sha256=
|
27
|
-
not1mm/data/main.ui,sha256=
|
27
|
+
not1mm/data/logwindow.ui,sha256=hC_G_4UCxBogUrQ4NX-pY1cXVGQOltbRF361HbZG2cI,1229
|
28
|
+
not1mm/data/main.ui,sha256=X9sNqSZyKennX-7Ne4c8yLnkbN13T5YpDUeri-wPOn4,54070
|
28
29
|
not1mm/data/new_contest.ui,sha256=Xubngdbs_V_-o8huXzKOOaQOfj1NSXu9giIcaL4d0qk,21823
|
29
30
|
not1mm/data/not1mm.html,sha256=c9-mfjMwDt4f5pySUruz2gREW33CQ2_rCddM2z5CZQo,23273
|
30
31
|
not1mm/data/opon.ui,sha256=mC4OhoVIfR1H9IqHAKXliPMm8VOVmxSEadpsFQ7XnS4,2247
|
@@ -35,7 +36,7 @@ not1mm/data/radio_red.png,sha256=QvkMk7thd_hCEIyK5xGAG4xVVXivl39nwOfD8USDI20,957
|
|
35
36
|
not1mm/data/reddot.png,sha256=M33jEMoU8W4rQ4_MVyzzKxDPDte1ypKBch5VnUMNLKE,565
|
36
37
|
not1mm/data/settings.ui,sha256=7r4aZwxKUHQGm8NLQGLINurGMvT_5VMU9p2dznW25bA,40028
|
37
38
|
not1mm/data/ssbmacros.txt,sha256=0Qccj4y0nlK-w5da9a9ti-jILkURtwztoDuL_D0pEJM,470
|
38
|
-
not1mm/data/vfo.ui,sha256=
|
39
|
+
not1mm/data/vfo.ui,sha256=f18m5r3gMbm0xtPJAZH1qVvOggK24XKBL7OGmip_Ks8,2405
|
39
40
|
not1mm/data/phonetics/0.wav,sha256=0OpYiR-3MK6fVHE6MB-HeOxSAPiDNMjqvx5JcIZtsQk,42590
|
40
41
|
not1mm/data/phonetics/1.wav,sha256=OEAavA8cfVxFZwaT0HY9Wg9NAGEPKBhwhEdzGXkQs_U,30248
|
41
42
|
not1mm/data/phonetics/2.wav,sha256=AmCfvo8y8BT9OlHkCs_N4y_mUAjmyG_x9ahbgiwU2FE,29584
|
@@ -85,68 +86,69 @@ not1mm/data/phonetics/y.wav,sha256=QINogHdj01-zkUX9E3fnVTzjGM8wc5F5NEGz-bSd3Ng,5
|
|
85
86
|
not1mm/data/phonetics/yourcall.wav,sha256=4kheHJmCiRDL2kjhlgXQ8_u_eEMgKxiNGu5UBk9k08E,46510
|
86
87
|
not1mm/data/phonetics/z.wav,sha256=arafCi7fwmBLdVDI-PRyaL4U-03PIQDhffwY5noJ_2c,51768
|
87
88
|
not1mm/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
|
-
not1mm/lib/about.py,sha256=
|
89
|
-
not1mm/lib/cat_interface.py,sha256=
|
90
|
-
not1mm/lib/cwinterface.py,sha256=
|
91
|
-
not1mm/lib/database.py,sha256=
|
92
|
-
not1mm/lib/edit_contact.py,sha256=
|
93
|
-
not1mm/lib/edit_macro.py,sha256=
|
94
|
-
not1mm/lib/edit_opon.py,sha256=
|
95
|
-
not1mm/lib/edit_station.py,sha256=
|
96
|
-
not1mm/lib/ham_utility.py,sha256=
|
97
|
-
not1mm/lib/lookup.py,sha256=
|
98
|
-
not1mm/lib/multicast.py,sha256=
|
99
|
-
not1mm/lib/n1mm.py,sha256=
|
100
|
-
not1mm/lib/new_contest.py,sha256=
|
101
|
-
not1mm/lib/plugin_common.py,sha256=
|
102
|
-
not1mm/lib/select_contest.py,sha256=
|
103
|
-
not1mm/lib/settings.py,sha256=
|
104
|
-
not1mm/lib/super_check_partial.py,sha256=
|
105
|
-
not1mm/lib/version.py,sha256=
|
89
|
+
not1mm/lib/about.py,sha256=3PSyHeNS9BIqhyY4QCm1a5Tzr7jMDOrkKnUWJh4j5lg,416
|
90
|
+
not1mm/lib/cat_interface.py,sha256=dr5bBcObNtRWVHr9A5kq9GCq0wQfOOfVhkrEAzJez90,15127
|
91
|
+
not1mm/lib/cwinterface.py,sha256=Seupz7tMkCvJ80mgmyaNU_1AUADsvNPkAfwDSlwibF0,3126
|
92
|
+
not1mm/lib/database.py,sha256=RQoj3JsTejMiiFIN42lY3N4jrj80htftdoFeRqVKnKs,42480
|
93
|
+
not1mm/lib/edit_contact.py,sha256=W4SrP3MHO0o87d02_9APx5pDaBPiCGwCNgMazTduFYA,353
|
94
|
+
not1mm/lib/edit_macro.py,sha256=1wyKiLYyTCvoVeIYRfZ7cu-OyfwDVEq6dsbeRyOdyXc,517
|
95
|
+
not1mm/lib/edit_opon.py,sha256=2_oJIpTbaXccPWvc4f9C_tRp2TFXHlhwL8xOvQrUmJI,359
|
96
|
+
not1mm/lib/edit_station.py,sha256=DQ-HW6RxIagyFHxj34-Ocbc5mXM11UsJ7ptXCreDeTQ,1964
|
97
|
+
not1mm/lib/ham_utility.py,sha256=pUrysod3wGk4BYOWDAKJxZZTiUNDE4ZzRk8S5ZnllNA,10978
|
98
|
+
not1mm/lib/lookup.py,sha256=WyLfb4i763fyRR9_QjV4eLexNxwsEcPUpuycevGuntw,13775
|
99
|
+
not1mm/lib/multicast.py,sha256=w4uFeZhjBFa_s5ltNGe2mTrG4r5xA2POtrxNLFKG8aQ,3196
|
100
|
+
not1mm/lib/n1mm.py,sha256=V1NiNyOHaPNYKe_vRsq44O1R42N8uS5PlfRa5Db4Tv0,5712
|
101
|
+
not1mm/lib/new_contest.py,sha256=EMiSYHijebaOZJBBJ2M94PZ9fmIr-EjonNPke2yEMto,350
|
102
|
+
not1mm/lib/plugin_common.py,sha256=AAKBPCXzTWZJb-h08uPNnHVG7bSCg7kwukc211gFivY,8605
|
103
|
+
not1mm/lib/select_contest.py,sha256=Ezc7MTZXEbQ_nXK7gmghalqfbbDyxp0pAVt0-chBJOw,359
|
104
|
+
not1mm/lib/settings.py,sha256=9dyXiUZcrR57EVemGDrO2ad3HSMQbe5ngl_bxtZtEic,8877
|
105
|
+
not1mm/lib/super_check_partial.py,sha256=p5l3u2ZOCBtlWgbvskC50FpuoaIpR07tfC6zTdRWbh4,2334
|
106
|
+
not1mm/lib/version.py,sha256=SJ-JVOSCJswtOP_VbxWQ4ULRpIw-sBsATLBtG4Kd5vg,48
|
106
107
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
107
|
-
not1mm/plugins/10_10_fall_cw.py,sha256=
|
108
|
-
not1mm/plugins/10_10_spring_cw.py,sha256=
|
109
|
-
not1mm/plugins/10_10_summer_phone.py,sha256=
|
110
|
-
not1mm/plugins/10_10_winter_phone.py,sha256=
|
108
|
+
not1mm/plugins/10_10_fall_cw.py,sha256=pG0cFmTNOFO03wXcI1a3EEaT1QK83yWIsrSdqCOU-gg,10834
|
109
|
+
not1mm/plugins/10_10_spring_cw.py,sha256=aWTohVrnZpT0SlQuqq7zxQaYe4SExEkOl3NI8xYYJWI,10840
|
110
|
+
not1mm/plugins/10_10_summer_phone.py,sha256=HMJYIC8hxQbc31BJv6f1BaZora8YWrDvptQPabNvjk4,10848
|
111
|
+
not1mm/plugins/10_10_winter_phone.py,sha256=csiQlznP7yOBqEhoEHvd5LKQ_2NGJk8Tul3xTwZO-Ug,10851
|
111
112
|
not1mm/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
112
|
-
not1mm/plugins/arrl_10m.py,sha256=
|
113
|
-
not1mm/plugins/arrl_dx_cw.py,sha256=
|
114
|
-
not1mm/plugins/arrl_dx_ssb.py,sha256
|
115
|
-
not1mm/plugins/arrl_field_day.py,sha256=
|
113
|
+
not1mm/plugins/arrl_10m.py,sha256=EUmP3LFDqhL2mJxhsvN3dPEXJpfiazAoVMKHBipVoas,13643
|
114
|
+
not1mm/plugins/arrl_dx_cw.py,sha256=cNdVo58bbllTM4HzxVtnpwnlcBFGbh83isWSrDPaIEE,13688
|
115
|
+
not1mm/plugins/arrl_dx_ssb.py,sha256=Qw-jgCJ7isiVr-8wyQ1xuWpLJN3qlDucy0621sDL2Uc,13691
|
116
|
+
not1mm/plugins/arrl_field_day.py,sha256=sMBVPoCUkL6_3YNRNWdrdQNvEBM1aXGlC_eEgRmrPLs,10026
|
116
117
|
not1mm/plugins/arrl_rtty_ru.py,sha256=9v9wApmUZHAKX4t_O6hVqBnT7v5bqAGV8SjgDhfOuMs,7974
|
117
|
-
not1mm/plugins/arrl_ss_cw.py,sha256=
|
118
|
-
not1mm/plugins/arrl_ss_phone.py,sha256=
|
119
|
-
not1mm/plugins/arrl_vhf_jan.py,sha256=
|
120
|
-
not1mm/plugins/arrl_vhf_jun.py,sha256=
|
121
|
-
not1mm/plugins/arrl_vhf_sep.py,sha256=
|
122
|
-
not1mm/plugins/canada_day.py,sha256=
|
123
|
-
not1mm/plugins/cq_160_cw.py,sha256=
|
124
|
-
not1mm/plugins/cq_160_ssb.py,sha256=
|
125
|
-
not1mm/plugins/cq_wpx_cw.py,sha256=
|
126
|
-
not1mm/plugins/cq_wpx_ssb.py,sha256=
|
127
|
-
not1mm/plugins/cq_ww_cw.py,sha256=
|
128
|
-
not1mm/plugins/cq_ww_ssb.py,sha256=
|
129
|
-
not1mm/plugins/cwt.py,sha256=
|
130
|
-
not1mm/plugins/general_logging.py,sha256=
|
131
|
-
not1mm/plugins/iaru_hf.py,sha256=
|
132
|
-
not1mm/plugins/jidx_cw.py,sha256=
|
133
|
-
not1mm/plugins/jidx_ph.py,sha256=
|
134
|
-
not1mm/plugins/naqp_cw.py,sha256=
|
135
|
-
not1mm/plugins/naqp_ssb.py,sha256=
|
136
|
-
not1mm/plugins/phone_weekly_test.py,sha256=
|
137
|
-
not1mm/plugins/stew_perry_topband.py,sha256=
|
138
|
-
not1mm/plugins/winter_field_day.py,sha256=
|
118
|
+
not1mm/plugins/arrl_ss_cw.py,sha256=epwosJmLhrVBY5lVdRkT_z8vJzxUxbmwiK1PJz_LLzQ,13143
|
119
|
+
not1mm/plugins/arrl_ss_phone.py,sha256=oVw2z1IEc6-7GU-JM2PiOE83tob5JJcHXYPMf03x6fQ,13149
|
120
|
+
not1mm/plugins/arrl_vhf_jan.py,sha256=zGFYQ83F9tt-zM_1oL5n8c0gAyvekxF7WPAAEA79GT0,12438
|
121
|
+
not1mm/plugins/arrl_vhf_jun.py,sha256=zpIUoGIlRK9UN9BhhzfZlgfxvEJXO1Xl0U_CaD7doXI,11457
|
122
|
+
not1mm/plugins/arrl_vhf_sep.py,sha256=a3i5wmVWkEfo4A_3Hi4WS-6dQBCXdV_62SHhYTMclR4,11457
|
123
|
+
not1mm/plugins/canada_day.py,sha256=oyIPi73IoiF3-puYzcvXLVkchAeqemRvhHZPZvdICzc,11869
|
124
|
+
not1mm/plugins/cq_160_cw.py,sha256=I-z7Z3R3jEPL6qBChY9H4F3AW_gvEdrkYuDQ2EmtO2o,14018
|
125
|
+
not1mm/plugins/cq_160_ssb.py,sha256=nxIVfpF_QGR0gige5lUf1oEYRpT05eWtxCNUA7sjW_4,14061
|
126
|
+
not1mm/plugins/cq_wpx_cw.py,sha256=Ftw08EU8vYUIYgzJ-Olkt-qCWtfyBtFEGACQV-GMjA0,12378
|
127
|
+
not1mm/plugins/cq_wpx_ssb.py,sha256=zMh31RweV6EIORLfMUHFKzg7v4d-43H_N75r6wCLx2I,12466
|
128
|
+
not1mm/plugins/cq_ww_cw.py,sha256=gQ5XUfRXHER7dJzAbv8xx6WKlbNzoT0VmEmxYnMENpw,11083
|
129
|
+
not1mm/plugins/cq_ww_ssb.py,sha256=dsE-KIDk2_Zpx-x8R7LwAMpP0lNn5D0qz3okZ_iS-YM,11088
|
130
|
+
not1mm/plugins/cwt.py,sha256=abiNdx8lPSONkoSQZI-tV3nL2tMOgybOEY9LErqiAww,11976
|
131
|
+
not1mm/plugins/general_logging.py,sha256=kC3Gl-dxV9FwzkjOTLQwS3eHx3LLNrq6s5jPuT4Qn00,3369
|
132
|
+
not1mm/plugins/iaru_hf.py,sha256=M5c8FiyMyoIcUkV5-g5-nZ-ufW0ug4hTwVmY2awJY_c,11433
|
133
|
+
not1mm/plugins/jidx_cw.py,sha256=qHNJW6OnXzBdFQiL0Ua9c7cWkQuTPyKCDibma1OwumE,11049
|
134
|
+
not1mm/plugins/jidx_ph.py,sha256=UbawmW7obhjkRLa43V8o8rdkfReIKp_SM7k3EeLxAN8,11051
|
135
|
+
not1mm/plugins/naqp_cw.py,sha256=73aTpREZVtDqfEGYLGekqRLksEenpJ7EkIyZ2Zs4DMM,11472
|
136
|
+
not1mm/plugins/naqp_ssb.py,sha256=pof1k6Eg_MDQXSaCOJLh1jfVyyIri0LdHYrZQu7P_gs,11477
|
137
|
+
not1mm/plugins/phone_weekly_test.py,sha256=EfLQzKREEXO_Ljg-q3VWg87JfbPVar9ydNhCdmHCrt8,12278
|
138
|
+
not1mm/plugins/stew_perry_topband.py,sha256=bjcImkZhBXpw4XKogs85mpShz7QgYbVohvhFMQ050DI,10546
|
139
|
+
not1mm/plugins/winter_field_day.py,sha256=7JK-RS1abcj1xQLnTF8rIPHRpDzmp4sAFBBML8b-Lwk,10212
|
139
140
|
not1mm/testing/fakeflrig.py,sha256=_vJHGjARpSNxSZngkHNO_kkHoVnqtf--T6gwTAYnnZQ,2083
|
140
141
|
not1mm/testing/flrigclient.py,sha256=24r_0HqpoTjyJ6Bqg_HIC8Nn9wjtnwwWQ26I7UprwgA,1658
|
141
142
|
not1mm/testing/multicast_listener.py,sha256=2CkiyZ4EQxBX68_1QzGIX9g_UB9-CQq63OH-pUY3FiU,1051
|
142
143
|
not1mm/testing/n1mm_listener.py,sha256=UD-qyKEnppQua330WEFKMvMJaNjnYKi7dDuX_RGB5lQ,1099
|
143
144
|
not1mm/testing/simulant.py,sha256=kBqCZTe3ADEuHUsh9ygY9usn-jKe4EKRh7-L6tY6iYE,10948
|
144
145
|
not1mm/testing/test.py,sha256=97xdCpTVIWx1CUMU7JBrn9PMU7DqWnz6zO96XificC4,99
|
145
|
-
testing/
|
146
|
+
testing/detectdark.py,sha256=d2oUDqLkDLMCTFjW3lSJgaf-PgLDrk71gw2Cess5itY,895
|
147
|
+
testing/test.py,sha256=VkkKwKTJ4lqB7ozS9OEqy3NH67xU-_Dq0xkixKUdjrY,312
|
146
148
|
usb_vfo_knob/code.py,sha256=h59iPPlcYbkXmRcYPQHDBP0yfLEl7fY3VkiIszdQeyI,1057
|
147
|
-
not1mm-24.3.
|
148
|
-
not1mm-24.3.
|
149
|
-
not1mm-24.3.
|
150
|
-
not1mm-24.3.
|
151
|
-
not1mm-24.3.
|
152
|
-
not1mm-24.3.
|
149
|
+
not1mm-24.3.24.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
150
|
+
not1mm-24.3.24.dist-info/METADATA,sha256=LfWsz-7TEAcL2fUCqG5NAun_8v7-m7JqjC84B5O6vWA,25905
|
151
|
+
not1mm-24.3.24.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
152
|
+
not1mm-24.3.24.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
153
|
+
not1mm-24.3.24.dist-info/top_level.txt,sha256=PBUZJeDgW5ta7ghk__UYh_ygOFIhe9ymJDaxEuVumFU,28
|
154
|
+
not1mm-24.3.24.dist-info/RECORD,,
|
testing/detectdark.py
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
import darkdetect
|
2
|
+
import sys
|
3
|
+
import threading
|
4
|
+
from PyQt5.QtWidgets import QApplication, QWidget
|
5
|
+
|
6
|
+
|
7
|
+
class Example(QWidget):
|
8
|
+
|
9
|
+
def __init__(self):
|
10
|
+
super().__init__()
|
11
|
+
|
12
|
+
self.init_ui()
|
13
|
+
|
14
|
+
def init_ui(self):
|
15
|
+
self.setWindowTitle("Darkdetect Listener Example")
|
16
|
+
self.setGeometry(300, 300, 300, 300)
|
17
|
+
|
18
|
+
self.show()
|
19
|
+
|
20
|
+
def on_dark_mode_changed(self, dark_mode):
|
21
|
+
if dark_mode:
|
22
|
+
self.setStyleSheet("background-color: black; color: white;")
|
23
|
+
else:
|
24
|
+
self.setStyleSheet("background-color: white; color: black;")
|
25
|
+
|
26
|
+
|
27
|
+
if __name__ == "__main__":
|
28
|
+
app = QApplication(sys.argv)
|
29
|
+
|
30
|
+
listener = darkdetect.Listener(print)
|
31
|
+
t = threading.Thread(target=listener.listen, daemon=True)
|
32
|
+
# OR: t = threading.Thread(target=darkdetect.listener, args=(print,), daemon=True)
|
33
|
+
t.start()
|
34
|
+
example = Example()
|
35
|
+
sys.exit(app.exec_())
|
testing/test.py
CHANGED
@@ -1,15 +1,17 @@
|
|
1
|
-
|
1
|
+
import sys
|
2
2
|
|
3
|
-
import
|
3
|
+
from PyQt6.QtWidgets import QApplication, QMainWindow, QPushButton
|
4
4
|
|
5
|
-
|
6
|
-
if len(proc.cmdline()) == 2:
|
7
|
-
print(proc.cmdline()[1])
|
5
|
+
import qdarktheme
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
print(__package__)
|
13
|
-
print(__loader__)
|
7
|
+
app = QApplication(sys.argv)
|
8
|
+
# Apply dark theme.
|
9
|
+
qdarktheme.setup_theme()
|
14
10
|
|
15
|
-
|
11
|
+
main_win = QMainWindow()
|
12
|
+
push_button = QPushButton("PyQtDarkTheme!!")
|
13
|
+
main_win.setCentralWidget(push_button)
|
14
|
+
|
15
|
+
main_win.show()
|
16
|
+
|
17
|
+
app.exec()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|