setiastrosuitepro 1.6.12__py3-none-any.whl → 1.7.1.post2__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.
Files changed (42) hide show
  1. setiastro/images/TextureClarity.svg +56 -0
  2. setiastro/images/narrowbandnormalization.png +0 -0
  3. setiastro/images/planetarystacker.png +0 -0
  4. setiastro/saspro/_generated/build_info.py +2 -2
  5. setiastro/saspro/aberration_ai.py +128 -13
  6. setiastro/saspro/aberration_ai_preset.py +29 -3
  7. setiastro/saspro/astrospike_python.py +45 -3
  8. setiastro/saspro/blink_comparator_pro.py +116 -71
  9. setiastro/saspro/curve_editor_pro.py +72 -22
  10. setiastro/saspro/curves_preset.py +249 -47
  11. setiastro/saspro/gui/main_window.py +285 -44
  12. setiastro/saspro/gui/mixins/file_mixin.py +35 -16
  13. setiastro/saspro/gui/mixins/menu_mixin.py +8 -0
  14. setiastro/saspro/gui/mixins/toolbar_mixin.py +115 -6
  15. setiastro/saspro/histogram.py +179 -7
  16. setiastro/saspro/imageops/narrowband_normalization.py +816 -0
  17. setiastro/saspro/imageops/serloader.py +1345 -0
  18. setiastro/saspro/legacy/numba_utils.py +1 -1
  19. setiastro/saspro/live_stacking.py +24 -4
  20. setiastro/saspro/multiscale_decomp.py +30 -17
  21. setiastro/saspro/narrowband_normalization.py +1618 -0
  22. setiastro/saspro/remove_green.py +1 -1
  23. setiastro/saspro/resources.py +6 -0
  24. setiastro/saspro/rgbalign.py +456 -12
  25. setiastro/saspro/ser_stack_config.py +82 -0
  26. setiastro/saspro/ser_stacker.py +2321 -0
  27. setiastro/saspro/ser_stacker_dialog.py +1838 -0
  28. setiastro/saspro/ser_tracking.py +206 -0
  29. setiastro/saspro/serviewer.py +1625 -0
  30. setiastro/saspro/sfcc.py +298 -64
  31. setiastro/saspro/shortcuts.py +14 -7
  32. setiastro/saspro/stacking_suite.py +21 -6
  33. setiastro/saspro/stat_stretch.py +179 -31
  34. setiastro/saspro/subwindow.py +2 -4
  35. setiastro/saspro/texture_clarity.py +593 -0
  36. setiastro/saspro/widgets/resource_monitor.py +122 -74
  37. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.1.post2.dist-info}/METADATA +3 -2
  38. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.1.post2.dist-info}/RECORD +42 -30
  39. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.1.post2.dist-info}/WHEEL +0 -0
  40. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.1.post2.dist-info}/entry_points.txt +0 -0
  41. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.1.post2.dist-info}/licenses/LICENSE +0 -0
  42. {setiastrosuitepro-1.6.12.dist-info → setiastrosuitepro-1.7.1.post2.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.1.post2
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
@@ -92,6 +92,7 @@ setiastro/images/maskremove.png,sha256=Oi_NRrruNFh9j9rvdtbFpv7Ob6wehyi_BOq7I4c6n
92
92
  setiastro/images/morpho.png,sha256=ypBFJNRNrl9ZOY3MCpSGeoHgIe6sabZQc4qM1nGiiG0,80192
93
93
  setiastro/images/mosaic.png,sha256=Lml13ofxFYug4fYF7LFzA4ZaPFm9bKDVirH0r5XcZKs,29514
94
94
  setiastro/images/multiscale_decomp.png,sha256=DFlFVG8xHP1LvTF7pL3v1Uy8i9CI6CVVgN-x9uHDv6U,7525
95
+ setiastro/images/narrowbandnormalization.png,sha256=a6aJNT9LmHLSZn44TajNHH6Qlu3qr1Cq_TweQE82gJM,191182
95
96
  setiastro/images/nbtorgb.png,sha256=tzxgLNKbXSvKVmv3PIQ42zWIbvwRVBX8Egc7pvwYQV0,33271
96
97
  setiastro/images/neutral.png,sha256=sOfj3-SH8gNTd4oy6yhnx-rYqMq6qbKtm7NHzWCYMvs,13591
97
98
  setiastro/images/new_moon.png,sha256=GKLXCQGPh7cFfo87598roMCcn6XCN7bn0k5C2arAs-w,2071
@@ -102,6 +103,7 @@ setiastro/images/pedestal.png,sha256=hidv6ofPwx_lHic5Ne6NOZUAmGGTdFMRTdtz5sZusdk
102
103
  setiastro/images/pen.png,sha256=tSuv3pRXX-AwXsn1dxuWgep-D4Km30Zttdk0SikQQW4,26122
103
104
  setiastro/images/pixelmath.png,sha256=TL4ghw_u83iV2Kprs5PgT94C7wiLtewiP9Y51Uf4Qzc,86235
104
105
  setiastro/images/pixelmath.svg,sha256=A-ZxI6Yp_dtqd72uherWbTutd9gO6rcY9Xr8pYcYNKk,1728
106
+ setiastro/images/planetarystacker.png,sha256=1x0bf_QieRgHpheVBxlgGT-d3Y6MI1RNXtLTFTDPPmk,192197
105
107
  setiastro/images/platesolve.png,sha256=9Wxv9Zclg4BGrBfQV4tUsWp_jvHj4RE8SEtfm9HjtEk,29889
106
108
  setiastro/images/ppp.png,sha256=2UNa076cxHa-U_Avo7G0661nAVB0vHfGSDOTP46dKBE,276987
107
109
  setiastro/images/pro.png,sha256=jGAnv8T8AaiazevJot-5XQvMKGjWG4CSAMforRJDTHQ,23036
@@ -144,6 +146,7 @@ setiastro/images/starspike.png,sha256=u846Ur8d2OQ2fLiR1iBtQ5Xpva0Dxnpg0-VIZLoDKO
144
146
  setiastro/images/starstretch.png,sha256=cVAbjK9ae-E2h32oFvysXkBFnvZYFd17_93czfJLVlo,23652
145
147
  setiastro/images/statstretch.png,sha256=eXZyvIqQzYQc5fcMUciGa-hVTgNeRmmwaeKR7fPqmYM,24546
146
148
  setiastro/images/supernova.png,sha256=Fu3_d4zCAGRj-lt6I3C_zYhOfmvuTiiVfQlAZvf6uv8,82721
149
+ setiastro/images/TextureClarity.svg,sha256=MwdoZirp3osLhUemAR1kDPLNG8ROrOPXv4U3rlOwAyo,2897
147
150
  setiastro/images/uhs.png,sha256=DMNQBsG6GPagUEEZud7EU9iLsdZZOvYC-uG-QB6m-so,17254
148
151
  setiastro/images/undoicon.png,sha256=9f9nPxyW81nq62OXXC2oPEnmcK5XamhbvBq-h32WbBc,18993
149
152
  setiastro/images/upscale.png,sha256=U9u-_ZF_YA1y8_ng02swf-xBGJNHj0s7vvOK4Zh2xPk,40966
@@ -178,24 +181,24 @@ setiastro/qml/ResourceMonitor.qml,sha256=k9_qXKAZLi8vj-5BffJTJu_UkRnxunZKn53Hthd
178
181
  setiastro/saspro/__init__.py,sha256=C6Puq5PQr3n0aJ-2i_YAaUhTjPI-pcSzie3_tij3hhw,608
179
182
  setiastro/saspro/__main__.py,sha256=eghNEGSQqHQjNp0BY84T-nhQMPYSnWdIN_eRFvbLj3Q,38487
180
183
  setiastro/saspro/_generated/__init__.py,sha256=HbruQfKNbbVL4kh_t4oVG3UeUieaW8MUaqIcDCmnTvA,197
181
- setiastro/saspro/_generated/build_info.py,sha256=ivwNVT__e26gsrHWKj-lnHSvhqsNHPlCmcFA52YiWlY,112
184
+ setiastro/saspro/_generated/build_info.py,sha256=4UOR5gpp-kZV0OjktWjm1RWP5qcSBa5MuW3tA51hpHU,117
182
185
  setiastro/saspro/abe.py,sha256=ao9UiOneVvgubI19TCE4gk2FNfW_E3D8rr0D_bmQOwI,59779
183
186
  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
187
+ setiastro/saspro/aberration_ai.py,sha256=8LtDu_KuqvL-W0MTUIJq9KguMjJPiUEQjMUibY16H-4,41673
188
+ setiastro/saspro/aberration_ai_preset.py,sha256=nxtjo0qQYEML_8AzemMXtLNSdWf2FhMzPO9xELjlZ0U,9747
186
189
  setiastro/saspro/accel_installer.py,sha256=OSt66m7hrENHTx92Ib4xDyD3xy6X_TU4XeMbizBqRq4,9483
187
190
  setiastro/saspro/accel_workers.py,sha256=efFvyg6v0AkMF4liVcVqooHWEHhk-c2J9rRx6XAJGv4,1141
188
191
  setiastro/saspro/acv_exporter.py,sha256=em1SJDXStP_Exv7hQZCSqBBcXc-7AF0UOA0iLX4-BIM,14911
189
192
  setiastro/saspro/add_stars.py,sha256=7rYunF4Khj67zDP2dcCmcNdNx0lYtWCFace9q5gz2_g,25415
190
193
  setiastro/saspro/astrobin_exporter.py,sha256=-MZFoUVVZ3FItTbwoqoLzuOsrR3R5RQ7zf4CGC9GTr8,47455
191
194
  setiastro/saspro/astrospike.py,sha256=Or-14MS3iZrn3q1teNf-BkjVdMCsZYaON7T95dm96oI,5930
192
- setiastro/saspro/astrospike_python.py,sha256=sdBEsdLUKPqRK7Db0wosImYTJhqg8w5lzWGnzCDKj8c,72603
195
+ setiastro/saspro/astrospike_python.py,sha256=Ytl9EWsRDQBXZtwMqtCBjVdiEEr9isUeLnGmcuEw1fQ,74932
193
196
  setiastro/saspro/autostretch.py,sha256=buqmrfv38gY4C4J7RcWYOX0M_oGUaKnbGkOW2Hhbj7g,7646
194
197
  setiastro/saspro/backgroundneutral.py,sha256=MFlBEwR65ASNXIY0S-0ZUaS89FCmNV_qafPs-OxUlO4,26383
195
198
  setiastro/saspro/batch_convert.py,sha256=O46KyB-DBZiTHokaWt_op1GDRr3juSaDSeFzP3pv1Zs,12377
196
199
  setiastro/saspro/batch_renamer.py,sha256=PZe2MEwjg0n055UETIbwnwdfAux4heTVx5gr3qnNW5g,21900
197
200
  setiastro/saspro/blemish_blaster.py,sha256=aqD8v_85SBJJBLHB1XbPM-_YzXEIeQM-g-YGhaIcmGE,21314
198
- setiastro/saspro/blink_comparator_pro.py,sha256=MoQTAd0iaw-Q9Js1Bk2qQMfSs1Fs86DIWE-1dlKB9Os,130439
201
+ setiastro/saspro/blink_comparator_pro.py,sha256=XwXR-0Xj6Z3R3IYheTRwdyhpnGMiwXh3lpziAZzWRdE,132085
199
202
  setiastro/saspro/bundles.py,sha256=jWMYpalOcaMQ1QgikseOOmF7bBzDz9aykhRddaTsReQ,1892
200
203
  setiastro/saspro/bundles_dock.py,sha256=IEAJEOEEe7V4NvsmClMygTf55LXN3SkV4e23K1erzkc,4441
201
204
  setiastro/saspro/cheat_sheet.py,sha256=0bLmwY3GBWGcb4M7BBYzzrB_03XfqvZWAhQ2cBPavQ8,7852
@@ -213,8 +216,8 @@ setiastro/saspro/cosmicclarity.py,sha256=S8RsI_beDadvgImkB7fXS83FQbL6svsmZPDfEu3
213
216
  setiastro/saspro/cosmicclarity_preset.py,sha256=1nUTzC3nFe79pyWTBvNyvUL-MfTWC4SbOUvgJHA80v8,17853
214
217
  setiastro/saspro/crop_dialog_pro.py,sha256=Cv0A_XGIZPYdZknygL9_JcY0thEYklQVPMMxcHLavtA,45645
215
218
  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
219
+ setiastro/saspro/curve_editor_pro.py,sha256=yfPudAPqQHevgtv-xnlL4oNB75nLk68WTsJG2pAW-k8,108609
220
+ setiastro/saspro/curves_preset.py,sha256=Cmz34JZWWrPIbudpPk1WvDk5NFjGIP-Vui3h_mxlXlk,19239
218
221
  setiastro/saspro/debayer.py,sha256=emuQdb41xHwGVvnBU-SF1H_Zdz271RFTz0lm09xl184,25314
219
222
  setiastro/saspro/debug_utils.py,sha256=uYQne3MHxg_R7y17NqKFj1_befrmjzOI3_jD4JKovnA,1085
220
223
  setiastro/saspro/dnd_mime.py,sha256=QNG97JQJc3xNQ5cPD4zwbC7OZTf9BzqjXE2SvZV9H5Q,1143
@@ -232,30 +235,32 @@ setiastro/saspro/ghs_preset.py,sha256=Zw3MJH5rEz7nqLdlmRBm3vYXgyopoupyDGAhM-PRXq
232
235
  setiastro/saspro/graxpert.py,sha256=XSLeBhlAY2DkYUw93j2OEOuPLOPfzWYcT5Dz3JhhpW8,22579
233
236
  setiastro/saspro/graxpert_preset.py,sha256=ESds2NPMPfsBHWNBfyYZ1rFpQxZ9gPOtxwz8enHfFfc,10719
234
237
  setiastro/saspro/gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
- setiastro/saspro/gui/main_window.py,sha256=VyhDfHD_sW6dB6NHewU4BqRsu2r9cPoUuU0UiUO_-Es,365391
238
+ setiastro/saspro/gui/main_window.py,sha256=diJSremknoG4m4xwiDV43VdMSlV04_7GqcQQO11TiCg,373474
236
239
  setiastro/saspro/gui/mixins/__init__.py,sha256=ubdTIri0xoRs6MwDnEaVsAHbMxuPqz0CZcYcue3Mkcc,836
237
240
  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
241
+ setiastro/saspro/gui/mixins/file_mixin.py,sha256=ZzKzJhnNKjbi7UQHFhq4Nr2tNLRbB_fQeMHcOj09BU8,17714
239
242
  setiastro/saspro/gui/mixins/geometry_mixin.py,sha256=x-HyLXGFhEs8SJuXT8EF6tS3XJaH8IhAP-ZFJ2BS2Lw,19038
240
243
  setiastro/saspro/gui/mixins/header_mixin.py,sha256=kfZUJviB61c8NBXFB3MVBEcRPX_36ZV8tUZNJkDmMJ0,17253
241
244
  setiastro/saspro/gui/mixins/mask_mixin.py,sha256=hrC5jLWxUZgQiYUXp7nvECo2uiarK7_HKgawG4HGB9w,15711
242
- setiastro/saspro/gui/mixins/menu_mixin.py,sha256=gzdZEvxZosfBG75mft-yyeQsdvMRrjmMaWjk9fzbd_Q,16393
245
+ setiastro/saspro/gui/mixins/menu_mixin.py,sha256=ibaDJx3HGrGTnhWxi7oZ6XxAy-eThKLSLqiL4gpnXqM,16696
243
246
  setiastro/saspro/gui/mixins/theme_mixin.py,sha256=td6hYnZn17lXlFxQOXgK7-qfKo6CIJACF8_zrULlEkc,20740
244
- setiastro/saspro/gui/mixins/toolbar_mixin.py,sha256=fphTYtGM89x7dQ4Wa_0JLYoXkxCxT1Q0t2QvXRqReL0,87717
247
+ setiastro/saspro/gui/mixins/toolbar_mixin.py,sha256=fYrgpt0jh1HbZ9i9Nb-bbgrgSUD5AMAHQ77y5W2rOI4,92408
245
248
  setiastro/saspro/gui/mixins/update_mixin.py,sha256=rq7J0Pcn_gO8UehCGVtcSvf-MDbmeGf796h0JBGr0sM,16545
246
249
  setiastro/saspro/gui/mixins/view_mixin.py,sha256=EacXxtoAvkectGgLiahf3rHv2AaqKDQUteocVV_P834,17850
247
250
  setiastro/saspro/gui/statistics_dialog.py,sha256=celhcsHcp3lNpox_X0ByAiYE80qFaF-dYyP8StzgrcU,1955
248
251
  setiastro/saspro/halobgon.py,sha256=fjwsCWgf8aIGGGiUKcbMcI8A3z2vgvssThM_bTws-EE,20488
249
252
  setiastro/saspro/header_viewer.py,sha256=B2jlIcySInGL3pm5gqgWi3aWBIxtiqjyPAYBuXFn7IQ,17555
250
253
  setiastro/saspro/headless_utils.py,sha256=Zz7yozPAcSNGqZOf3InecK9nvyOZVzziOVVJatF_Yio,2646
251
- setiastro/saspro/histogram.py,sha256=YU3q-4vwlZ1yq99FTmUtnkb7NtkgIEe-VvsnXQC5e-0,29144
254
+ setiastro/saspro/histogram.py,sha256=Mx1cSSJsgDu2zAbaALNTGUGnEN0Ig1_UUVZvXLGP78Q,35080
252
255
  setiastro/saspro/history_explorer.py,sha256=wpVRUnZdS8F7bKEXoCDtdcGlVl9nJfRNj3NTOf1zDrc,34747
253
256
  setiastro/saspro/i18n.py,sha256=365ZMyO1rk_ToKbdBXjUQqka9dv7tp5pjIWcql7AosM,4873
254
257
  setiastro/saspro/image_combine.py,sha256=WjlEMOJoY968feneRhiXRkR5sh5O-lmoxUvxLbPCvwM,18144
255
258
  setiastro/saspro/image_peeker_pro.py,sha256=Ct5z2SHDZ4zDGmx8651dXyhN12kNwsYTp2yxEQnK0_w,62329
256
259
  setiastro/saspro/imageops/__init__.py,sha256=CE9mHOsruHOQ5bYOHr1_fhxd9sdK1W9BpAimo-r5V8w,1084
257
260
  setiastro/saspro/imageops/mdi_snap.py,sha256=Xyogrv3N0KRAKcfC65hy_PKG6ZktjmwDBisCQ_cP9pY,10117
261
+ setiastro/saspro/imageops/narrowband_normalization.py,sha256=q1KdHS7bjRYW-N0Jbszxf0TF38tNNgXKknM80lrzUsA,26793
258
262
  setiastro/saspro/imageops/scnr.py,sha256=jLHxBU4KQ9Mu61Cym5YUq0pwxajJmGrPQRV2pug9LXE,1330
263
+ setiastro/saspro/imageops/serloader.py,sha256=DJiHBKF8067wsHIRY7D2B-nAJI2iHzUpIW9b0zYpKRk,46366
259
264
  setiastro/saspro/imageops/starbasedwhitebalance.py,sha256=urssLdgKD7J_LOuscjbf9zFImnUWoH-sotGvtbxfxTo,6589
260
265
  setiastro/saspro/imageops/stretch.py,sha256=E_Ydh5VxUHrehwivhvVDvF8y89U6SRyjIFUQgJjHWXI,27113
261
266
  setiastro/saspro/isophote.py,sha256=eSzlyBN_tZJSJTKlnBjwHY0zdw0SXPV6BRk_jt9TlVU,53753
@@ -264,10 +269,10 @@ setiastro/saspro/layers_dock.py,sha256=M4rc-UNDggClDxQdf-6wMwuvo6A23RK8fAqlcHJC8
264
269
  setiastro/saspro/lazy_imports.py,sha256=0M-4zklRGlqt5tvV6XZEFm958cRrOkxrjvSp_Ib1_zA,6564
265
270
  setiastro/saspro/legacy/__init__.py,sha256=NjuxU-id3METsQ6tNd53YVqDTZK6mEz7uYjLzguCdNQ,121
266
271
  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/numba_utils.py,sha256=JZW1yJGMd0QLYojVpk9h_nEf6MpbdFTzqEPnN4m7GjU,135407
268
273
  setiastro/saspro/legacy/xisf.py,sha256=Ah1CXDAohN__ej1Lq7LPU8vGLnDz8fluLQTGE71aUoc,52669
269
274
  setiastro/saspro/linear_fit.py,sha256=s17ZExDxToqBuqv14-o6OFQpXYTyW2TUj_EunohxvAk,20918
270
- setiastro/saspro/live_stacking.py,sha256=CrjmU16S5PKJriO-SZAjKUq6gvDIQZ-JICCGDqXHnGY,80351
275
+ setiastro/saspro/live_stacking.py,sha256=txqnqzPCJa4Ub-XQmfHRy8xuqY-5L129ryuY2LhA_e0,81253
271
276
  setiastro/saspro/log_bus.py,sha256=1H6cTrv138I89BU5K7rhA-QRXPxY0_2C5eegS38Mc-o,178
272
277
  setiastro/saspro/logging_config.py,sha256=vRETX9Nw4bYaBDZAbglo1m7V-2rh85QGE8eRS-yoOcA,14868
273
278
  setiastro/saspro/luminancerecombine.py,sha256=Y2l96xHPLj1K7W7TptvYZ8d4WagsqQ3uM40jokeHVkI,19264
@@ -283,7 +288,8 @@ setiastro/saspro/mfdeconvcudnn.py,sha256=Y8ThkwOs-CZdF_53N6Wu2naDQ1VIa055oGtlgo1
283
288
  setiastro/saspro/mfdeconvsport.py,sha256=UcDV3FP5wDIhFsOnDlLVywtk_RDrpKVOjWbJNOL-Cdk,95323
284
289
  setiastro/saspro/minorbodycatalog.py,sha256=PaOwy1T_ApEfPyGZFUD4qB1n7jyK6kuw1FjBhP2HCTw,19662
285
290
  setiastro/saspro/morphology.py,sha256=WdxA3yLdMCLsAQoRY6qmP3LB5jjZNzliFBhuNkGN_o8,16695
286
- setiastro/saspro/multiscale_decomp.py,sha256=g3KSxmjlBUH9RmZ1RPRqtRZVtBtodUdQNqeBgK1n-nQ,66592
291
+ setiastro/saspro/multiscale_decomp.py,sha256=GQ6iTFcTDxj0WvnO0bQjTz8G4Wli9Dl9bQNeEcBpxBw,66724
292
+ setiastro/saspro/narrowband_normalization.py,sha256=mVzf8JJVZREbsai63GspR41iH3WnwGrYu0pywczfIi0,64036
287
293
  setiastro/saspro/nbtorgb_stars.py,sha256=uteG7X0g2nC9bIJwb_1TfdQP1xUY_jCI_hbiAygMRJg,23329
288
294
  setiastro/saspro/numba_utils.py,sha256=hOSayRTzrzD4glweFI7ztjVjRjBWZtjK3FIGObYmOT8,116040
289
295
  setiastro/saspro/numba_warmup.py,sha256=6ZbZ2Ss4VrioLnMUcyRQyY2KR1fmRBqzyoUwxuvIyh4,5268
@@ -304,31 +310,37 @@ setiastro/saspro/project_io.py,sha256=usCbXxgB6bKj4L_71eTQIIzOzYAWxaNUoY4duB6oC5
304
310
  setiastro/saspro/psf_utils.py,sha256=K3R4BjUzsopLRuLTbPlm8lBw3-x9twNWG4bK-4phDM4,4555
305
311
  setiastro/saspro/psf_viewer.py,sha256=gaQhzLIhk0i5aRXREzWeieaD5VY22wOJx-ehbfaETuc,22952
306
312
  setiastro/saspro/pyi_rthook_astroquery.py,sha256=Omt8U0gMI3efw3y-GUUJtBYUylwT1OMn0285QW3kRzE,3993
307
- setiastro/saspro/remove_green.py,sha256=AxeHtN_FqbXKpPRkUfsVefyhQfTsxKHN9Hoxmygp1co,12088
313
+ setiastro/saspro/remove_green.py,sha256=bd_4xLe-tEYPncOSVUHh-fVIrPWG6K0ESKgAygrwj_M,12082
308
314
  setiastro/saspro/remove_stars.py,sha256=tv61y58xdm5g5Gu5T3I7jUqSmVVguJ9BWOKBy_X8ub8,60967
309
315
  setiastro/saspro/remove_stars_preset.py,sha256=HcR50bRXqiJSx4jMyle389g8b6SIulXHxgSysk07vdk,19195
310
- setiastro/saspro/resources.py,sha256=X2xHo-l0ttzdcw5wjbTVijXegXx4uAoJkChfRGv2ul4,26912
316
+ setiastro/saspro/resources.py,sha256=flxNJp_0tAGHVVDkZCnxp5AsPJy-zfiOqjmAF8eGnYY,27412
311
317
  setiastro/saspro/rgb_combination.py,sha256=8MKlxsbn5Pmiq3Vh28fMVYgYG4EIsvOYrwSJisJGyds,8765
312
318
  setiastro/saspro/rgb_extract.py,sha256=FZRA2qac8LR2u-jNcQP-1xFeiOYVBo06-Q3Xl0KAlZM,624
313
- setiastro/saspro/rgbalign.py,sha256=WpKzuvwese19Yo0n8ew75GwqQ6aKiryruoVVgL9k220,30217
319
+ setiastro/saspro/rgbalign.py,sha256=XwBDj5t_zj9Uh-PaX1SNlzix9PftnQBIoTMtRPvYK80,46528
314
320
  setiastro/saspro/runtime_imports.py,sha256=tgIHH10cdAEbCTOmcs7retQhAww2dEc_3mKrv_m8W9s,206
315
321
  setiastro/saspro/runtime_torch.py,sha256=IEVqD8jgn6la8t3R9ngZ2egSGMAC_tr1im3R8BnvXTQ,33497
316
322
  setiastro/saspro/save_options.py,sha256=HPMXl5ya7HlCgDle9mPUrthzIFVJWXQGrea_OkcHg6c,2722
317
323
  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
324
+ setiastro/saspro/ser_stack_config.py,sha256=iZ2Oj1WUs2N0betBzrQbdlpbaXKjba-x_YqI7s9U38s,3426
325
+ setiastro/saspro/ser_stacker.py,sha256=gUXdPzEI6oiznWjONmXe8KmoWvZ3etWKp40-Rwr15GM,84879
326
+ setiastro/saspro/ser_stacker_dialog.py,sha256=b_woajn2DPDXekxnVmbwCoAa22M4Lvhu9Dh5RgkCNEk,68306
327
+ setiastro/saspro/ser_tracking.py,sha256=z5jHJIs0t3kK3p5C330vwz0c6zJ9KXtKIh1FlJ1LljU,7141
328
+ setiastro/saspro/serviewer.py,sha256=7qLoZzRwwygqfZtGiewurAgkKuZ1gNe1e75B4gjnTz8,62200
329
+ setiastro/saspro/sfcc.py,sha256=mKdNfbMxl4fgqyZnuAlkzNNIU3huYOHgqw0FGjtVhUs,89097
330
+ setiastro/saspro/shortcuts.py,sha256=QvFBXN_S8jqEwaP9m4pJMLVqzBmxo5HrjWhVCV9etQg,138256
320
331
  setiastro/saspro/signature_insert.py,sha256=pWDxUO1Rxm27_fHSo2Y99bdOD2iG9q4AUjGR20x6TiA,70401
321
- setiastro/saspro/stacking_suite.py,sha256=Zp0FmRVc7JpHxZfqo7xiyD-c5evbXNq7rCQhXCo9Keo,870450
332
+ setiastro/saspro/stacking_suite.py,sha256=D0-5dkuy0LGgUxv5hp27V3xtzZ-rbqQvV3cH8vdJ5YI,871357
322
333
  setiastro/saspro/star_alignment.py,sha256=lRpDFvDKsMluu2P_kotQ9OumlnGtEWwGE7Gm-ZYccm8,326894
323
334
  setiastro/saspro/star_alignment_preset.py,sha256=1QLRRUsVGr3-iX4kKvV9s-NuDRJVnRQat8qdTIs1nao,13164
324
335
  setiastro/saspro/star_metrics.py,sha256=LRfBdqjwJJ9iz_paY-CkhPIqt2MxoXARLUy73ZKTA_0,1503
325
336
  setiastro/saspro/star_spikes.py,sha256=PKI9C8SYmyi9St-IMtyJn75858kfi0NIJ26uDEjlSV0,33021
326
337
  setiastro/saspro/star_stretch.py,sha256=Sb4ZD3nTVS7zVIWPDtgjgwwhDnuOqM-cW6DBVLlqM1c,21308
327
- setiastro/saspro/stat_stretch.py,sha256=IdHo-katqerGnZp0z6LtKFkUYfwX5enxDtUgrCMfk94,45528
338
+ setiastro/saspro/stat_stretch.py,sha256=DQjLzhsvcqhJrBmR_ZuSoGHEo5D1R7SHg_pfRnEZQ58,50934
328
339
  setiastro/saspro/status_log_dock.py,sha256=SEZiijVLmtWbGxxjvf3XWUuMUhoVw50nwVfj7NhAl8s,2922
329
- setiastro/saspro/subwindow.py,sha256=YzTTmqb4_6XWOiVEgck631ysUf3OnnSr5Ok_Xjx2yOY,142799
340
+ setiastro/saspro/subwindow.py,sha256=-4m-2XS4H02H6kvloGnoPsvVj0GAy8eED-llQ1HmA2E,142877
330
341
  setiastro/saspro/supernovaasteroidhunter.py,sha256=PgCq3IR2pzsNBx6IxdhqfZlKPMZFhWI6cMJi600He78,66781
331
342
  setiastro/saspro/swap_manager.py,sha256=7hJvQsnm1LSqLmXrj5uQkTSqNJq1SvrtrkCQPJdNego,4643
343
+ setiastro/saspro/texture_clarity.py,sha256=1snw-j91j5C--qi27VtQfZ_pIcRDLNH0K63tkFGvqe4,22918
332
344
  setiastro/saspro/torch_backend.py,sha256=e8ZNIeSP33NjNRH4yNhrhZRo5k7tNEpJ6FNlOQ-kp8I,2473
333
345
  setiastro/saspro/torch_rejection.py,sha256=p5xpslY4iBvqGZdlq-QObOssVx3maAG4CQHQxXETq64,19426
334
346
  setiastro/saspro/translations/all_source_strings.json,sha256=cbzVfkmnRdgOwebqViLnj2pYhUgfmZHBt3ueSs81SPE,136852
@@ -385,7 +397,7 @@ setiastro/saspro/widgets/minigame/game.js,sha256=M8A8NL1RKc9kLtGvkL4Zd2_AE_Zjc-P
385
397
  setiastro/saspro/widgets/minigame/index.html,sha256=BD39tHEdpSIo1sdQpHuG3OaE9Hwe5Y0imI8a7T10uck,2290
386
398
  setiastro/saspro/widgets/minigame/style.css,sha256=RNj9XrKnn_r9ow3JnQmRwSpyJlBOwx_Rs5rWDEjRTC0,4540
387
399
  setiastro/saspro/widgets/preview_dialogs.py,sha256=qt2bRgLBD_a0sGb0t4losYFMAFC-ZCe-l5H7jPjDC2o,10679
388
- setiastro/saspro/widgets/resource_monitor.py,sha256=_HXce1CBmjrhQtOcBh3IUEdiwuGlP6vnG7MTsKq81mw,11032
400
+ setiastro/saspro/widgets/resource_monitor.py,sha256=2mSZXiqpcKp2xxqDMZRAh4GTF5cUC7Be_ZrN2w6CONo,12154
389
401
  setiastro/saspro/widgets/spinboxes.py,sha256=hPBaoFlQDZ1uikZBZXiaymW0Nq_PYpJ5RWHV8BNxsLI,10405
390
402
  setiastro/saspro/widgets/themed_buttons.py,sha256=m6f_AYCx-tUmKf3U1CBuBbUsXOLW3cS3_oZUd4plVuU,445
391
403
  setiastro/saspro/widgets/wavelet_utils.py,sha256=RNat7N2mtkK74jAIwmdcxYghrdCe39DjFZ-iCvC5cuQ,11985
@@ -393,9 +405,9 @@ setiastro/saspro/wimi.py,sha256=CNo833Pur9P-A1DUSntlAaQWekf6gzWIvetOMvLDrOw,3146
393
405
  setiastro/saspro/wims.py,sha256=HDfVI3Ckf5OJEJLH8NI36pFc2USZnETpb4UDIvweNX4,27450
394
406
  setiastro/saspro/window_shelf.py,sha256=jQUifB3uJ9tkzXqmscWj8lHQN5E8yleuRc7hDnes4-k,7453
395
407
  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,,
408
+ setiastrosuitepro-1.7.1.post2.dist-info/entry_points.txt,sha256=vJfnZaV6Uj3laETakqT8-D-aJZI_nYIicrhSoL0uuko,227
409
+ setiastrosuitepro-1.7.1.post2.dist-info/licenses/LICENSE,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
410
+ setiastrosuitepro-1.7.1.post2.dist-info/licenses/license.txt,sha256=KCwYZ9VpVwmzjelDq1BzzWqpBvt9nbbapa-woz47hfQ,123930
411
+ setiastrosuitepro-1.7.1.post2.dist-info/METADATA,sha256=IepY0VUqaeAsDguY5J41SVRRtQvzQ5I8FuUuxYEietM,9925
412
+ setiastrosuitepro-1.7.1.post2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
413
+ setiastrosuitepro-1.7.1.post2.dist-info/RECORD,,