not1mm 25.6.8.1__py3-none-any.whl → 25.6.10__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/dxcc_tracker.py +2 -14
- not1mm/lib/ham_utility.py +8 -5
- not1mm/lib/version.py +1 -1
- not1mm/test.py +4 -36
- {not1mm-25.6.8.1.dist-info → not1mm-25.6.10.dist-info}/METADATA +2 -1
- {not1mm-25.6.8.1.dist-info → not1mm-25.6.10.dist-info}/RECORD +10 -10
- {not1mm-25.6.8.1.dist-info → not1mm-25.6.10.dist-info}/WHEEL +0 -0
- {not1mm-25.6.8.1.dist-info → not1mm-25.6.10.dist-info}/entry_points.txt +0 -0
- {not1mm-25.6.8.1.dist-info → not1mm-25.6.10.dist-info}/licenses/LICENSE +0 -0
- {not1mm-25.6.8.1.dist-info → not1mm-25.6.10.dist-info}/top_level.txt +0 -0
not1mm/dxcc_tracker.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
from PyQt6.QtWidgets import QDockWidget
|
2
2
|
from PyQt6.QtGui import QBrush, QColor
|
3
|
-
|
3
|
+
|
4
|
+
# from PyQt6.QtCore import Qt
|
4
5
|
from PyQt6.QtCore import pyqtSignal
|
5
6
|
from PyQt6 import uic, QtWidgets
|
6
7
|
import not1mm.fsutils as fsutils
|
@@ -13,19 +14,6 @@ import logging
|
|
13
14
|
logger = logging.getLogger(__name__)
|
14
15
|
|
15
16
|
|
16
|
-
# class CustomSqlModel(QSqlQueryModel):
|
17
|
-
# def data(self, index, role):
|
18
|
-
# if role == Qt.ItemDataRole.BackgroundRole:
|
19
|
-
# column = index.column()
|
20
|
-
# if column < 7: # Columns 0-6 (CountryPrefix and band columns)
|
21
|
-
# value = super().data(index, Qt.ItemDataRole.DisplayRole)
|
22
|
-
# if value and isinstance(value, (int, float)) and value > 0:
|
23
|
-
# return QBrush(QColor(44, 138, 44)) # Light green color
|
24
|
-
# elif value == 0:
|
25
|
-
# return QBrush(QColor(155, 100, 100)) # Light red color
|
26
|
-
# return super().data(index, role)
|
27
|
-
|
28
|
-
|
29
17
|
class DXCCWindow(QDockWidget):
|
30
18
|
message = pyqtSignal(dict)
|
31
19
|
dbname = None
|
not1mm/lib/ham_utility.py
CHANGED
@@ -16,19 +16,22 @@ def calculate_wpx_prefix(the_call: str) -> str:
|
|
16
16
|
return ""
|
17
17
|
if the_call in ["OPON", "CW", "SSB", "RTTY"]:
|
18
18
|
return ""
|
19
|
-
suffix_to_ignore = ["M", "MM", "P", "QRP", "A", "LH", "NLD"]
|
19
|
+
suffix_to_ignore = ["M", "MM", "P", "QRP", "A", "J", "LH", "LGT", "LS", "NLD", "T", "R", "TR" ]
|
20
|
+
for suffix in suffix_to_ignore:
|
21
|
+
the_call = re.sub("/" + suffix + "$", "", the_call)
|
20
22
|
result = None
|
21
23
|
working_call = the_call.split("/")
|
22
24
|
if len(working_call) > 1:
|
23
25
|
result = min(working_call, key=len)
|
24
26
|
if not result.isnumeric():
|
25
|
-
if
|
26
|
-
|
27
|
-
|
28
|
-
return result + "0"
|
27
|
+
if any(chr.isdigit() for chr in result):
|
28
|
+
return result
|
29
|
+
return result + "0"
|
29
30
|
|
30
31
|
working_call = max(working_call, key=len)
|
31
32
|
last_digit = re.match(".+([0-9])[^0-9]*$", working_call)
|
33
|
+
if last_digit is None:
|
34
|
+
return working_call[0:2] + "0"
|
32
35
|
position = last_digit.start(1)
|
33
36
|
prefix = working_call[: position + 1]
|
34
37
|
if not result:
|
not1mm/lib/version.py
CHANGED
not1mm/test.py
CHANGED
@@ -1,37 +1,5 @@
|
|
1
|
-
import
|
1
|
+
from not1mm.lib.rot_interface import RotatorInterface
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
def __init__(self, auto_cq_delay_ms):
|
7
|
-
self.auto_cq_delay = auto_cq_delay_ms
|
8
|
-
|
9
|
-
|
10
|
-
# Example instantiation
|
11
|
-
instance = SomeClass(auto_cq_delay_ms=5000) # 5 seconds delay
|
12
|
-
|
13
|
-
|
14
|
-
then = datetime.datetime.now()
|
15
|
-
future = datetime.datetime.now() + datetime.timedelta(milliseconds=15000)
|
16
|
-
|
17
|
-
|
18
|
-
# Calculate the total duration between 'then' and 'future'
|
19
|
-
total_duration = future - then
|
20
|
-
|
21
|
-
while datetime.datetime.now() < future:
|
22
|
-
|
23
|
-
now = datetime.datetime.now()
|
24
|
-
# Calculate the elapsed duration between 'then' and 'now'
|
25
|
-
elapsed_duration = now - then
|
26
|
-
|
27
|
-
# Avoid division by zero if total_duration is zero (though unlikely in this scenario)
|
28
|
-
if total_duration.total_seconds() > 0:
|
29
|
-
# Calculate the percentage of the way 'now' is to 'future'
|
30
|
-
percentage_complete = (
|
31
|
-
elapsed_duration.total_seconds() / total_duration.total_seconds()
|
32
|
-
) * 100
|
33
|
-
print(f"Current time is {percentage_complete:.2f}% of the way to 'future'.")
|
34
|
-
else:
|
35
|
-
print(
|
36
|
-
"'future' is the same as or before 'then', so percentage cannot be calculated meaningfully."
|
37
|
-
)
|
3
|
+
rotator = RotatorInterface()
|
4
|
+
if rotator.connected is True:
|
5
|
+
print(f"{rotator.get_position()=}")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: not1mm
|
3
|
-
Version: 25.6.
|
3
|
+
Version: 25.6.10
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
License: GPL-3.0-or-later
|
@@ -245,6 +245,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
245
245
|
|
246
246
|
## Recent Changes
|
247
247
|
|
248
|
+
- [25-6-10] Merged PR from @dj1yfk correcting WPX prefix calculation.
|
248
249
|
- [25-6-8] Revmoved SQLite WAL mode.
|
249
250
|
- Rewrote DXCC tracker.
|
250
251
|
- [25-6-7] Fix focus issue when dxcc widget is active.
|
@@ -2,7 +2,7 @@ not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
not1mm/__main__.py,sha256=IHFJFKGAgKyPZUdi-aRDFIS--XJPdoPiV6utXx31_-I,172631
|
3
3
|
not1mm/bandmap.py,sha256=0JmZ32UvkaPjXs2xTgowX1GLvZo5zHU_Zo9y_GL-On4,31139
|
4
4
|
not1mm/checkwindow.py,sha256=zEHlw40j6Wr3rvKbCQf2lcezCoiZqaBqEvBjQU5aKW0,7630
|
5
|
-
not1mm/dxcc_tracker.py,sha256=
|
5
|
+
not1mm/dxcc_tracker.py,sha256=LUTt538mBjOr590WMby-hmRz47XG8xUCkU2x0j4oB4w,4306
|
6
6
|
not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
|
7
7
|
not1mm/logwindow.py,sha256=O2dMaT_BYWsXA_dxsEHN92JwN-qVGy9nmH0MCMaG9gY,42830
|
8
8
|
not1mm/lookupservice.py,sha256=GkY_qHZfrW6XHf8upIoaG4hCFqm0fg6Ganu9ConGrIc,2628
|
@@ -10,7 +10,7 @@ not1mm/radio.py,sha256=4Lysf9BY3vdtYCHwKfzO5WN7IGyh4_lKSVuQ6F4Z08g,5536
|
|
10
10
|
not1mm/ratewindow.py,sha256=iBjqdOetIEX0wSwdGM89Ibt4gVlFdE-K8HQPnkVPVOg,6965
|
11
11
|
not1mm/rtc_service.py,sha256=axAwnCBuTr-QL0YwXtWvg9tjwhcFsiiEZFgFjOofX6k,2816
|
12
12
|
not1mm/statistics.py,sha256=eOmUvbbYdbbIYHmaEhtBGab1IxAf2RQYV1q9MItpqEM,7969
|
13
|
-
not1mm/test.py,sha256=
|
13
|
+
not1mm/test.py,sha256=WhL0DLlJTD15aON8Dkf2q_tlP_X1juxKZJh0jEC99tU,154
|
14
14
|
not1mm/vfo.py,sha256=SsqinokSd8BqVp6l-_DGRKcNN9Uc9JiFYXDl9Ycep1o,10111
|
15
15
|
not1mm/voice_keying.py,sha256=HZImqC5NgnyW2nknNYQ3b7I8-6S_hxpq5G4RcIRXn_k,3005
|
16
16
|
not1mm/data/JetBrainsMono-Thin.ttf,sha256=B1bo6M8dZfp1GXdnZEebOXPvsVr09BnV1ydNwnrhtwI,270112
|
@@ -113,7 +113,7 @@ not1mm/lib/edit_opon.py,sha256=j3qJ1aBsQoIOnQ9yiBl3lyeISvKTP0I_rtBYBPAfgeI,359
|
|
113
113
|
not1mm/lib/edit_station.py,sha256=hUpqNgboNqhpFzHzjQI0FI8GId6muECRsaXaphN02kQ,1967
|
114
114
|
not1mm/lib/fldigi_sendstring.py,sha256=EeXSBRKgyUEzNyHBjMtHiFe-iOU3TcWcCCX77t0ur_I,602
|
115
115
|
not1mm/lib/ft8_watcher.py,sha256=BFmVIsnbwuRMWoe-dIBybuCgi0WFmr8Km0O9l4eiwMM,4624
|
116
|
-
not1mm/lib/ham_utility.py,sha256=
|
116
|
+
not1mm/lib/ham_utility.py,sha256=7vsnk_nPAOHoP5XhMCDX6ll0F8Sm9XOI-DFMjB80ZFI,12105
|
117
117
|
not1mm/lib/lookup.py,sha256=KECMDi9tflRDzgTLeDfDl7HGWWRHvW3HCjNHyyjoWaY,10835
|
118
118
|
not1mm/lib/multicast.py,sha256=KJcruI-bOuHfHXPjl3SGQhL6I9sKrygy-sdFSvxffUM,3255
|
119
119
|
not1mm/lib/n1mm.py,sha256=H54mpgJF0GAmKavM-nb5OAq2SJFWYkux4eMWWiSRxJc,6288
|
@@ -122,7 +122,7 @@ not1mm/lib/plugin_common.py,sha256=nqiUq11T9Wz8RDrRen4Zvp-KXVWUYcIp5JPZwqmu2Oo,1
|
|
122
122
|
not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
|
123
123
|
not1mm/lib/settings.py,sha256=5xnsagH48qGeCDhfxPWW9yaXtv8wT13yoIVvYt8h_Qs,16023
|
124
124
|
not1mm/lib/super_check_partial.py,sha256=jX7DjHesEV4KNVQbddJui0wAsYHerikH7W0iPv7PXQw,3110
|
125
|
-
not1mm/lib/version.py,sha256=
|
125
|
+
not1mm/lib/version.py,sha256=sXRrPfTyvfpaX9z-c1mGF5B_4fqe5Zv7Ppj4gk6oCG4,48
|
126
126
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
127
127
|
not1mm/plugins/10_10_fall_cw.py,sha256=oJh3JKqjOpnWElSlZpiQ631UnaOd8qra5s9bl_QoInk,14783
|
128
128
|
not1mm/plugins/10_10_spring_cw.py,sha256=p7dSDtbFK0e6Xouw2V6swYn3VFVgHKyx4IfRWyBjMZY,14786
|
@@ -186,9 +186,9 @@ not1mm/plugins/ukeidx.py,sha256=ZsIFXgOSwjuKNmN4W_C0TAgGqgnabJGNLMHwGkl3_bk,1910
|
|
186
186
|
not1mm/plugins/vhf_sprint.py,sha256=a9QFTpv8XUbZ_GLjdVCh7svykFa-gXOWwKFZ6MD3uQM,19289
|
187
187
|
not1mm/plugins/weekly_rtty.py,sha256=C8Xs3Q5UgSYx-mFFar8BVARWtmqlyrbeC98Ubzb4UN8,20128
|
188
188
|
not1mm/plugins/winter_field_day.py,sha256=hmAMgkdqIXtnCNyUp8J9Bb8liN8wj10wps6ROuG-Bok,15284
|
189
|
-
not1mm-25.6.
|
190
|
-
not1mm-25.6.
|
191
|
-
not1mm-25.6.
|
192
|
-
not1mm-25.6.
|
193
|
-
not1mm-25.6.
|
194
|
-
not1mm-25.6.
|
189
|
+
not1mm-25.6.10.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
190
|
+
not1mm-25.6.10.dist-info/METADATA,sha256=PgwRNo6RTuKpAR6IKbPGFhVQ4CGN14wxhPu_480m7MU,35108
|
191
|
+
not1mm-25.6.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
192
|
+
not1mm-25.6.10.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
193
|
+
not1mm-25.6.10.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
194
|
+
not1mm-25.6.10.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|