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 CHANGED
@@ -1,6 +1,7 @@
1
1
  from PyQt6.QtWidgets import QDockWidget
2
2
  from PyQt6.QtGui import QBrush, QColor
3
- from PyQt6.QtCore import Qt
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 result not in suffix_to_ignore:
26
- if any(chr.isdigit() for chr in result):
27
- return result
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
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "25.6.8.1"
3
+ __version__ = "25.6.10"
not1mm/test.py CHANGED
@@ -1,37 +1,5 @@
1
- import datetime
1
+ from not1mm.lib.rot_interface import RotatorInterface
2
2
 
3
-
4
- # Assume self.auto_cq_delay is defined (e.g., in milliseconds)
5
- class SomeClass:
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.8.1
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=QkcKRzoqmQ3Jle1SM5fFiumieUnRou5fuy-sJseWzsE,4935
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=BNhsSvLnNG5hN4pywIWnj4pUBI-wQYY4Ejfbl97knmw,1198
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=WMmYLDI_fJHHsn0wkpGVit2Hv8fo6r9ybexXROia8Cg,11967
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=QMaYrXzd5DZB-D9ZrAglXgrutCbulW_Z899cFr9Fr90,49
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.8.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
190
- not1mm-25.6.8.1.dist-info/METADATA,sha256=jLHID-aQHwUyjF5YEdHD2ASjSg8MZtE-mEDcfNl6oVA,35039
191
- not1mm-25.6.8.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
192
- not1mm-25.6.8.1.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
193
- not1mm-25.6.8.1.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
194
- not1mm-25.6.8.1.dist-info/RECORD,,
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,,