setiastrosuitepro 1.8.0__py3-none-any.whl → 1.8.0.post3__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.
- setiastro/saspro/_generated/build_info.py +2 -2
- setiastro/saspro/cosmicclarity_engines/benchmark_engine.py +33 -16
- setiastro/saspro/model_manager.py +18 -0
- setiastro/saspro/model_workers.py +37 -0
- setiastro/saspro/ops/settings.py +100 -2
- {setiastrosuitepro-1.8.0.dist-info → setiastrosuitepro-1.8.0.post3.dist-info}/METADATA +1 -1
- {setiastrosuitepro-1.8.0.dist-info → setiastrosuitepro-1.8.0.post3.dist-info}/RECORD +11 -11
- {setiastrosuitepro-1.8.0.dist-info → setiastrosuitepro-1.8.0.post3.dist-info}/WHEEL +0 -0
- {setiastrosuitepro-1.8.0.dist-info → setiastrosuitepro-1.8.0.post3.dist-info}/entry_points.txt +0 -0
- {setiastrosuitepro-1.8.0.dist-info → setiastrosuitepro-1.8.0.post3.dist-info}/licenses/LICENSE +0 -0
- {setiastrosuitepro-1.8.0.dist-info → setiastrosuitepro-1.8.0.post3.dist-info}/licenses/license.txt +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# Auto-generated at build time. Do not edit.
|
|
2
|
-
BUILD_TIMESTAMP = "2026-01-
|
|
3
|
-
APP_VERSION = "1.8.0"
|
|
2
|
+
BUILD_TIMESTAMP = "2026-01-26T19:14:34Z"
|
|
3
|
+
APP_VERSION = "1.8.0.post3"
|
|
@@ -424,8 +424,8 @@ def onnx_benchmark_stellar(
|
|
|
424
424
|
provider = "DmlExecutionProvider"
|
|
425
425
|
else:
|
|
426
426
|
import onnxruntime as ort
|
|
427
|
-
|
|
428
|
-
onnx_path =
|
|
427
|
+
from setiastro.saspro.model_manager import require_model
|
|
428
|
+
onnx_path = require_model("deep_sharp_stellar_cnn_AI3_5s.onnx")
|
|
429
429
|
|
|
430
430
|
providers_avail = ort.get_available_providers()
|
|
431
431
|
|
|
@@ -647,6 +647,10 @@ def _legacy_results_schema(results: Dict[str, Any]) -> Dict[str, Any]:
|
|
|
647
647
|
|
|
648
648
|
return out
|
|
649
649
|
|
|
650
|
+
def _picked_backend(use_gpu: bool, status_cb=None) -> str:
|
|
651
|
+
models, tag = _get_stellar_model_for_benchmark(use_gpu=use_gpu, status_cb=status_cb)
|
|
652
|
+
return "ONNX" if models.is_onnx else "TORCH"
|
|
653
|
+
|
|
650
654
|
# -----------------------------
|
|
651
655
|
# One-stop runner
|
|
652
656
|
# -----------------------------
|
|
@@ -690,26 +694,39 @@ def run_benchmark(
|
|
|
690
694
|
if mode in ("GPU", "Both"):
|
|
691
695
|
if status_cb: status_cb("Running Stellar model benchmark…")
|
|
692
696
|
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
progress_cb=progress_cb,
|
|
698
|
-
status_cb=status_cb,
|
|
699
|
-
)
|
|
700
|
-
results[f"Stellar Torch ({backend})"] = {"avg_ms": float(avg_ms), "total_ms": float(total_ms)}
|
|
701
|
-
|
|
702
|
-
# ONNX benchmark (DirectML when available; otherwise CPU/CUDA if present)
|
|
703
|
-
if platform.system() == "Windows":
|
|
704
|
-
avg_o, total_o, provider = onnx_benchmark_stellar(
|
|
697
|
+
picked = _picked_backend(use_gpu=use_gpu, status_cb=status_cb)
|
|
698
|
+
|
|
699
|
+
if picked == "TORCH":
|
|
700
|
+
avg_ms, total_ms, backend = torch_benchmark_stellar(
|
|
705
701
|
patches,
|
|
706
702
|
use_gpu=use_gpu,
|
|
707
703
|
progress_cb=progress_cb,
|
|
708
704
|
status_cb=status_cb,
|
|
709
705
|
)
|
|
710
|
-
results[f"Stellar
|
|
706
|
+
results[f"Stellar Torch ({backend})"] = {"avg_ms": float(avg_ms), "total_ms": float(total_ms)}
|
|
707
|
+
|
|
708
|
+
# Optional: also run ONNX on Windows for comparison
|
|
709
|
+
if platform.system() == "Windows":
|
|
710
|
+
avg_o, total_o, provider = onnx_benchmark_stellar(
|
|
711
|
+
patches,
|
|
712
|
+
use_gpu=use_gpu,
|
|
713
|
+
progress_cb=progress_cb,
|
|
714
|
+
status_cb=status_cb,
|
|
715
|
+
)
|
|
716
|
+
results[f"Stellar ONNX ({provider})"] = {"avg_ms": float(avg_o), "total_ms": float(total_o)}
|
|
717
|
+
|
|
711
718
|
else:
|
|
712
|
-
|
|
719
|
+
# Picked ONNX (DirectML). Run ONNX benchmark as the “GPU benchmark”.
|
|
720
|
+
if platform.system() == "Windows":
|
|
721
|
+
avg_o, total_o, provider = onnx_benchmark_stellar(
|
|
722
|
+
patches,
|
|
723
|
+
use_gpu=use_gpu,
|
|
724
|
+
progress_cb=progress_cb,
|
|
725
|
+
status_cb=status_cb,
|
|
726
|
+
)
|
|
727
|
+
results[f"Stellar ONNX ({provider})"] = {"avg_ms": float(avg_o), "total_ms": float(total_o)}
|
|
728
|
+
else:
|
|
729
|
+
results["Stellar ONNX"] = "ONNX benchmark only available on Windows."
|
|
713
730
|
|
|
714
731
|
results = _legacy_results_schema(results)
|
|
715
732
|
return results
|
|
@@ -17,6 +17,24 @@ APP_FOLDER_NAME = "SetiAstroSuitePro" # keep stable
|
|
|
17
17
|
ProgressCB = Optional[Callable[[str], None]]
|
|
18
18
|
|
|
19
19
|
|
|
20
|
+
def model_path(filename: str) -> Path:
|
|
21
|
+
p = Path(models_root()) / filename
|
|
22
|
+
return p
|
|
23
|
+
|
|
24
|
+
def require_model(filename: str) -> Path:
|
|
25
|
+
"""
|
|
26
|
+
Return full path to a runtime-managed model file.
|
|
27
|
+
Raises FileNotFoundError with a helpful message if missing.
|
|
28
|
+
"""
|
|
29
|
+
p = model_path(filename)
|
|
30
|
+
if not p.exists():
|
|
31
|
+
raise FileNotFoundError(
|
|
32
|
+
f"Model not found: {p}\n"
|
|
33
|
+
f"Expected models in: {models_root()}\n"
|
|
34
|
+
f"Please install/download the Cosmic Clarity models."
|
|
35
|
+
)
|
|
36
|
+
return p
|
|
37
|
+
|
|
20
38
|
def app_data_root() -> str:
|
|
21
39
|
"""
|
|
22
40
|
Frozen-safe persistent data root.
|
|
@@ -13,6 +13,43 @@ from setiastro.saspro.model_manager import (
|
|
|
13
13
|
sha256_file,
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
+
class ModelsInstallZipWorker(QObject):
|
|
17
|
+
progress = pyqtSignal(str)
|
|
18
|
+
finished = pyqtSignal(bool, str)
|
|
19
|
+
|
|
20
|
+
def __init__(self, zip_path: str, should_cancel=None):
|
|
21
|
+
super().__init__()
|
|
22
|
+
self.zip_path = zip_path
|
|
23
|
+
self.should_cancel = should_cancel # optional callable
|
|
24
|
+
|
|
25
|
+
def run(self):
|
|
26
|
+
try:
|
|
27
|
+
from setiastro.saspro.model_manager import install_models_zip, sha256_file
|
|
28
|
+
|
|
29
|
+
if not self.zip_path or not os.path.exists(self.zip_path):
|
|
30
|
+
raise RuntimeError("ZIP file not found.")
|
|
31
|
+
|
|
32
|
+
self.progress.emit("Verifying ZIP…")
|
|
33
|
+
# quick hash (optional but helpful for support logs)
|
|
34
|
+
zhash = sha256_file(self.zip_path)
|
|
35
|
+
|
|
36
|
+
manifest = {
|
|
37
|
+
"source": "manual_zip",
|
|
38
|
+
"file": os.path.basename(self.zip_path),
|
|
39
|
+
"sha256": zhash,
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
install_models_zip(
|
|
43
|
+
self.zip_path,
|
|
44
|
+
progress_cb=lambda s: self.progress.emit(s),
|
|
45
|
+
manifest=manifest,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
self.finished.emit(True, "Models installed successfully from ZIP.")
|
|
49
|
+
except Exception as e:
|
|
50
|
+
self.finished.emit(False, str(e))
|
|
51
|
+
|
|
52
|
+
|
|
16
53
|
class ModelsDownloadWorker(QObject):
|
|
17
54
|
progress = pyqtSignal(str)
|
|
18
55
|
finished = pyqtSignal(bool, str)
|
setiastro/saspro/ops/settings.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# ops.settings.py
|
|
2
2
|
from PyQt6.QtWidgets import (
|
|
3
|
-
QLineEdit, QDialogButtonBox, QFileDialog, QDialog, QPushButton, QFormLayout,QApplication,
|
|
3
|
+
QLineEdit, QDialogButtonBox, QFileDialog, QDialog, QPushButton, QFormLayout,QApplication, QMenu,
|
|
4
4
|
QHBoxLayout, QVBoxLayout, QWidget, QCheckBox, QComboBox, QSpinBox, QDoubleSpinBox, QLabel, QColorDialog, QFontDialog, QSlider)
|
|
5
5
|
from PyQt6.QtCore import QSettings, Qt
|
|
6
|
+
from PyQt6.QtGui import QAction
|
|
6
7
|
import pytz # for timezone list
|
|
7
8
|
from setiastro.saspro.accel_installer import current_backend
|
|
8
9
|
import sys, platform
|
|
@@ -12,6 +13,7 @@ from PyQt6.QtCore import QThread
|
|
|
12
13
|
from setiastro.saspro.i18n import get_available_languages, get_saved_language, save_language
|
|
13
14
|
import importlib.util
|
|
14
15
|
import importlib.metadata
|
|
16
|
+
import webbrowser
|
|
15
17
|
|
|
16
18
|
class SettingsDialog(QDialog):
|
|
17
19
|
"""
|
|
@@ -240,7 +242,23 @@ class SettingsDialog(QDialog):
|
|
|
240
242
|
|
|
241
243
|
self.btn_models_update = QPushButton(self.tr("Download/Update Models…"))
|
|
242
244
|
self.btn_models_update.clicked.connect(self._models_update_clicked)
|
|
243
|
-
|
|
245
|
+
|
|
246
|
+
self.btn_models_install_zip = QPushButton(self.tr("Install from ZIP…"))
|
|
247
|
+
self.btn_models_install_zip.setToolTip(self.tr("Use a manually downloaded models .zip file"))
|
|
248
|
+
self.btn_models_install_zip.clicked.connect(self._models_install_from_zip_clicked)
|
|
249
|
+
|
|
250
|
+
self.btn_models_open_drive = QPushButton(self.tr("Open Drive…"))
|
|
251
|
+
self.btn_models_open_drive.setToolTip(self.tr("Open the models folder in your browser (Primary/Backup)"))
|
|
252
|
+
self.btn_models_open_drive.clicked.connect(self._models_open_drive_clicked)
|
|
253
|
+
|
|
254
|
+
row_models = QHBoxLayout()
|
|
255
|
+
row_models.addWidget(self.btn_models_update, 1)
|
|
256
|
+
row_models.addWidget(self.btn_models_install_zip)
|
|
257
|
+
row_models.addWidget(self.btn_models_open_drive)
|
|
258
|
+
|
|
259
|
+
w_models = QWidget()
|
|
260
|
+
w_models.setLayout(row_models)
|
|
261
|
+
right_col.addRow(w_models)
|
|
244
262
|
|
|
245
263
|
# ---- Right column: WIMS + RA/Dec + Updates + Display ----
|
|
246
264
|
right_col.addRow(QLabel(self.tr("<b>What's In My Sky — Defaults</b>")))
|
|
@@ -298,6 +316,86 @@ class SettingsDialog(QDialog):
|
|
|
298
316
|
# Initial Load:
|
|
299
317
|
self.refresh_ui()
|
|
300
318
|
|
|
319
|
+
def _models_open_drive_clicked(self):
|
|
320
|
+
PRIMARY_FOLDER = "https://drive.google.com/drive/folders/1-fktZb3I9l-mQimJX2fZAmJCBj_t0yAF?usp=drive_link"
|
|
321
|
+
BACKUP_FOLDER = "https://drive.google.com/drive/folders/1j46RV6touQtOmtxkhdFWGm_LQKwEpTl9?usp=drive_link"
|
|
322
|
+
|
|
323
|
+
menu = QMenu(self)
|
|
324
|
+
act_primary = menu.addAction(self.tr("Primary"))
|
|
325
|
+
act_backup = menu.addAction(self.tr("Backup"))
|
|
326
|
+
|
|
327
|
+
chosen = menu.exec(self.btn_models_open_drive.mapToGlobal(self.btn_models_open_drive.rect().bottomLeft()))
|
|
328
|
+
if chosen == act_primary:
|
|
329
|
+
webbrowser.open(PRIMARY_FOLDER)
|
|
330
|
+
elif chosen == act_backup:
|
|
331
|
+
webbrowser.open(BACKUP_FOLDER)
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
def _models_install_from_zip_clicked(self):
|
|
335
|
+
from PyQt6.QtWidgets import QFileDialog, QMessageBox, QProgressDialog
|
|
336
|
+
from PyQt6.QtCore import Qt, QThread
|
|
337
|
+
import os
|
|
338
|
+
|
|
339
|
+
zip_path, _ = QFileDialog.getOpenFileName(
|
|
340
|
+
self,
|
|
341
|
+
self.tr("Select models ZIP"),
|
|
342
|
+
"",
|
|
343
|
+
self.tr("ZIP files (*.zip);;All files (*)")
|
|
344
|
+
)
|
|
345
|
+
if not zip_path:
|
|
346
|
+
return
|
|
347
|
+
|
|
348
|
+
if not os.path.exists(zip_path):
|
|
349
|
+
QMessageBox.warning(self, self.tr("Models"), self.tr("File not found."))
|
|
350
|
+
return
|
|
351
|
+
|
|
352
|
+
self.btn_models_update.setEnabled(False)
|
|
353
|
+
self.btn_models_install_zip.setEnabled(False)
|
|
354
|
+
|
|
355
|
+
pd = QProgressDialog(self.tr("Preparing…"), self.tr("Cancel"), 0, 0, self)
|
|
356
|
+
pd.setWindowTitle(self.tr("Installing Models"))
|
|
357
|
+
pd.setWindowModality(Qt.WindowModality.ApplicationModal)
|
|
358
|
+
pd.setAutoClose(True)
|
|
359
|
+
pd.setMinimumDuration(0)
|
|
360
|
+
pd.show()
|
|
361
|
+
|
|
362
|
+
from setiastro.saspro.model_workers import ModelsInstallZipWorker
|
|
363
|
+
|
|
364
|
+
self._models_thread = QThread(self)
|
|
365
|
+
self._models_worker = ModelsInstallZipWorker(zip_path)
|
|
366
|
+
self._models_worker.moveToThread(self._models_thread)
|
|
367
|
+
|
|
368
|
+
self._models_thread.started.connect(self._models_worker.run, Qt.ConnectionType.QueuedConnection)
|
|
369
|
+
self._models_worker.progress.connect(pd.setLabelText, Qt.ConnectionType.QueuedConnection)
|
|
370
|
+
|
|
371
|
+
def _cancel():
|
|
372
|
+
if self._models_thread.isRunning():
|
|
373
|
+
self._models_thread.requestInterruption()
|
|
374
|
+
pd.canceled.connect(_cancel, Qt.ConnectionType.QueuedConnection)
|
|
375
|
+
|
|
376
|
+
def _done(ok: bool, msg: str):
|
|
377
|
+
pd.reset()
|
|
378
|
+
pd.deleteLater()
|
|
379
|
+
|
|
380
|
+
self._models_thread.quit()
|
|
381
|
+
self._models_thread.wait()
|
|
382
|
+
|
|
383
|
+
self.btn_models_update.setEnabled(True)
|
|
384
|
+
self.btn_models_install_zip.setEnabled(True)
|
|
385
|
+
self._refresh_models_status()
|
|
386
|
+
|
|
387
|
+
if ok:
|
|
388
|
+
QMessageBox.information(self, self.tr("Models"), self.tr("✅ {0}").format(msg))
|
|
389
|
+
else:
|
|
390
|
+
QMessageBox.warning(self, self.tr("Models"), self.tr("❌ {0}").format(msg))
|
|
391
|
+
|
|
392
|
+
self._models_worker.finished.connect(_done, Qt.ConnectionType.QueuedConnection)
|
|
393
|
+
self._models_thread.finished.connect(self._models_worker.deleteLater, Qt.ConnectionType.QueuedConnection)
|
|
394
|
+
self._models_thread.finished.connect(self._models_thread.deleteLater, Qt.ConnectionType.QueuedConnection)
|
|
395
|
+
|
|
396
|
+
self._models_thread.start()
|
|
397
|
+
|
|
398
|
+
|
|
301
399
|
def _models_update_clicked(self):
|
|
302
400
|
from PyQt6.QtWidgets import QMessageBox, QProgressDialog
|
|
303
401
|
from PyQt6.QtCore import Qt, QThread
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: setiastrosuitepro
|
|
3
|
-
Version: 1.8.0
|
|
3
|
+
Version: 1.8.0.post3
|
|
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
|
|
@@ -183,7 +183,7 @@ setiastro/qml/ResourceMonitor.qml,sha256=k9_qXKAZLi8vj-5BffJTJu_UkRnxunZKn53Hthd
|
|
|
183
183
|
setiastro/saspro/__init__.py,sha256=6o8orhytzBWyJWBdG37xPcT6IVPZOG8d22FBVzn0Kac,902
|
|
184
184
|
setiastro/saspro/__main__.py,sha256=_zAHsw4SNWYzMXlswBuiMGgTUGYrU5p5-dsxhQ3_GWk,40789
|
|
185
185
|
setiastro/saspro/_generated/__init__.py,sha256=HbruQfKNbbVL4kh_t4oVG3UeUieaW8MUaqIcDCmnTvA,197
|
|
186
|
-
setiastro/saspro/_generated/build_info.py,sha256=
|
|
186
|
+
setiastro/saspro/_generated/build_info.py,sha256=Ea9A6Yep3gVopO0qLFUmZn_oycwXYxuHkWFtp77YMsA,117
|
|
187
187
|
setiastro/saspro/abe.py,sha256=l6o0klT-TqJppzEjCBb9isyIvtuf_UsuMZV8JvqbgPI,59779
|
|
188
188
|
setiastro/saspro/abe_preset.py,sha256=u9t16yTb9v98tLjhvh496Fsp3Z-dNiBSs5itnAaJwh8,7750
|
|
189
189
|
setiastro/saspro/aberration_ai.py,sha256=8LtDu_KuqvL-W0MTUIJq9KguMjJPiUEQjMUibY16H-4,41673
|
|
@@ -216,7 +216,7 @@ setiastro/saspro/convo.py,sha256=pAczsoS7g596mk1eI4XmVvd1EAoTZVdj12qRzFIISjg,677
|
|
|
216
216
|
setiastro/saspro/convo_preset.py,sha256=31Fzk6ssA3lHuM5vehYOpFNVdIyRNNpL78Ts69ivWKk,20013
|
|
217
217
|
setiastro/saspro/copyastro.py,sha256=ImDMrus4_LqdEXozMQMiM6SjpF0Yd3D-TzMJ2ggFrNc,7322
|
|
218
218
|
setiastro/saspro/cosmicclarity.py,sha256=f-puwADkEdONV0-7KyC9wg43i3lbEXR3ZVHRxBkBYEE,60814
|
|
219
|
-
setiastro/saspro/cosmicclarity_engines/benchmark_engine.py,sha256=
|
|
219
|
+
setiastro/saspro/cosmicclarity_engines/benchmark_engine.py,sha256=NgGefkc6tGO_6eOgG6yDZyrgj4el8fYyNKulu4UAS_U,27161
|
|
220
220
|
setiastro/saspro/cosmicclarity_engines/darkstar_engine.py,sha256=ZstBHr8sA1p2WHg3kZyacjCi0m-agPHzIDIG8gGqT_U,21221
|
|
221
221
|
setiastro/saspro/cosmicclarity_engines/denoise_engine.py,sha256=KAYyhFbFd4iiwiR5lTvmi6xc9j6YTQnwJe-xD-r9n7s,22081
|
|
222
222
|
setiastro/saspro/cosmicclarity_engines/satellite_engine.py,sha256=900oiGhlgtjXMXjLpM9RUVPTLZI7Ov7IJvSzVh1mcOU,22787
|
|
@@ -296,8 +296,8 @@ setiastro/saspro/mfdeconv_earlystop.py,sha256=JCY9RV6jMtwcOxUnb9HzJHem5ygYXXiRr2
|
|
|
296
296
|
setiastro/saspro/mfdeconvcudnn.py,sha256=Y8ThkwOs-CZdF_53N6Wu2naDQ1VIa055oGtlgo129Qk,129008
|
|
297
297
|
setiastro/saspro/mfdeconvsport.py,sha256=UcDV3FP5wDIhFsOnDlLVywtk_RDrpKVOjWbJNOL-Cdk,95323
|
|
298
298
|
setiastro/saspro/minorbodycatalog.py,sha256=PaOwy1T_ApEfPyGZFUD4qB1n7jyK6kuw1FjBhP2HCTw,19662
|
|
299
|
-
setiastro/saspro/model_manager.py,sha256=
|
|
300
|
-
setiastro/saspro/model_workers.py,sha256=
|
|
299
|
+
setiastro/saspro/model_manager.py,sha256=s9tOUNeinsAaGiADEspkwENsrPhQ6u2K0mjhTPkXMeE,10248
|
|
300
|
+
setiastro/saspro/model_workers.py,sha256=G8xKC9L5pdc_L75_4S9us0fRVjeAAZbmQqXorFwtcSs,4001
|
|
301
301
|
setiastro/saspro/morphology.py,sha256=WdxA3yLdMCLsAQoRY6qmP3LB5jjZNzliFBhuNkGN_o8,16695
|
|
302
302
|
setiastro/saspro/multiscale_decomp.py,sha256=GQ6iTFcTDxj0WvnO0bQjTz8G4Wli9Dl9bQNeEcBpxBw,66724
|
|
303
303
|
setiastro/saspro/narrowband_normalization.py,sha256=mVzf8JJVZREbsai63GspR41iH3WnwGrYu0pywczfIi0,64036
|
|
@@ -311,7 +311,7 @@ setiastro/saspro/ops/command_runner.py,sha256=teyrnOVJcd2IVxIPhh-ud4Q8MrBMxzSNR3
|
|
|
311
311
|
setiastro/saspro/ops/commands.py,sha256=RoB99R3wN9j-K25QoJf5ir-CU35lL_d2veLFmfIXRMQ,54246
|
|
312
312
|
setiastro/saspro/ops/script_editor.py,sha256=ygWNzPJ3LxsQyTMgfvAHC9MuGnE8IXsRNKu19mLPYKY,40986
|
|
313
313
|
setiastro/saspro/ops/scripts.py,sha256=5BOnirSUia0NDg-keBy0HgfrElqcRIUNV-89FfYks8o,55817
|
|
314
|
-
setiastro/saspro/ops/settings.py,sha256=
|
|
314
|
+
setiastro/saspro/ops/settings.py,sha256=5fsKFoOy-x9gC8LMN7Pa5SAsg9RLSRp1RzUQzEyKCmU,46829
|
|
315
315
|
setiastro/saspro/parallel_utils.py,sha256=GoPhypMsp3k8dffv4129CjLU-xDqpu9wnhHI463RR6U,15931
|
|
316
316
|
setiastro/saspro/pedestal.py,sha256=WkwNaY0Qp1XP6KFtb6tnnKMhg71R5WEhVOdwWwJFmJ8,4014
|
|
317
317
|
setiastro/saspro/perfect_palette_picker.py,sha256=wJSTQQZgFm-baEBRopfF4Aw6vtvTmfL4_FZcd1q31vs,46937
|
|
@@ -418,9 +418,9 @@ setiastro/saspro/wimi.py,sha256=CNo833Pur9P-A1DUSntlAaQWekf6gzWIvetOMvLDrOw,3146
|
|
|
418
418
|
setiastro/saspro/wims.py,sha256=HDfVI3Ckf5OJEJLH8NI36pFc2USZnETpb4UDIvweNX4,27450
|
|
419
419
|
setiastro/saspro/window_shelf.py,sha256=hpId8uRPq7-UZ3dWW5YzH_v4TchQokGFoPGM8dyaIZA,9448
|
|
420
420
|
setiastro/saspro/xisf.py,sha256=Ah1CXDAohN__ej1Lq7LPU8vGLnDz8fluLQTGE71aUoc,52669
|
|
421
|
-
setiastrosuitepro-1.8.0.dist-info/entry_points.txt,sha256=g7cHWhUSiIP7mkyByG9JXGWWlHKeVC2vL7zvB9U-vEU,236
|
|
422
|
-
setiastrosuitepro-1.8.0.dist-info/licenses/LICENSE,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
|
|
423
|
-
setiastrosuitepro-1.8.0.dist-info/licenses/license.txt,sha256=KCwYZ9VpVwmzjelDq1BzzWqpBvt9nbbapa-woz47hfQ,123930
|
|
424
|
-
setiastrosuitepro-1.8.0.dist-info/METADATA,sha256=
|
|
425
|
-
setiastrosuitepro-1.8.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
426
|
-
setiastrosuitepro-1.8.0.dist-info/RECORD,,
|
|
421
|
+
setiastrosuitepro-1.8.0.post3.dist-info/entry_points.txt,sha256=g7cHWhUSiIP7mkyByG9JXGWWlHKeVC2vL7zvB9U-vEU,236
|
|
422
|
+
setiastrosuitepro-1.8.0.post3.dist-info/licenses/LICENSE,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
|
|
423
|
+
setiastrosuitepro-1.8.0.post3.dist-info/licenses/license.txt,sha256=KCwYZ9VpVwmzjelDq1BzzWqpBvt9nbbapa-woz47hfQ,123930
|
|
424
|
+
setiastrosuitepro-1.8.0.post3.dist-info/METADATA,sha256=nFMXeZwcWAhjm7tIq5a7CuhyoAVcO9GFkTyFtoPaEbY,9951
|
|
425
|
+
setiastrosuitepro-1.8.0.post3.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
426
|
+
setiastrosuitepro-1.8.0.post3.dist-info/RECORD,,
|
|
File without changes
|
{setiastrosuitepro-1.8.0.dist-info → setiastrosuitepro-1.8.0.post3.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{setiastrosuitepro-1.8.0.dist-info → setiastrosuitepro-1.8.0.post3.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{setiastrosuitepro-1.8.0.dist-info → setiastrosuitepro-1.8.0.post3.dist-info}/licenses/license.txt
RENAMED
|
File without changes
|