setiastrosuitepro 1.6.12__py3-none-any.whl → 1.7.3__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.

Potentially problematic release.


This version of setiastrosuitepro might be problematic. Click here for more details.

Files changed (51) hide show
  1. setiastro/images/3dplanet.png +0 -0
  2. setiastro/images/TextureClarity.svg +56 -0
  3. setiastro/images/narrowbandnormalization.png +0 -0
  4. setiastro/images/planetarystacker.png +0 -0
  5. setiastro/saspro/__init__.py +9 -8
  6. setiastro/saspro/__main__.py +326 -285
  7. setiastro/saspro/_generated/build_info.py +2 -2
  8. setiastro/saspro/aberration_ai.py +128 -13
  9. setiastro/saspro/aberration_ai_preset.py +29 -3
  10. setiastro/saspro/astrospike_python.py +45 -3
  11. setiastro/saspro/blink_comparator_pro.py +116 -71
  12. setiastro/saspro/curve_editor_pro.py +72 -22
  13. setiastro/saspro/curves_preset.py +249 -47
  14. setiastro/saspro/doc_manager.py +4 -1
  15. setiastro/saspro/gui/main_window.py +326 -46
  16. setiastro/saspro/gui/mixins/file_mixin.py +41 -18
  17. setiastro/saspro/gui/mixins/menu_mixin.py +9 -0
  18. setiastro/saspro/gui/mixins/toolbar_mixin.py +123 -7
  19. setiastro/saspro/histogram.py +179 -7
  20. setiastro/saspro/imageops/narrowband_normalization.py +816 -0
  21. setiastro/saspro/imageops/serloader.py +1429 -0
  22. setiastro/saspro/layers.py +186 -10
  23. setiastro/saspro/layers_dock.py +198 -5
  24. setiastro/saspro/legacy/image_manager.py +10 -4
  25. setiastro/saspro/legacy/numba_utils.py +1 -1
  26. setiastro/saspro/live_stacking.py +24 -4
  27. setiastro/saspro/multiscale_decomp.py +30 -17
  28. setiastro/saspro/narrowband_normalization.py +1618 -0
  29. setiastro/saspro/planetprojection.py +3854 -0
  30. setiastro/saspro/remove_green.py +1 -1
  31. setiastro/saspro/resources.py +8 -0
  32. setiastro/saspro/rgbalign.py +456 -12
  33. setiastro/saspro/save_options.py +45 -13
  34. setiastro/saspro/ser_stack_config.py +102 -0
  35. setiastro/saspro/ser_stacker.py +2327 -0
  36. setiastro/saspro/ser_stacker_dialog.py +1865 -0
  37. setiastro/saspro/ser_tracking.py +228 -0
  38. setiastro/saspro/serviewer.py +1773 -0
  39. setiastro/saspro/sfcc.py +298 -64
  40. setiastro/saspro/shortcuts.py +14 -7
  41. setiastro/saspro/stacking_suite.py +21 -6
  42. setiastro/saspro/stat_stretch.py +179 -31
  43. setiastro/saspro/subwindow.py +38 -5
  44. setiastro/saspro/texture_clarity.py +593 -0
  45. setiastro/saspro/widgets/resource_monitor.py +122 -74
  46. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.3.dist-info}/METADATA +3 -2
  47. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.3.dist-info}/RECORD +51 -37
  48. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.3.dist-info}/WHEEL +0 -0
  49. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.3.dist-info}/entry_points.txt +0 -0
  50. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.3.dist-info}/licenses/LICENSE +0 -0
  51. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.3.dist-info}/licenses/license.txt +0 -0
@@ -1,12 +1,16 @@
1
1
  # src/setiastro/saspro/widgets/resource_monitor.py
2
2
  from __future__ import annotations
3
+
3
4
  import os
5
+ import time
6
+ import subprocess
7
+ import numpy as np
8
+
4
9
  import psutil
10
+
5
11
  from PyQt6.QtCore import Qt, QUrl, QTimer, QObject, pyqtProperty, pyqtSignal, QThread
6
- from PyQt6.QtWidgets import QWidget, QVBoxLayout, QFrame
7
12
  from PyQt6.QtQuickWidgets import QQuickWidget
8
- import time
9
- import subprocess
13
+
10
14
  from setiastro.saspro.memory_utils import get_memory_usage_mb
11
15
  from setiastro.saspro.resources import _get_base_path
12
16
 
@@ -46,7 +50,6 @@ class GPUWorker(QThread):
46
50
  self._last_win_poll = now
47
51
 
48
52
  try:
49
- # Use explicit powershell.exe and make it non-interactive + hidden
50
53
  cmd = [
51
54
  "powershell.exe",
52
55
  "-NoProfile",
@@ -66,8 +69,8 @@ class GPUWorker(QThread):
66
69
  out = subprocess.check_output(
67
70
  cmd,
68
71
  startupinfo=self._startupinfo_hidden(),
69
- timeout=2.0, # IMPORTANT: don’t allow 5s hangs
70
- stderr=subprocess.DEVNULL, # keep it quiet
72
+ timeout=2.0,
73
+ stderr=subprocess.DEVNULL,
71
74
  )
72
75
  val_str = out.decode("utf-8", errors="ignore").strip()
73
76
 
@@ -82,7 +85,7 @@ class GPUWorker(QThread):
82
85
  nv_val = 0.0
83
86
  win_val = 0.0
84
87
 
85
- # NVIDIA (fast, keep it)
88
+ # NVIDIA (fast)
86
89
  if self._has_nvidia:
87
90
  try:
88
91
  out = subprocess.check_output(
@@ -107,7 +110,7 @@ class GPUWorker(QThread):
107
110
  try:
108
111
  val = self._get_gpu_load()
109
112
 
110
- # Optional: emit only if value changed a bit, or once per 250ms max
113
+ # emit only if changed enough OR periodically
111
114
  now = time.monotonic()
112
115
  if (
113
116
  self._last_emitted_val is None
@@ -122,9 +125,10 @@ class GPUWorker(QThread):
122
125
  except Exception:
123
126
  self.msleep(1000)
124
127
 
128
+
125
129
  class ResourceBackend(QObject):
126
- """Backend logic for the QML Resource Monitor."""
127
-
130
+ """Backend logic for the QML Resource Monitor (SYSTEM usage, not app usage)."""
131
+
128
132
  cpuChanged = pyqtSignal()
129
133
  ramChanged = pyqtSignal()
130
134
  gpuChanged = pyqtSignal()
@@ -132,12 +136,25 @@ class ResourceBackend(QObject):
132
136
 
133
137
  def __init__(self, parent=None):
134
138
  super().__init__(parent)
135
- self._cpu = 0.0
136
- self._ram = 0.0
137
- self._gpu = 0.0
139
+
140
+ self._cpu = 0.0 # system CPU %
141
+ self._ram = 0.0 # system RAM %
142
+ self._gpu = 0.0 # GPU %
138
143
  self._app_ram_val = 0.0
139
144
  self._app_ram_str = "0 MB"
140
-
145
+
146
+ # ---- Prime psutil CPU baselines (IMPORTANT on Windows) ----
147
+ # First call returns a meaningless 0.0 (or weird) because it establishes the baseline.
148
+ try:
149
+ psutil.cpu_percent(interval=None)
150
+ psutil.cpu_percent(percpu=True, interval=None)
151
+ except Exception:
152
+ pass
153
+
154
+ # Optional smoothing so gauge feels like Task Manager
155
+ self._cpu_ema = None # exponential moving average
156
+ self._last_cpu_times = None
157
+ self._last_cpu_sample_t = 0.0
141
158
  # Check if nvidia-smi is reachable once
142
159
  has_nvidia = False
143
160
  try:
@@ -152,49 +169,101 @@ class ResourceBackend(QObject):
152
169
  self._gpu_worker.resultReady.connect(self._on_gpu_measured)
153
170
  self._gpu_worker.start()
154
171
 
155
- # Timer for CPU/RAM updates (250ms as requested)
172
+ # Timer for CPU/RAM updates (250ms)
156
173
  self._timer = QTimer(self)
157
- self._timer.setInterval(250)
174
+ self._timer.setInterval(250)
158
175
  self._timer.timeout.connect(self._update_stats)
159
176
  self._timer.start()
160
177
 
161
178
  def _on_gpu_measured(self, val: float):
162
- self._gpu = val
179
+ self._gpu = float(val)
163
180
  self.gpuChanged.emit()
164
181
 
165
182
  @pyqtProperty(float, notify=cpuChanged)
166
- def cpuUsage(self):
167
- return self._cpu
183
+ def cpuUsage(self) -> float:
184
+ return float(self._cpu)
168
185
 
169
186
  @pyqtProperty(float, notify=ramChanged)
170
- def ramUsage(self):
171
- return self._ram
187
+ def ramUsage(self) -> float:
188
+ return float(self._ram)
172
189
 
173
190
  @pyqtProperty(float, notify=gpuChanged)
174
- def gpuUsage(self):
175
- return self._gpu
191
+ def gpuUsage(self) -> float:
192
+ return float(self._gpu)
176
193
 
177
194
  @pyqtProperty(str, notify=appRamChanged)
178
- def appRamString(self):
195
+ def appRamString(self) -> str:
179
196
  return self._app_ram_str
180
197
 
181
- def _update_stats(self):
182
- # 1. CPU
198
+ def _read_system_cpu_percent(self) -> float:
199
+ """
200
+ Return SYSTEM-wide CPU utilization as 0..100 using cpu_times() deltas.
201
+ This is robust even if other code calls psutil.cpu_percent().
202
+ """
183
203
  try:
184
- self._cpu = psutil.cpu_percent(interval=None)
204
+ now = time.monotonic()
205
+ cur = psutil.cpu_times(percpu=True)
206
+
207
+ if not cur:
208
+ return 0.0
209
+
210
+ # first sample: store and return 0 (or keep last)
211
+ if self._last_cpu_times is None:
212
+ self._last_cpu_times = cur
213
+ self._last_cpu_sample_t = now
214
+ return float(self._cpu) # keep whatever we had
215
+
216
+ prev = self._last_cpu_times
217
+ self._last_cpu_times = cur
218
+ self._last_cpu_sample_t = now
219
+
220
+ # usage per logical CPU
221
+ usages = []
222
+ for t0, t1 in zip(prev, cur):
223
+ # sum all fields to get total time
224
+ total0 = float(sum(t0))
225
+ total1 = float(sum(t1))
226
+ dt_total = total1 - total0
227
+ if dt_total <= 1e-9:
228
+ continue
229
+
230
+ idle0 = float(getattr(t0, "idle", 0.0) + getattr(t0, "iowait", 0.0))
231
+ idle1 = float(getattr(t1, "idle", 0.0) + getattr(t1, "iowait", 0.0))
232
+ dt_idle = idle1 - idle0
233
+
234
+ busy = 1.0 - (dt_idle / dt_total)
235
+ usages.append(busy)
236
+
237
+ if not usages:
238
+ return float(self._cpu)
239
+
240
+ return float(np.clip((sum(usages) / len(usages)) * 100.0, 0.0, 100.0))
185
241
  except Exception:
186
- self._cpu = 0.0
187
-
188
- # 2. System RAM
242
+ return float(self._cpu)
243
+
244
+
245
+ def _update_stats(self):
246
+ # 1) SYSTEM CPU
247
+ cpu = self._read_system_cpu_percent()
248
+
249
+ # light smoothing (keeps spikes but reduces jitter)
250
+ if self._cpu_ema is None:
251
+ self._cpu_ema = cpu
252
+ else:
253
+ a = 0.25 # smoothing factor (0.0=no update, 1.0=no smoothing)
254
+ self._cpu_ema = (1.0 - a) * self._cpu_ema + a * cpu
255
+ self._cpu = float(self._cpu_ema)
256
+
257
+ # 2) SYSTEM RAM
189
258
  try:
190
259
  vm = psutil.virtual_memory()
191
- self._ram = vm.percent
260
+ self._ram = float(vm.percent)
192
261
  except Exception:
193
262
  self._ram = 0.0
194
263
 
195
- # 3. App RAM
264
+ # 3) APP RAM (your process)
196
265
  try:
197
- mb = get_memory_usage_mb()
266
+ mb = float(get_memory_usage_mb())
198
267
  self._app_ram_val = mb
199
268
  self._app_ram_str = f"{int(mb)} MB"
200
269
  except Exception:
@@ -206,13 +275,22 @@ class ResourceBackend(QObject):
206
275
 
207
276
  def stop(self):
208
277
  """Explicitly stop background threads."""
278
+ try:
279
+ if hasattr(self, "_timer") and self._timer.isActive():
280
+ self._timer.stop()
281
+ except Exception:
282
+ pass
283
+
209
284
  if hasattr(self, "_gpu_worker") and self._gpu_worker.isRunning():
210
285
  self._gpu_worker.requestInterruption()
211
286
  self._gpu_worker.quit()
212
287
  self._gpu_worker.wait(1000)
213
288
 
214
289
  def __del__(self):
215
- self.stop()
290
+ try:
291
+ self.stop()
292
+ except Exception:
293
+ pass
216
294
 
217
295
 
218
296
  class SystemMonitorWidget(QQuickWidget):
@@ -221,57 +299,28 @@ class SystemMonitorWidget(QQuickWidget):
221
299
  """
222
300
  def __init__(self, parent=None):
223
301
  super().__init__(parent)
224
-
302
+
225
303
  self.setResizeMode(QQuickWidget.ResizeMode.SizeRootObjectToView)
226
304
  self.setAttribute(Qt.WidgetAttribute.WA_AlwaysStackOnTop, False)
227
305
  self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground, True)
228
306
  self.setClearColor(Qt.GlobalColor.transparent)
229
- self._qml_push_pending = False
230
307
 
231
308
  # Connect Backend
232
309
  self.backend = ResourceBackend(self)
233
310
  self.rootContext().setContextProperty("backend", self.backend)
234
-
235
- # We need to manually wire property updates because we are binding to root properties in QML
236
- # Actually, simpler pattern: QML file reads from an object we inject.
237
- # Let's adjust QML slightly to bind to `backend.cpuUsage` etc. if we can,
238
- # OR we leave QML as having properties and we set them from Python.
239
- #
240
- # Better approach for Py+QML:
241
- # Inject `backend` into context, modify QML to use `backend.cpuUsage`.
242
- # But since I already wrote QML with root properties, I will just set them directly
243
- # or update the QML file. Updating QML is cleaner.
244
- #
245
- # For now, let's keep QML independent and binding via setProperty?
246
- # No, properly: context property is best.
247
- #
248
- # Let's re-write the QML loading part to use a safer 'initialProperties' approach or just signal/slots.
249
- #
250
- # EASIEST: QML binds to `root.cpuUsage`. Python sets `root.cpuUsage`.
251
-
252
-
311
+
253
312
  # Load QML
254
313
  qml_path = os.path.join(_get_base_path(), "qml", "ResourceMonitor.qml")
255
314
  self.setSource(QUrl.fromLocalFile(qml_path))
256
315
 
257
- def _schedule_qml_push(self):
258
- if self._qml_push_pending:
259
- return
260
- self._qml_push_pending = True
261
- QTimer.singleShot(0, self._push_data_to_qml_coalesced)
262
-
263
- def _push_data_to_qml_coalesced(self):
264
- self._qml_push_pending = False
265
- self._push_data_to_qml()
266
-
267
-
268
- def _push_data_to_qml(self):
269
- root = self.rootObject()
270
- if root:
271
- root.setProperty("cpuUsage", self.backend.cpuUsage)
272
- root.setProperty("ramUsage", self.backend.ramUsage)
273
- root.setProperty("gpuUsage", self.backend.gpuUsage)
274
- root.setProperty("appRamString", self.backend.appRamString)
316
+ def closeEvent(self, e):
317
+ # make sure worker threads stop when widget closes
318
+ try:
319
+ if hasattr(self, "backend") and self.backend is not None:
320
+ self.backend.stop()
321
+ except Exception:
322
+ pass
323
+ super().closeEvent(e)
275
324
 
276
325
  # --- Drag & Drop Support ---
277
326
  def mousePressEvent(self, event):
@@ -280,7 +329,6 @@ class SystemMonitorWidget(QQuickWidget):
280
329
  wh = self.windowHandle()
281
330
  if wh is not None:
282
331
  try:
283
- # Works best for frameless overlays on Wayland
284
332
  wh.startSystemMove()
285
333
  event.accept()
286
334
  return
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: setiastrosuitepro
3
- Version: 1.6.12
3
+ Version: 1.7.3
4
4
  Summary: Seti Astro Suite Pro - Advanced astrophotography toolkit for image calibration, stacking, registration, photometry, and visualization
5
5
  License: GPL-3.0
6
6
  License-File: LICENSE
@@ -35,8 +35,9 @@ Requires-Dist: numba
35
35
  Requires-Dist: numpy
36
36
  Requires-Dist: oktopus
37
37
  Requires-Dist: onnx
38
- Requires-Dist: onnxruntime
38
+ Requires-Dist: onnxruntime ; sys_platform != "linux" and sys_platform != "win32"
39
39
  Requires-Dist: onnxruntime-directml ; sys_platform == "win32"
40
+ Requires-Dist: onnxruntime-gpu ; sys_platform == "linux"
40
41
  Requires-Dist: opencv-python-headless
41
42
  Requires-Dist: pandas
42
43
  Requires-Dist: photutils
@@ -11,6 +11,7 @@ setiastro/data/catalogs/List_of_Galaxies_with_Distances_Gly.csv,sha256=NkZ9hflb9
11
11
  setiastro/data/catalogs/test.csv,sha256=vIL2AA8APalVj6ti-waEPS15Qey_DPUlxp1JZw1mN7E,93
12
12
  setiastro/data/catalogs/updated_celestial_catalog.csv,sha256=HOsuyWFrQXEDv0ql2MWSuFDuftOQkUzFWh_DfYM-mz4,936414
13
13
  setiastro/data/SASP_data.fits,sha256=_wLrlMnXSqY15dEvBtAnFE0IZOlj1zDbVEEhegKIcTk,4115520
14
+ setiastro/images/3dplanet.png,sha256=Zm4atz64lJe_uEULmA3QSZN1AKTtRvWeHTjOz4S1PyI,14612
14
15
  setiastro/images/abeicon.png,sha256=r9HNnjZa1Zw_hKP9h6I2XqxOio1_mJBYCgh5gagu6LA,19423
15
16
  setiastro/images/abeicon.svg,sha256=yAnr5-m3ej2OFPeCS156Ek0oI_PAe5Mivh6NXTI4DVo,866
16
17
  setiastro/images/aberration.png,sha256=lP86_M-M-Y6a21xgKnXXoq9GwkujpfxGQ99qyF05JL4,330009
@@ -92,6 +93,7 @@ setiastro/images/maskremove.png,sha256=Oi_NRrruNFh9j9rvdtbFpv7Ob6wehyi_BOq7I4c6n
92
93
  setiastro/images/morpho.png,sha256=ypBFJNRNrl9ZOY3MCpSGeoHgIe6sabZQc4qM1nGiiG0,80192
93
94
  setiastro/images/mosaic.png,sha256=Lml13ofxFYug4fYF7LFzA4ZaPFm9bKDVirH0r5XcZKs,29514
94
95
  setiastro/images/multiscale_decomp.png,sha256=DFlFVG8xHP1LvTF7pL3v1Uy8i9CI6CVVgN-x9uHDv6U,7525
96
+ setiastro/images/narrowbandnormalization.png,sha256=a6aJNT9LmHLSZn44TajNHH6Qlu3qr1Cq_TweQE82gJM,191182
95
97
  setiastro/images/nbtorgb.png,sha256=tzxgLNKbXSvKVmv3PIQ42zWIbvwRVBX8Egc7pvwYQV0,33271
96
98
  setiastro/images/neutral.png,sha256=sOfj3-SH8gNTd4oy6yhnx-rYqMq6qbKtm7NHzWCYMvs,13591
97
99
  setiastro/images/new_moon.png,sha256=GKLXCQGPh7cFfo87598roMCcn6XCN7bn0k5C2arAs-w,2071
@@ -102,6 +104,7 @@ setiastro/images/pedestal.png,sha256=hidv6ofPwx_lHic5Ne6NOZUAmGGTdFMRTdtz5sZusdk
102
104
  setiastro/images/pen.png,sha256=tSuv3pRXX-AwXsn1dxuWgep-D4Km30Zttdk0SikQQW4,26122
103
105
  setiastro/images/pixelmath.png,sha256=TL4ghw_u83iV2Kprs5PgT94C7wiLtewiP9Y51Uf4Qzc,86235
104
106
  setiastro/images/pixelmath.svg,sha256=A-ZxI6Yp_dtqd72uherWbTutd9gO6rcY9Xr8pYcYNKk,1728
107
+ setiastro/images/planetarystacker.png,sha256=1x0bf_QieRgHpheVBxlgGT-d3Y6MI1RNXtLTFTDPPmk,192197
105
108
  setiastro/images/platesolve.png,sha256=9Wxv9Zclg4BGrBfQV4tUsWp_jvHj4RE8SEtfm9HjtEk,29889
106
109
  setiastro/images/ppp.png,sha256=2UNa076cxHa-U_Avo7G0661nAVB0vHfGSDOTP46dKBE,276987
107
110
  setiastro/images/pro.png,sha256=jGAnv8T8AaiazevJot-5XQvMKGjWG4CSAMforRJDTHQ,23036
@@ -144,6 +147,7 @@ setiastro/images/starspike.png,sha256=u846Ur8d2OQ2fLiR1iBtQ5Xpva0Dxnpg0-VIZLoDKO
144
147
  setiastro/images/starstretch.png,sha256=cVAbjK9ae-E2h32oFvysXkBFnvZYFd17_93czfJLVlo,23652
145
148
  setiastro/images/statstretch.png,sha256=eXZyvIqQzYQc5fcMUciGa-hVTgNeRmmwaeKR7fPqmYM,24546
146
149
  setiastro/images/supernova.png,sha256=Fu3_d4zCAGRj-lt6I3C_zYhOfmvuTiiVfQlAZvf6uv8,82721
150
+ setiastro/images/TextureClarity.svg,sha256=MwdoZirp3osLhUemAR1kDPLNG8ROrOPXv4U3rlOwAyo,2897
147
151
  setiastro/images/uhs.png,sha256=DMNQBsG6GPagUEEZud7EU9iLsdZZOvYC-uG-QB6m-so,17254
148
152
  setiastro/images/undoicon.png,sha256=9f9nPxyW81nq62OXXC2oPEnmcK5XamhbvBq-h32WbBc,18993
149
153
  setiastro/images/upscale.png,sha256=U9u-_ZF_YA1y8_ng02swf-xBGJNHj0s7vvOK4Zh2xPk,40966
@@ -175,27 +179,27 @@ setiastro/images/wims.png,sha256=EFFaRRUPMMPInRXSr_thUGQAxZTXgDVkjHeiaJiZmgk,117
175
179
  setiastro/images/wrench_icon.png,sha256=4-DFNkXZUBkfK4WCFLdcr1-b3MsrYcE3DGrp4tL6AVI,72352
176
180
  setiastro/images/xisfliberator.png,sha256=sPC7mPHX_ToyBh9nSLn9B5fVRaM89QvqzW30ohbW8VE,1551111
177
181
  setiastro/qml/ResourceMonitor.qml,sha256=k9_qXKAZLi8vj-5BffJTJu_UkRnxunZKn53HthdySKE,3948
178
- setiastro/saspro/__init__.py,sha256=C6Puq5PQr3n0aJ-2i_YAaUhTjPI-pcSzie3_tij3hhw,608
179
- setiastro/saspro/__main__.py,sha256=eghNEGSQqHQjNp0BY84T-nhQMPYSnWdIN_eRFvbLj3Q,38487
182
+ setiastro/saspro/__init__.py,sha256=SkWRk-MAmjda55lRe1NvOEKqweotw7DunPVXlrgRFDc,717
183
+ setiastro/saspro/__main__.py,sha256=CDMFSrgAwc8wdTwHCUTUzAapUbuw8NiVqkHYBijCmKE,40202
180
184
  setiastro/saspro/_generated/__init__.py,sha256=HbruQfKNbbVL4kh_t4oVG3UeUieaW8MUaqIcDCmnTvA,197
181
- setiastro/saspro/_generated/build_info.py,sha256=ivwNVT__e26gsrHWKj-lnHSvhqsNHPlCmcFA52YiWlY,112
185
+ setiastro/saspro/_generated/build_info.py,sha256=iRzxmbhtGJIfcKywH10Ti1lyiapv-nfeMjJM6-teNcw,111
182
186
  setiastro/saspro/abe.py,sha256=ao9UiOneVvgubI19TCE4gk2FNfW_E3D8rr0D_bmQOwI,59779
183
187
  setiastro/saspro/abe_preset.py,sha256=u9t16yTb9v98tLjhvh496Fsp3Z-dNiBSs5itnAaJwh8,7750
184
- setiastro/saspro/aberration_ai.py,sha256=lKHHIqWmwZmmar8YJIbaBQvWfMt_amX6hbPXth0j_zY,36115
185
- setiastro/saspro/aberration_ai_preset.py,sha256=xwodvMH77DA4j7-M4tbXFp5bAjAx-cTLENir6oqbfcc,8910
188
+ setiastro/saspro/aberration_ai.py,sha256=8LtDu_KuqvL-W0MTUIJq9KguMjJPiUEQjMUibY16H-4,41673
189
+ setiastro/saspro/aberration_ai_preset.py,sha256=nxtjo0qQYEML_8AzemMXtLNSdWf2FhMzPO9xELjlZ0U,9747
186
190
  setiastro/saspro/accel_installer.py,sha256=OSt66m7hrENHTx92Ib4xDyD3xy6X_TU4XeMbizBqRq4,9483
187
191
  setiastro/saspro/accel_workers.py,sha256=efFvyg6v0AkMF4liVcVqooHWEHhk-c2J9rRx6XAJGv4,1141
188
192
  setiastro/saspro/acv_exporter.py,sha256=em1SJDXStP_Exv7hQZCSqBBcXc-7AF0UOA0iLX4-BIM,14911
189
193
  setiastro/saspro/add_stars.py,sha256=7rYunF4Khj67zDP2dcCmcNdNx0lYtWCFace9q5gz2_g,25415
190
194
  setiastro/saspro/astrobin_exporter.py,sha256=-MZFoUVVZ3FItTbwoqoLzuOsrR3R5RQ7zf4CGC9GTr8,47455
191
195
  setiastro/saspro/astrospike.py,sha256=Or-14MS3iZrn3q1teNf-BkjVdMCsZYaON7T95dm96oI,5930
192
- setiastro/saspro/astrospike_python.py,sha256=sdBEsdLUKPqRK7Db0wosImYTJhqg8w5lzWGnzCDKj8c,72603
196
+ setiastro/saspro/astrospike_python.py,sha256=Ytl9EWsRDQBXZtwMqtCBjVdiEEr9isUeLnGmcuEw1fQ,74932
193
197
  setiastro/saspro/autostretch.py,sha256=buqmrfv38gY4C4J7RcWYOX0M_oGUaKnbGkOW2Hhbj7g,7646
194
198
  setiastro/saspro/backgroundneutral.py,sha256=MFlBEwR65ASNXIY0S-0ZUaS89FCmNV_qafPs-OxUlO4,26383
195
199
  setiastro/saspro/batch_convert.py,sha256=O46KyB-DBZiTHokaWt_op1GDRr3juSaDSeFzP3pv1Zs,12377
196
200
  setiastro/saspro/batch_renamer.py,sha256=PZe2MEwjg0n055UETIbwnwdfAux4heTVx5gr3qnNW5g,21900
197
201
  setiastro/saspro/blemish_blaster.py,sha256=aqD8v_85SBJJBLHB1XbPM-_YzXEIeQM-g-YGhaIcmGE,21314
198
- setiastro/saspro/blink_comparator_pro.py,sha256=MoQTAd0iaw-Q9Js1Bk2qQMfSs1Fs86DIWE-1dlKB9Os,130439
202
+ setiastro/saspro/blink_comparator_pro.py,sha256=XwXR-0Xj6Z3R3IYheTRwdyhpnGMiwXh3lpziAZzWRdE,132085
199
203
  setiastro/saspro/bundles.py,sha256=jWMYpalOcaMQ1QgikseOOmF7bBzDz9aykhRddaTsReQ,1892
200
204
  setiastro/saspro/bundles_dock.py,sha256=IEAJEOEEe7V4NvsmClMygTf55LXN3SkV4e23K1erzkc,4441
201
205
  setiastro/saspro/cheat_sheet.py,sha256=0bLmwY3GBWGcb4M7BBYzzrB_03XfqvZWAhQ2cBPavQ8,7852
@@ -213,12 +217,12 @@ setiastro/saspro/cosmicclarity.py,sha256=S8RsI_beDadvgImkB7fXS83FQbL6svsmZPDfEu3
213
217
  setiastro/saspro/cosmicclarity_preset.py,sha256=1nUTzC3nFe79pyWTBvNyvUL-MfTWC4SbOUvgJHA80v8,17853
214
218
  setiastro/saspro/crop_dialog_pro.py,sha256=Cv0A_XGIZPYdZknygL9_JcY0thEYklQVPMMxcHLavtA,45645
215
219
  setiastro/saspro/crop_preset.py,sha256=ubN3BZUt5okwe4qOYScJCQv0YV8PewVciCLUDo4pGOk,7033
216
- setiastro/saspro/curve_editor_pro.py,sha256=r_rQO0gt0H4ZX6EKkt7l-TLJ2FYMG96akZ-yNCDbd-0,106727
217
- setiastro/saspro/curves_preset.py,sha256=Y_SbmM5DmMqvQRCuluo3xgFNOnAQTabZjlhZrP_kFFM,13645
220
+ setiastro/saspro/curve_editor_pro.py,sha256=yfPudAPqQHevgtv-xnlL4oNB75nLk68WTsJG2pAW-k8,108609
221
+ setiastro/saspro/curves_preset.py,sha256=Cmz34JZWWrPIbudpPk1WvDk5NFjGIP-Vui3h_mxlXlk,19239
218
222
  setiastro/saspro/debayer.py,sha256=emuQdb41xHwGVvnBU-SF1H_Zdz271RFTz0lm09xl184,25314
219
223
  setiastro/saspro/debug_utils.py,sha256=uYQne3MHxg_R7y17NqKFj1_befrmjzOI3_jD4JKovnA,1085
220
224
  setiastro/saspro/dnd_mime.py,sha256=QNG97JQJc3xNQ5cPD4zwbC7OZTf9BzqjXE2SvZV9H5Q,1143
221
- setiastro/saspro/doc_manager.py,sha256=phRjYuGm1hI-tkSOHcvlkWyBCKdwy0CR2nYiIfVLbJk,112851
225
+ setiastro/saspro/doc_manager.py,sha256=ujII9hpYAgOagMxtUeeIwVEmQjzRot2kqj4-mF1ULGg,113035
222
226
  setiastro/saspro/exoplanet_detector.py,sha256=_zhasWOf63BCZJuFy1vRC5PMGcc4Rf6DmkbveUuzDdY,96858
223
227
  setiastro/saspro/file_utils.py,sha256=zB2BqVnDVLbg_5eO3PIFgYu_Ulm5M3MXQUuzNdvO6Q4,7569
224
228
  setiastro/saspro/fitsmodifier.py,sha256=jYrSUwMacohP8ErFdJy0sr8Ld4YrTUgDdwaDr-_pRWg,30362
@@ -232,42 +236,44 @@ setiastro/saspro/ghs_preset.py,sha256=Zw3MJH5rEz7nqLdlmRBm3vYXgyopoupyDGAhM-PRXq
232
236
  setiastro/saspro/graxpert.py,sha256=XSLeBhlAY2DkYUw93j2OEOuPLOPfzWYcT5Dz3JhhpW8,22579
233
237
  setiastro/saspro/graxpert_preset.py,sha256=ESds2NPMPfsBHWNBfyYZ1rFpQxZ9gPOtxwz8enHfFfc,10719
234
238
  setiastro/saspro/gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
- setiastro/saspro/gui/main_window.py,sha256=VyhDfHD_sW6dB6NHewU4BqRsu2r9cPoUuU0UiUO_-Es,365391
239
+ setiastro/saspro/gui/main_window.py,sha256=ucjhcH9OZsQ3npCmYpVabAz47Xdu67LXdTqDqckao4g,374917
236
240
  setiastro/saspro/gui/mixins/__init__.py,sha256=ubdTIri0xoRs6MwDnEaVsAHbMxuPqz0CZcYcue3Mkcc,836
237
241
  setiastro/saspro/gui/mixins/dock_mixin.py,sha256=C6IWKM-uP2ekqO7ozVQQcTnEgAkUL_OaRZbncIdrh8g,23893
238
- setiastro/saspro/gui/mixins/file_mixin.py,sha256=MjFTsq99lyHl4hdqt3U28H3tLwGByaRX9ln-dxuT4-0,17073
242
+ setiastro/saspro/gui/mixins/file_mixin.py,sha256=p6gKJrDTKovK4YzowDQy1Z5nNsspQe7B9ICRXvCUvxc,17893
239
243
  setiastro/saspro/gui/mixins/geometry_mixin.py,sha256=x-HyLXGFhEs8SJuXT8EF6tS3XJaH8IhAP-ZFJ2BS2Lw,19038
240
244
  setiastro/saspro/gui/mixins/header_mixin.py,sha256=kfZUJviB61c8NBXFB3MVBEcRPX_36ZV8tUZNJkDmMJ0,17253
241
245
  setiastro/saspro/gui/mixins/mask_mixin.py,sha256=hrC5jLWxUZgQiYUXp7nvECo2uiarK7_HKgawG4HGB9w,15711
242
- setiastro/saspro/gui/mixins/menu_mixin.py,sha256=gzdZEvxZosfBG75mft-yyeQsdvMRrjmMaWjk9fzbd_Q,16393
246
+ setiastro/saspro/gui/mixins/menu_mixin.py,sha256=eoXZPjMysBXcC2DllHmXwSFv2BnFO-GDUgm-9XpJU0c,16750
243
247
  setiastro/saspro/gui/mixins/theme_mixin.py,sha256=td6hYnZn17lXlFxQOXgK7-qfKo6CIJACF8_zrULlEkc,20740
244
- setiastro/saspro/gui/mixins/toolbar_mixin.py,sha256=fphTYtGM89x7dQ4Wa_0JLYoXkxCxT1Q0t2QvXRqReL0,87717
248
+ setiastro/saspro/gui/mixins/toolbar_mixin.py,sha256=6LYgIRfNd59NYWEZ0zmCqLanwaYhLEqsGEm10RI9O54,92924
245
249
  setiastro/saspro/gui/mixins/update_mixin.py,sha256=rq7J0Pcn_gO8UehCGVtcSvf-MDbmeGf796h0JBGr0sM,16545
246
250
  setiastro/saspro/gui/mixins/view_mixin.py,sha256=EacXxtoAvkectGgLiahf3rHv2AaqKDQUteocVV_P834,17850
247
251
  setiastro/saspro/gui/statistics_dialog.py,sha256=celhcsHcp3lNpox_X0ByAiYE80qFaF-dYyP8StzgrcU,1955
248
252
  setiastro/saspro/halobgon.py,sha256=fjwsCWgf8aIGGGiUKcbMcI8A3z2vgvssThM_bTws-EE,20488
249
253
  setiastro/saspro/header_viewer.py,sha256=B2jlIcySInGL3pm5gqgWi3aWBIxtiqjyPAYBuXFn7IQ,17555
250
254
  setiastro/saspro/headless_utils.py,sha256=Zz7yozPAcSNGqZOf3InecK9nvyOZVzziOVVJatF_Yio,2646
251
- setiastro/saspro/histogram.py,sha256=YU3q-4vwlZ1yq99FTmUtnkb7NtkgIEe-VvsnXQC5e-0,29144
255
+ setiastro/saspro/histogram.py,sha256=Mx1cSSJsgDu2zAbaALNTGUGnEN0Ig1_UUVZvXLGP78Q,35080
252
256
  setiastro/saspro/history_explorer.py,sha256=wpVRUnZdS8F7bKEXoCDtdcGlVl9nJfRNj3NTOf1zDrc,34747
253
257
  setiastro/saspro/i18n.py,sha256=365ZMyO1rk_ToKbdBXjUQqka9dv7tp5pjIWcql7AosM,4873
254
258
  setiastro/saspro/image_combine.py,sha256=WjlEMOJoY968feneRhiXRkR5sh5O-lmoxUvxLbPCvwM,18144
255
259
  setiastro/saspro/image_peeker_pro.py,sha256=Ct5z2SHDZ4zDGmx8651dXyhN12kNwsYTp2yxEQnK0_w,62329
256
260
  setiastro/saspro/imageops/__init__.py,sha256=CE9mHOsruHOQ5bYOHr1_fhxd9sdK1W9BpAimo-r5V8w,1084
257
261
  setiastro/saspro/imageops/mdi_snap.py,sha256=Xyogrv3N0KRAKcfC65hy_PKG6ZktjmwDBisCQ_cP9pY,10117
262
+ setiastro/saspro/imageops/narrowband_normalization.py,sha256=q1KdHS7bjRYW-N0Jbszxf0TF38tNNgXKknM80lrzUsA,26793
258
263
  setiastro/saspro/imageops/scnr.py,sha256=jLHxBU4KQ9Mu61Cym5YUq0pwxajJmGrPQRV2pug9LXE,1330
264
+ setiastro/saspro/imageops/serloader.py,sha256=uxZUobb3ebvd5xWr4XorOSNmtg7_9EMj6WqQ-E1fnxo,49028
259
265
  setiastro/saspro/imageops/starbasedwhitebalance.py,sha256=urssLdgKD7J_LOuscjbf9zFImnUWoH-sotGvtbxfxTo,6589
260
266
  setiastro/saspro/imageops/stretch.py,sha256=E_Ydh5VxUHrehwivhvVDvF8y89U6SRyjIFUQgJjHWXI,27113
261
267
  setiastro/saspro/isophote.py,sha256=eSzlyBN_tZJSJTKlnBjwHY0zdw0SXPV6BRk_jt9TlVU,53753
262
- setiastro/saspro/layers.py,sha256=L-_C91YlPF8NtyNbALkU9OlhK5mhtP3Ks1XiGWGG5c0,6641
263
- setiastro/saspro/layers_dock.py,sha256=M4rc-UNDggClDxQdf-6wMwuvo6A23RK8fAqlcHJC8I4,35677
268
+ setiastro/saspro/layers.py,sha256=X83XlwJhH0zjjC6b3CGeQg4dBp4w9zxBGfZVwtY1h3Q,12997
269
+ setiastro/saspro/layers_dock.py,sha256=1vdxAPmdQ1_8ZqA4IySspqvcydB_alSj3AARoWbb29Y,42735
264
270
  setiastro/saspro/lazy_imports.py,sha256=0M-4zklRGlqt5tvV6XZEFm958cRrOkxrjvSp_Ib1_zA,6564
265
271
  setiastro/saspro/legacy/__init__.py,sha256=NjuxU-id3METsQ6tNd53YVqDTZK6mEz7uYjLzguCdNQ,121
266
- setiastro/saspro/legacy/image_manager.py,sha256=ApWwRKOgmzgpNLw_t0l4AFXdOAZhrIG71zL8NiDnzQY,101372
267
- setiastro/saspro/legacy/numba_utils.py,sha256=fp3Rr2SzFZ7796NPkjO2fYHcXgWKFPwr91Yl3_CDwGI,135386
272
+ setiastro/saspro/legacy/image_manager.py,sha256=qH0NHRjJu6vDWTEYivTNifH9ytVRN1f5XMhm7pBCDVE,101597
273
+ setiastro/saspro/legacy/numba_utils.py,sha256=JZW1yJGMd0QLYojVpk9h_nEf6MpbdFTzqEPnN4m7GjU,135407
268
274
  setiastro/saspro/legacy/xisf.py,sha256=Ah1CXDAohN__ej1Lq7LPU8vGLnDz8fluLQTGE71aUoc,52669
269
275
  setiastro/saspro/linear_fit.py,sha256=s17ZExDxToqBuqv14-o6OFQpXYTyW2TUj_EunohxvAk,20918
270
- setiastro/saspro/live_stacking.py,sha256=CrjmU16S5PKJriO-SZAjKUq6gvDIQZ-JICCGDqXHnGY,80351
276
+ setiastro/saspro/live_stacking.py,sha256=txqnqzPCJa4Ub-XQmfHRy8xuqY-5L129ryuY2LhA_e0,81253
271
277
  setiastro/saspro/log_bus.py,sha256=1H6cTrv138I89BU5K7rhA-QRXPxY0_2C5eegS38Mc-o,178
272
278
  setiastro/saspro/logging_config.py,sha256=vRETX9Nw4bYaBDZAbglo1m7V-2rh85QGE8eRS-yoOcA,14868
273
279
  setiastro/saspro/luminancerecombine.py,sha256=Y2l96xHPLj1K7W7TptvYZ8d4WagsqQ3uM40jokeHVkI,19264
@@ -283,7 +289,8 @@ setiastro/saspro/mfdeconvcudnn.py,sha256=Y8ThkwOs-CZdF_53N6Wu2naDQ1VIa055oGtlgo1
283
289
  setiastro/saspro/mfdeconvsport.py,sha256=UcDV3FP5wDIhFsOnDlLVywtk_RDrpKVOjWbJNOL-Cdk,95323
284
290
  setiastro/saspro/minorbodycatalog.py,sha256=PaOwy1T_ApEfPyGZFUD4qB1n7jyK6kuw1FjBhP2HCTw,19662
285
291
  setiastro/saspro/morphology.py,sha256=WdxA3yLdMCLsAQoRY6qmP3LB5jjZNzliFBhuNkGN_o8,16695
286
- setiastro/saspro/multiscale_decomp.py,sha256=g3KSxmjlBUH9RmZ1RPRqtRZVtBtodUdQNqeBgK1n-nQ,66592
292
+ setiastro/saspro/multiscale_decomp.py,sha256=GQ6iTFcTDxj0WvnO0bQjTz8G4Wli9Dl9bQNeEcBpxBw,66724
293
+ setiastro/saspro/narrowband_normalization.py,sha256=mVzf8JJVZREbsai63GspR41iH3WnwGrYu0pywczfIi0,64036
287
294
  setiastro/saspro/nbtorgb_stars.py,sha256=uteG7X0g2nC9bIJwb_1TfdQP1xUY_jCI_hbiAygMRJg,23329
288
295
  setiastro/saspro/numba_utils.py,sha256=hOSayRTzrzD4glweFI7ztjVjRjBWZtjK3FIGObYmOT8,116040
289
296
  setiastro/saspro/numba_warmup.py,sha256=6ZbZ2Ss4VrioLnMUcyRQyY2KR1fmRBqzyoUwxuvIyh4,5268
@@ -299,36 +306,43 @@ setiastro/saspro/pedestal.py,sha256=WkwNaY0Qp1XP6KFtb6tnnKMhg71R5WEhVOdwWwJFmJ8,
299
306
  setiastro/saspro/perfect_palette_picker.py,sha256=wJSTQQZgFm-baEBRopfF4Aw6vtvTmfL4_FZcd1q31vs,46937
300
307
  setiastro/saspro/pipeline.py,sha256=QO8tttr050dbJkpkShO4g7gUEESAcRhhn7LLp0IwKyw,3774
301
308
  setiastro/saspro/pixelmath.py,sha256=BVMe5ekKnPR2bLt6OEpUqzkMUsu2ENQhmcQ-hM5XcAw,72203
309
+ setiastro/saspro/planetprojection.py,sha256=2e51jpdabb9g6vJ1ItnaGxIUEJNRag4tEKDzP2FwaFw,144308
302
310
  setiastro/saspro/plate_solver.py,sha256=QREhP8OKEm4jy2VGFEINW1q3-B4-lGnpIKdNiOwgxuc,96342
303
311
  setiastro/saspro/project_io.py,sha256=usCbXxgB6bKj4L_71eTQIIzOzYAWxaNUoY4duB6oC5g,30357
304
312
  setiastro/saspro/psf_utils.py,sha256=K3R4BjUzsopLRuLTbPlm8lBw3-x9twNWG4bK-4phDM4,4555
305
313
  setiastro/saspro/psf_viewer.py,sha256=gaQhzLIhk0i5aRXREzWeieaD5VY22wOJx-ehbfaETuc,22952
306
314
  setiastro/saspro/pyi_rthook_astroquery.py,sha256=Omt8U0gMI3efw3y-GUUJtBYUylwT1OMn0285QW3kRzE,3993
307
- setiastro/saspro/remove_green.py,sha256=AxeHtN_FqbXKpPRkUfsVefyhQfTsxKHN9Hoxmygp1co,12088
315
+ setiastro/saspro/remove_green.py,sha256=bd_4xLe-tEYPncOSVUHh-fVIrPWG6K0ESKgAygrwj_M,12082
308
316
  setiastro/saspro/remove_stars.py,sha256=tv61y58xdm5g5Gu5T3I7jUqSmVVguJ9BWOKBy_X8ub8,60967
309
317
  setiastro/saspro/remove_stars_preset.py,sha256=HcR50bRXqiJSx4jMyle389g8b6SIulXHxgSysk07vdk,19195
310
- setiastro/saspro/resources.py,sha256=X2xHo-l0ttzdcw5wjbTVijXegXx4uAoJkChfRGv2ul4,26912
318
+ setiastro/saspro/resources.py,sha256=gqnGhWd9gt4NnADI3fnTSRcs8koigFrihLUj4urLlWc,27559
311
319
  setiastro/saspro/rgb_combination.py,sha256=8MKlxsbn5Pmiq3Vh28fMVYgYG4EIsvOYrwSJisJGyds,8765
312
320
  setiastro/saspro/rgb_extract.py,sha256=FZRA2qac8LR2u-jNcQP-1xFeiOYVBo06-Q3Xl0KAlZM,624
313
- setiastro/saspro/rgbalign.py,sha256=WpKzuvwese19Yo0n8ew75GwqQ6aKiryruoVVgL9k220,30217
321
+ setiastro/saspro/rgbalign.py,sha256=XwBDj5t_zj9Uh-PaX1SNlzix9PftnQBIoTMtRPvYK80,46528
314
322
  setiastro/saspro/runtime_imports.py,sha256=tgIHH10cdAEbCTOmcs7retQhAww2dEc_3mKrv_m8W9s,206
315
323
  setiastro/saspro/runtime_torch.py,sha256=IEVqD8jgn6la8t3R9ngZ2egSGMAC_tr1im3R8BnvXTQ,33497
316
- setiastro/saspro/save_options.py,sha256=HPMXl5ya7HlCgDle9mPUrthzIFVJWXQGrea_OkcHg6c,2722
324
+ setiastro/saspro/save_options.py,sha256=wUvuZBCDcQFDXF846njBd_4xoSRa2Ih1-I8Hf5ZTLbk,3648
317
325
  setiastro/saspro/selective_color.py,sha256=hx-9X4jeso797ifoBmwp9hNagPW4cvNPs9-T0JLHce0,64804
318
- setiastro/saspro/sfcc.py,sha256=TM2K1WylXX0AXvi-yFMYdfVporinvr9h_s2Iq1YqRCs,80776
319
- setiastro/saspro/shortcuts.py,sha256=lYj3lBZJYS3AkJra5rBsrvL4hh2o4r08dAHFRSfZnEs,137893
326
+ setiastro/saspro/ser_stack_config.py,sha256=OMQHnRysXMW2l05PGLlwu1JxEBAcdUpBOEnFvn9jXP0,4921
327
+ setiastro/saspro/ser_stacker.py,sha256=HLJgX-Dc8hIajNupoK6U-APbr1vsHOycerL5KeYDI1Q,85310
328
+ setiastro/saspro/ser_stacker_dialog.py,sha256=TfQBwbEF7722jJAb4nML-eQPe247usbeaby98sz_Hho,69471
329
+ setiastro/saspro/ser_tracking.py,sha256=HU5F2ZAekjBsKu-nYQVqbx3FukUqGYTkTK6J9n0tUgg,8077
330
+ setiastro/saspro/serviewer.py,sha256=QvPtJky2IzrywXaOYjeSZSNY0I64TSrzfgH7vRgGk7M,68763
331
+ setiastro/saspro/sfcc.py,sha256=mKdNfbMxl4fgqyZnuAlkzNNIU3huYOHgqw0FGjtVhUs,89097
332
+ setiastro/saspro/shortcuts.py,sha256=QvFBXN_S8jqEwaP9m4pJMLVqzBmxo5HrjWhVCV9etQg,138256
320
333
  setiastro/saspro/signature_insert.py,sha256=pWDxUO1Rxm27_fHSo2Y99bdOD2iG9q4AUjGR20x6TiA,70401
321
- setiastro/saspro/stacking_suite.py,sha256=Zp0FmRVc7JpHxZfqo7xiyD-c5evbXNq7rCQhXCo9Keo,870450
334
+ setiastro/saspro/stacking_suite.py,sha256=D0-5dkuy0LGgUxv5hp27V3xtzZ-rbqQvV3cH8vdJ5YI,871357
322
335
  setiastro/saspro/star_alignment.py,sha256=lRpDFvDKsMluu2P_kotQ9OumlnGtEWwGE7Gm-ZYccm8,326894
323
336
  setiastro/saspro/star_alignment_preset.py,sha256=1QLRRUsVGr3-iX4kKvV9s-NuDRJVnRQat8qdTIs1nao,13164
324
337
  setiastro/saspro/star_metrics.py,sha256=LRfBdqjwJJ9iz_paY-CkhPIqt2MxoXARLUy73ZKTA_0,1503
325
338
  setiastro/saspro/star_spikes.py,sha256=PKI9C8SYmyi9St-IMtyJn75858kfi0NIJ26uDEjlSV0,33021
326
339
  setiastro/saspro/star_stretch.py,sha256=Sb4ZD3nTVS7zVIWPDtgjgwwhDnuOqM-cW6DBVLlqM1c,21308
327
- setiastro/saspro/stat_stretch.py,sha256=IdHo-katqerGnZp0z6LtKFkUYfwX5enxDtUgrCMfk94,45528
340
+ setiastro/saspro/stat_stretch.py,sha256=DQjLzhsvcqhJrBmR_ZuSoGHEo5D1R7SHg_pfRnEZQ58,50934
328
341
  setiastro/saspro/status_log_dock.py,sha256=SEZiijVLmtWbGxxjvf3XWUuMUhoVw50nwVfj7NhAl8s,2922
329
- setiastro/saspro/subwindow.py,sha256=YzTTmqb4_6XWOiVEgck631ysUf3OnnSr5Ok_Xjx2yOY,142799
342
+ setiastro/saspro/subwindow.py,sha256=xiaowKi_G4Ph4L4bW1vbG5ZzMwFfhNVdAEHnuFmdlZc,144201
330
343
  setiastro/saspro/supernovaasteroidhunter.py,sha256=PgCq3IR2pzsNBx6IxdhqfZlKPMZFhWI6cMJi600He78,66781
331
344
  setiastro/saspro/swap_manager.py,sha256=7hJvQsnm1LSqLmXrj5uQkTSqNJq1SvrtrkCQPJdNego,4643
345
+ setiastro/saspro/texture_clarity.py,sha256=1snw-j91j5C--qi27VtQfZ_pIcRDLNH0K63tkFGvqe4,22918
332
346
  setiastro/saspro/torch_backend.py,sha256=e8ZNIeSP33NjNRH4yNhrhZRo5k7tNEpJ6FNlOQ-kp8I,2473
333
347
  setiastro/saspro/torch_rejection.py,sha256=p5xpslY4iBvqGZdlq-QObOssVx3maAG4CQHQxXETq64,19426
334
348
  setiastro/saspro/translations/all_source_strings.json,sha256=cbzVfkmnRdgOwebqViLnj2pYhUgfmZHBt3ueSs81SPE,136852
@@ -385,7 +399,7 @@ setiastro/saspro/widgets/minigame/game.js,sha256=M8A8NL1RKc9kLtGvkL4Zd2_AE_Zjc-P
385
399
  setiastro/saspro/widgets/minigame/index.html,sha256=BD39tHEdpSIo1sdQpHuG3OaE9Hwe5Y0imI8a7T10uck,2290
386
400
  setiastro/saspro/widgets/minigame/style.css,sha256=RNj9XrKnn_r9ow3JnQmRwSpyJlBOwx_Rs5rWDEjRTC0,4540
387
401
  setiastro/saspro/widgets/preview_dialogs.py,sha256=qt2bRgLBD_a0sGb0t4losYFMAFC-ZCe-l5H7jPjDC2o,10679
388
- setiastro/saspro/widgets/resource_monitor.py,sha256=_HXce1CBmjrhQtOcBh3IUEdiwuGlP6vnG7MTsKq81mw,11032
402
+ setiastro/saspro/widgets/resource_monitor.py,sha256=2mSZXiqpcKp2xxqDMZRAh4GTF5cUC7Be_ZrN2w6CONo,12154
389
403
  setiastro/saspro/widgets/spinboxes.py,sha256=hPBaoFlQDZ1uikZBZXiaymW0Nq_PYpJ5RWHV8BNxsLI,10405
390
404
  setiastro/saspro/widgets/themed_buttons.py,sha256=m6f_AYCx-tUmKf3U1CBuBbUsXOLW3cS3_oZUd4plVuU,445
391
405
  setiastro/saspro/widgets/wavelet_utils.py,sha256=RNat7N2mtkK74jAIwmdcxYghrdCe39DjFZ-iCvC5cuQ,11985
@@ -393,9 +407,9 @@ setiastro/saspro/wimi.py,sha256=CNo833Pur9P-A1DUSntlAaQWekf6gzWIvetOMvLDrOw,3146
393
407
  setiastro/saspro/wims.py,sha256=HDfVI3Ckf5OJEJLH8NI36pFc2USZnETpb4UDIvweNX4,27450
394
408
  setiastro/saspro/window_shelf.py,sha256=jQUifB3uJ9tkzXqmscWj8lHQN5E8yleuRc7hDnes4-k,7453
395
409
  setiastro/saspro/xisf.py,sha256=Ah1CXDAohN__ej1Lq7LPU8vGLnDz8fluLQTGE71aUoc,52669
396
- setiastrosuitepro-1.6.12.dist-info/entry_points.txt,sha256=vJfnZaV6Uj3laETakqT8-D-aJZI_nYIicrhSoL0uuko,227
397
- setiastrosuitepro-1.6.12.dist-info/licenses/LICENSE,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
398
- setiastrosuitepro-1.6.12.dist-info/licenses/license.txt,sha256=KCwYZ9VpVwmzjelDq1BzzWqpBvt9nbbapa-woz47hfQ,123930
399
- setiastrosuitepro-1.6.12.dist-info/METADATA,sha256=4CkpD6Eq6rJ8G4cy9XNDCASja6g5zPUrQj3W8PP-Dro,9809
400
- setiastrosuitepro-1.6.12.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
401
- setiastrosuitepro-1.6.12.dist-info/RECORD,,
410
+ setiastrosuitepro-1.7.3.dist-info/entry_points.txt,sha256=vJfnZaV6Uj3laETakqT8-D-aJZI_nYIicrhSoL0uuko,227
411
+ setiastrosuitepro-1.7.3.dist-info/licenses/LICENSE,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
412
+ setiastrosuitepro-1.7.3.dist-info/licenses/license.txt,sha256=KCwYZ9VpVwmzjelDq1BzzWqpBvt9nbbapa-woz47hfQ,123930
413
+ setiastrosuitepro-1.7.3.dist-info/METADATA,sha256=vXF_AZ0PBoL03VyVA97BhQ-mOaJLYxfsz5c8QSwPXbU,9919
414
+ setiastrosuitepro-1.7.3.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
415
+ setiastrosuitepro-1.7.3.dist-info/RECORD,,