setiastrosuitepro 1.7.3.post1__tar.gz → 1.7.5.post1__tar.gz
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.
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/PKG-INFO +1 -1
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/pyproject.toml +2 -2
- setiastrosuitepro-1.7.5.post1/src/setiastro/images/clonestamp.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/__init__.py +15 -4
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/__main__.py +23 -5
- setiastrosuitepro-1.7.5.post1/src/setiastro/saspro/_generated/build_info.py +3 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/abe.py +1 -1
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/autostretch.py +11 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/blemish_blaster.py +54 -14
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/blink_comparator_pro.py +146 -2
- setiastrosuitepro-1.7.5.post1/src/setiastro/saspro/clone_stamp.py +753 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/main_window.py +25 -4
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/menu_mixin.py +1 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/toolbar_mixin.py +10 -15
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/legacy/numba_utils.py +301 -119
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/numba_utils.py +998 -270
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/planetprojection.py +310 -105
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/resources.py +2 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/sfcc.py +14 -8
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/stacking_suite.py +867 -251
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/window_shelf.py +62 -1
- setiastrosuitepro-1.7.3.post1/src/setiastro/saspro/_generated/build_info.py +0 -3
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/LICENSE +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/README.md +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/license.txt +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/__init__.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/SASP_data.fits +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/List_of_Galaxies_with_Distances_Gly.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/astrobin_filters.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/astrobin_filters_page1_local.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/cali2.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/cali2color.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/celestial_catalog - original.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/celestial_catalog.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/detected_stars.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/fits_header_data.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/test.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/data/catalogs/updated_celestial_catalog.csv +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/3dplanet.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/Astro_Spikes.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/Background_startup.jpg +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/HRDiagram.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/LExtract.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/LInsert.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/Oxygenation-atm-2.svg.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/RGB080604.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/TextureClarity.svg +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/abeicon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/abeicon.svg +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/aberration.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/acv_icon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/andromedatry.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/andromedatry_satellited.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/annotated.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/aperture.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/astrosuite.ico +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/astrosuite.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/astrosuitepro.icns +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/astrosuitepro.ico +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/astrosuitepro.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/background.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/background2.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/benchmark.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/big_moon_stabilizer_timeline.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/big_moon_stabilizer_timeline_clean.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/blaster.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/blink.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/clahe.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/collage.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/colorwheel.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/colorwheel.svg +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/contsub.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/convo.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/copyslot.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/cosmic.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/cosmic.svg +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/cosmicsat.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/cosmicsat.svg +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/crop1.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/cropicon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/curves.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/cvs.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/debayer.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/denoise_cnn_custom.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/denoise_cnn_graph.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/disk.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/dse.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/exoicon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/eye.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/first_quarter.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/fliphorizontal.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/flipvertical.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/font.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/freqsep.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/full_moon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/functionbundle.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/graxpert.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/graxpert.svg +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/green.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/gridicon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/halo.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/hdr.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/histogram.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/hubble.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/imagecombine.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/invert.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/isophote.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/isophote_demo_figure.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/isophote_demo_image.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/isophote_demo_model.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/isophote_demo_residual.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/jwstpupil.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/last_quarter.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/linearfit.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/linearfit.svg +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/livestacking.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/mask.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/maskapply.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/maskcreate.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/maskremove.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/morpho.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/mosaic.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/multiscale_decomp.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/narrowbandnormalization.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/nbtorgb.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/neutral.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/new_moon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/nuke.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/openfile.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/pedestal.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/pen.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/pixelmath.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/pixelmath.svg +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/planetarystacker.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/platesolve.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/ppp.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/pro.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/project.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/psf.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/redo.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/redoicon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/rescale.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/rgbalign.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/rgbcombo.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/rgbextract.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/rotate180.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/rotatearbitrary.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/rotateclockwise.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/rotatecounterclockwise.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/satellite.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/script.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/selectivecolor.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/simbad.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot0.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot1.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot2.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot3.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot4.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot5.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot6.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot7.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot8.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/slot9.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/spcc.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/spin_precession_vs_lunar_distance.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/spinner.gif +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/stacking.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/staradd.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/staralign.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/starnet.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/starregistration.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/starspike.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/starstretch.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/statstretch.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/supernova.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/uhs.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/undoicon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/upscale.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/viewbundle.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_crescent_1.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_crescent_2.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_crescent_3.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_crescent_4.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_crescent_5.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_gibbous_1.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_gibbous_2.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_gibbous_3.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_gibbous_4.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waning_gibbous_5.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_crescent_1.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_crescent_2.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_crescent_3.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_crescent_4.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_crescent_5.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_gibbous_1.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_gibbous_2.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_gibbous_3.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_gibbous_4.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/waxing_gibbous_5.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/whitebalance.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/wimi_icon_256x256.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/wimilogo.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/wims.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/wrench_icon.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/images/xisfliberator.png +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/qml/ResourceMonitor.qml +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/_generated/__init__.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/abe_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/aberration_ai.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/aberration_ai_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/accel_installer.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/accel_workers.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/acv_exporter.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/add_stars.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/astrobin_exporter.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/astrospike.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/astrospike_python.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/backgroundneutral.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/batch_convert.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/batch_renamer.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/bundles.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/bundles_dock.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/cheat_sheet.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/clahe.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/comet_stacking.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/common_tr.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/config.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/config_bootstrap.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/config_manager.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/continuum_subtract.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/convo.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/convo_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/copyastro.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/cosmicclarity.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/cosmicclarity_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/crop_dialog_pro.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/crop_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/curve_editor_pro.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/curves_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/debayer.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/debug_utils.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/dnd_mime.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/doc_manager.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/exoplanet_detector.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/file_utils.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/fitsmodifier.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/fix_bom.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/free_torch_memory.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/frequency_separation.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/function_bundle.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/generate_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ghs_dialog_pro.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ghs_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/graxpert.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/graxpert_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/__init__.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/__init__.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/dock_mixin.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/file_mixin.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/geometry_mixin.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/header_mixin.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/mask_mixin.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/theme_mixin.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/update_mixin.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/mixins/view_mixin.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/gui/statistics_dialog.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/halobgon.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/header_viewer.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/headless_utils.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/histogram.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/history_explorer.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/i18n.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/image_combine.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/image_peeker_pro.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/imageops/__init__.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/imageops/mdi_snap.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/imageops/narrowband_normalization.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/imageops/scnr.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/imageops/serloader.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/imageops/starbasedwhitebalance.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/imageops/stretch.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/isophote.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/layers.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/layers_dock.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/lazy_imports.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/legacy/__init__.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/legacy/image_manager.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/legacy/xisf.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/linear_fit.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/live_stacking.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/log_bus.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/logging_config.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/luminancerecombine.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/main_helpers.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/mask_creation.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/masks_core.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/mdi_widgets.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/memory_utils.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/metadata_patcher.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/mfdeconv.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/mfdeconv_earlystop.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/mfdeconvcudnn.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/mfdeconvsport.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/minorbodycatalog.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/morphology.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/multiscale_decomp.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/narrowband_normalization.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/nbtorgb_stars.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/numba_warmup.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ops/__init__.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ops/command_help_dialog.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ops/command_runner.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ops/commands.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ops/script_editor.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ops/scripts.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ops/settings.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/parallel_utils.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/pedestal.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/perfect_palette_picker.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/pipeline.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/pixelmath.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/plate_solver.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/project_io.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/psf_utils.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/psf_viewer.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/pyi_rthook_astroquery.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/remove_green.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/remove_stars.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/remove_stars_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/rgb_combination.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/rgb_extract.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/rgbalign.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/runtime_imports.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/runtime_torch.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/save_options.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/selective_color.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ser_stack_config.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ser_stacker.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ser_stacker_dialog.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/ser_tracking.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/serviewer.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/shortcuts.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/signature_insert.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/star_alignment.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/star_alignment_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/star_metrics.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/star_spikes.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/star_stretch.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/stat_stretch.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/status_log_dock.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/subwindow.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/supernovaasteroidhunter.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/swap_manager.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/texture_clarity.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/torch_backend.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/torch_rejection.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/all_source_strings.json +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/ar_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/de_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/es_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/fr_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/hi_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/integrate_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/it_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/ja_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/pt_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/ru_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_ar.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_ar.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_de.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_de.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_es.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_es.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_fr.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_fr.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_hi.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_hi.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_it.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_it.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_ja.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_ja.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_pt.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_pt.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_ru.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_ru.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_sw.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_sw.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_uk.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_uk.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_zh.qm +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/saspro_zh.ts +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/sw_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/uk_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/translations/zh_translations.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/versioning.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/view_bundle.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/wavescale_hdr.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/wavescale_hdr_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/wavescalede.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/wavescalede_preset.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/wcs_update.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/whitebalance.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/__init__.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/common_utilities.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/graphics_views.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/image_utils.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/minigame/game.js +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/minigame/index.html +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/minigame/style.css +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/preview_dialogs.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/resource_monitor.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/spinboxes.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/themed_buttons.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/widgets/wavelet_utils.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/wimi.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/wims.py +0 -0
- {setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/xisf.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: setiastrosuitepro
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.5.post1
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "setiastrosuitepro"
|
|
3
|
-
version = "1.7.
|
|
3
|
+
version = "1.7.5.post1"
|
|
4
4
|
description = "Seti Astro Suite Pro - Advanced astrophotography toolkit for image calibration, stacking, registration, photometry, and visualization"
|
|
5
5
|
authors = ["Franklin Marek <info@setiastro.com>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -94,7 +94,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
94
94
|
# Optional extras can be added here if needed in the future
|
|
95
95
|
|
|
96
96
|
[tool.poetry.scripts]
|
|
97
|
-
setiastrosuitepro = "setiastro.saspro:main"
|
|
97
|
+
setiastrosuitepro = "setiastro.saspro.__main__:main"
|
|
98
98
|
saspro-export-requirements = "ops.export_requirements:main"
|
|
99
99
|
saspro-write-build-info = "ops.write_build_info:main"
|
|
100
100
|
saspro-prime-matplotlib-cache = "ops.prime_matplotlib_cache:main"
|
|
Binary file
|
{setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/__init__.py
RENAMED
|
@@ -6,7 +6,7 @@ stacking, registration, photometry, and visualization.
|
|
|
6
6
|
|
|
7
7
|
Important:
|
|
8
8
|
- __init__.py must remain import-safe (no UI side effects, no splash, no QApplication).
|
|
9
|
-
- Do NOT import setiastro.saspro.__main__
|
|
9
|
+
- Do NOT import setiastro.saspro.__main__ at import time.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
12
|
__all__ = []
|
|
@@ -15,7 +15,18 @@ __all__ = []
|
|
|
15
15
|
try:
|
|
16
16
|
from .doc_manager import DocManager, ImageDocument
|
|
17
17
|
from .subwindow import ImageSubWindow
|
|
18
|
-
__all__
|
|
18
|
+
__all__ += ["DocManager", "ImageDocument", "ImageSubWindow"]
|
|
19
19
|
except Exception:
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
def main():
|
|
23
|
+
"""
|
|
24
|
+
Console entrypoint shim.
|
|
25
|
+
|
|
26
|
+
IMPORTANT: This must stay import-safe. We import the real entrypoint
|
|
27
|
+
lazily only when the command is executed.
|
|
28
|
+
"""
|
|
29
|
+
from .__main__ import main as _main
|
|
30
|
+
return _main()
|
|
31
|
+
|
|
32
|
+
__all__ += ["main"]
|
{setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/__main__.py
RENAMED
|
@@ -440,17 +440,25 @@ def _init_splash():
|
|
|
440
440
|
self.close()
|
|
441
441
|
self.deleteLater()
|
|
442
442
|
|
|
443
|
-
def start_fade_out(self):
|
|
443
|
+
def start_fade_out(self, on_finished=None):
|
|
444
444
|
if not _allow_window_opacity_effects():
|
|
445
445
|
self.finish()
|
|
446
|
+
if callable(on_finished):
|
|
447
|
+
on_finished()
|
|
446
448
|
return
|
|
447
|
-
|
|
449
|
+
|
|
448
450
|
self._anim = QPropertyAnimation(self, b"windowOpacity")
|
|
449
451
|
self._anim.setDuration(1000)
|
|
450
452
|
self._anim.setStartValue(1.0)
|
|
451
453
|
self._anim.setEndValue(0.0)
|
|
452
454
|
self._anim.setEasingCurve(QEasingCurve.Type.OutQuad)
|
|
453
|
-
|
|
455
|
+
|
|
456
|
+
def _done():
|
|
457
|
+
self.finish()
|
|
458
|
+
if callable(on_finished):
|
|
459
|
+
on_finished()
|
|
460
|
+
|
|
461
|
+
self._anim.finished.connect(_done)
|
|
454
462
|
self._anim.start()
|
|
455
463
|
|
|
456
464
|
def start_fade_in(self):
|
|
@@ -790,6 +798,7 @@ def main():
|
|
|
790
798
|
- When running as a module: python -m setiastro.saspro
|
|
791
799
|
"""
|
|
792
800
|
global _splash, _app, _splash_initialized
|
|
801
|
+
from PyQt6.QtCore import QTimer
|
|
793
802
|
|
|
794
803
|
# Initialize splash if not already done
|
|
795
804
|
if not _splash_initialized:
|
|
@@ -910,7 +919,16 @@ def main():
|
|
|
910
919
|
version=VERSION,
|
|
911
920
|
build_timestamp=BUILD_TIMESTAMP,
|
|
912
921
|
)
|
|
913
|
-
|
|
922
|
+
|
|
923
|
+
def _kick_updates_after_splash():
|
|
924
|
+
try:
|
|
925
|
+
win.raise_()
|
|
926
|
+
win.activateWindow()
|
|
927
|
+
if win.settings.value("updates/check_on_startup", True, type=bool):
|
|
928
|
+
QTimer.singleShot(1000, win.check_for_updates_startup)
|
|
929
|
+
except Exception:
|
|
930
|
+
pass
|
|
931
|
+
|
|
914
932
|
if _splash:
|
|
915
933
|
_splash.setMessage(QCoreApplication.translate("Splash", "Showing main window..."))
|
|
916
934
|
_splash.setProgress(95)
|
|
@@ -965,7 +983,7 @@ def main():
|
|
|
965
983
|
|
|
966
984
|
# 2. Animate Splash Fade Out
|
|
967
985
|
# Note: We do NOT use finish() directly here. The animation calls it when done.
|
|
968
|
-
_splash.start_fade_out()
|
|
986
|
+
_splash.start_fade_out(on_finished=_kick_updates_after_splash)
|
|
969
987
|
|
|
970
988
|
# NOTE: We keep a reference to _splash (global) so it doesn't get GC'd during animation.
|
|
971
989
|
# It will deleteLater() itself.
|
|
@@ -951,7 +951,7 @@ class ABEDialog(QDialog):
|
|
|
951
951
|
|
|
952
952
|
# show autostretched or raw; siril_style_autostretch() already clips its result
|
|
953
953
|
src_to_show = (hard_autostretch(self._preview_source_f01, target_median=0.5, sigma=2,
|
|
954
|
-
linked=False,
|
|
954
|
+
linked=False, use_24bit=True)
|
|
955
955
|
if getattr(self, "_autostretch_on", False) else self._preview_source_f01)
|
|
956
956
|
|
|
957
957
|
if src_to_show.ndim == 2 or (src_to_show.ndim == 3 and src_to_show.shape[2] == 1):
|
{setiastrosuitepro-1.7.3.post1 → setiastrosuitepro-1.7.5.post1}/src/setiastro/saspro/autostretch.py
RENAMED
|
@@ -141,11 +141,22 @@ def autostretch(
|
|
|
141
141
|
sigma: float = _DEFAULT_SIGMA,
|
|
142
142
|
*,
|
|
143
143
|
use_24bit: bool | None = None,
|
|
144
|
+
use_16bit: bool | None = None, # <-- legacy compat (ignored / mapped)
|
|
145
|
+
**_ignored_kwargs, # <-- swallow any other legacy flags safely
|
|
144
146
|
) -> np.ndarray:
|
|
145
147
|
|
|
146
148
|
if img is None:
|
|
147
149
|
return None
|
|
148
150
|
|
|
151
|
+
# ---- legacy compat -------------------------------------------------
|
|
152
|
+
# Old callers may pass use_16bit. We no longer support 16-bit preview output.
|
|
153
|
+
# If they pass it, we just treat it as "use higher precision display", i.e. 24-bit.
|
|
154
|
+
if use_16bit is not None:
|
|
155
|
+
# If caller explicitly asked for 16-bit, we interpret that as "high precision".
|
|
156
|
+
# Only override if caller didn't explicitly pass use_24bit.
|
|
157
|
+
if use_24bit is None:
|
|
158
|
+
use_24bit = True
|
|
159
|
+
|
|
149
160
|
# Optional auto-read from QSettings if caller didn’t pass a flag.
|
|
150
161
|
if use_24bit is None:
|
|
151
162
|
try:
|
|
@@ -6,8 +6,8 @@ from typing import Optional
|
|
|
6
6
|
from PyQt6.QtCore import Qt, QEvent, QPointF, QRunnable, QThreadPool, pyqtSlot, QObject, pyqtSignal
|
|
7
7
|
from PyQt6.QtGui import QImage, QPixmap, QPen, QBrush, QAction, QKeySequence, QColor, QWheelEvent, QIcon
|
|
8
8
|
from PyQt6.QtWidgets import (
|
|
9
|
-
QDialog, QVBoxLayout, QHBoxLayout, QFormLayout, QGroupBox, QLabel, QPushButton, QSlider,
|
|
10
|
-
QGraphicsView, QGraphicsScene, QGraphicsPixmapItem, QGraphicsEllipseItem, QMessageBox, QScrollArea, QCheckBox, QDoubleSpinBox
|
|
9
|
+
QDialog, QVBoxLayout, QHBoxLayout, QFormLayout, QGroupBox, QLabel, QPushButton, QSlider, QSizePolicy,
|
|
10
|
+
QGraphicsView, QGraphicsScene, QGraphicsPixmapItem, QGraphicsEllipseItem, QMessageBox, QScrollArea, QCheckBox, QDoubleSpinBox, QWidget, QFrame
|
|
11
11
|
)
|
|
12
12
|
from setiastro.saspro.imageops.stretch import stretch_color_image, stretch_mono_image
|
|
13
13
|
|
|
@@ -209,7 +209,7 @@ class BlemishBlasterDialogPro(QDialog):
|
|
|
209
209
|
self.scroll = QScrollArea(self)
|
|
210
210
|
self.scroll.setWidgetResizable(True)
|
|
211
211
|
self.scroll.setWidget(self.view)
|
|
212
|
-
|
|
212
|
+
self.scroll.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
|
213
213
|
# --- Zoom controls (buttons) ---------------------------------
|
|
214
214
|
# --- Zoom controls (standard themed toolbuttons) ---------------
|
|
215
215
|
self._zoom = 1.0 # initial zoom factor
|
|
@@ -273,17 +273,57 @@ class BlemishBlasterDialogPro(QDialog):
|
|
|
273
273
|
bb.addWidget(self.btn_apply)
|
|
274
274
|
bb.addWidget(self.btn_close)
|
|
275
275
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
276
|
+
# ─────────────────────────────────────────────────────────────
|
|
277
|
+
# Layout: Left = Controls, Right = Preview (so preview gets height)
|
|
278
|
+
# ─────────────────────────────────────────────────────────────
|
|
279
|
+
root = QHBoxLayout(self)
|
|
280
|
+
root.setContentsMargins(8, 8, 8, 8)
|
|
281
|
+
root.setSpacing(10)
|
|
282
|
+
|
|
283
|
+
# ---- LEFT: Zoom + Controls + Buttons (scrollable on small screens) ----
|
|
284
|
+
left = QVBoxLayout()
|
|
285
|
+
left.setSpacing(10)
|
|
286
|
+
|
|
287
|
+
zoom_box = QGroupBox(self.tr("Zoom"))
|
|
288
|
+
zoom_lay = QHBoxLayout(zoom_box)
|
|
289
|
+
zoom_lay.addStretch(1)
|
|
290
|
+
zoom_lay.addWidget(self.btn_zoom_out)
|
|
291
|
+
zoom_lay.addWidget(self.btn_zoom_in)
|
|
292
|
+
zoom_lay.addWidget(self.btn_zoom_fit)
|
|
293
|
+
zoom_lay.addStretch(1)
|
|
294
|
+
|
|
295
|
+
left.addWidget(zoom_box)
|
|
296
|
+
left.addWidget(ctrls, 0)
|
|
297
|
+
|
|
298
|
+
btn_row = QWidget(self)
|
|
299
|
+
btn_row.setLayout(bb)
|
|
300
|
+
left.addWidget(btn_row, 0)
|
|
301
|
+
|
|
302
|
+
left.addStretch(1)
|
|
303
|
+
|
|
304
|
+
left_widget = QWidget(self)
|
|
305
|
+
left_widget.setLayout(left)
|
|
306
|
+
|
|
307
|
+
left_scroll = QScrollArea(self)
|
|
308
|
+
left_scroll.setWidgetResizable(True)
|
|
309
|
+
left_scroll.setMinimumWidth(320) # tweak 300–360
|
|
310
|
+
left_scroll.setWidget(left_widget)
|
|
311
|
+
|
|
312
|
+
# ---- vertical separator ----
|
|
313
|
+
sep = QFrame(self)
|
|
314
|
+
sep.setFrameShape(QFrame.Shape.VLine)
|
|
315
|
+
sep.setFrameShadow(QFrame.Shadow.Sunken)
|
|
316
|
+
|
|
317
|
+
# ---- RIGHT: Preview ----
|
|
318
|
+
right = QVBoxLayout()
|
|
319
|
+
right.setSpacing(8)
|
|
320
|
+
right.addWidget(self.scroll, 1)
|
|
321
|
+
|
|
322
|
+
# Add in order: controls left, preview right
|
|
323
|
+
root.addWidget(left_scroll, 0)
|
|
324
|
+
root.addWidget(sep)
|
|
325
|
+
root.addLayout(right, 1)
|
|
326
|
+
|
|
287
327
|
|
|
288
328
|
# behavior
|
|
289
329
|
self._threadpool = QThreadPool.globalInstance()
|
|
@@ -63,6 +63,7 @@ class MetricsPanel(QWidget):
|
|
|
63
63
|
self.flags = None # list of bools
|
|
64
64
|
self._threshold_initialized = [False]*4
|
|
65
65
|
self._open_previews = []
|
|
66
|
+
self._show_guides = True # default on (or False if you prefer)
|
|
66
67
|
|
|
67
68
|
self.plots, self.scats, self.lines = [], [], []
|
|
68
69
|
titles = [self.tr("FWHM (px)"), self.tr("Eccentricity"), self.tr("Background"), self.tr("Star Count")]
|
|
@@ -86,11 +87,101 @@ class MetricsPanel(QWidget):
|
|
|
86
87
|
lambda ln, m=idx: self._on_line_move(m, ln))
|
|
87
88
|
pw.addItem(line)
|
|
88
89
|
|
|
90
|
+
# --- dashed reference lines: median + ±3σ (robust) ---
|
|
91
|
+
median_ln = pg.InfiniteLine(pos=0, angle=0, movable=False,
|
|
92
|
+
pen=pg.mkPen((220, 220, 220, 170), width=1, style=Qt.PenStyle.DashLine))
|
|
93
|
+
sigma_lo = pg.InfiniteLine(pos=0, angle=0, movable=False,
|
|
94
|
+
pen=pg.mkPen((220, 220, 220, 120), width=1, style=Qt.PenStyle.DashLine))
|
|
95
|
+
sigma_hi = pg.InfiniteLine(pos=0, angle=0, movable=False,
|
|
96
|
+
pen=pg.mkPen((220, 220, 220, 120), width=1, style=Qt.PenStyle.DashLine))
|
|
97
|
+
|
|
98
|
+
# keep them behind points/threshold visually
|
|
99
|
+
median_ln.setZValue(-10)
|
|
100
|
+
sigma_lo.setZValue(-10)
|
|
101
|
+
sigma_hi.setZValue(-10)
|
|
102
|
+
|
|
103
|
+
pw.addItem(median_ln)
|
|
104
|
+
pw.addItem(sigma_lo)
|
|
105
|
+
pw.addItem(sigma_hi)
|
|
106
|
+
|
|
107
|
+
# create the lists once
|
|
108
|
+
if not hasattr(self, "median_lines"):
|
|
109
|
+
self.median_lines = []
|
|
110
|
+
self.sigma_lines = [] # list of (lo, hi)
|
|
111
|
+
|
|
112
|
+
self.median_lines.append(median_ln)
|
|
113
|
+
self.sigma_lines.append((sigma_lo, sigma_hi))
|
|
89
114
|
grid.addWidget(pw, idx//2, idx%2)
|
|
90
115
|
self.plots.append(pw)
|
|
91
116
|
self.scats.append(scat)
|
|
92
117
|
self.lines.append(line)
|
|
93
118
|
|
|
119
|
+
def set_guides_visible(self, on: bool):
|
|
120
|
+
self._show_guides = bool(on)
|
|
121
|
+
|
|
122
|
+
if not self._show_guides:
|
|
123
|
+
# ✅ hide immediately
|
|
124
|
+
if hasattr(self, "median_lines"):
|
|
125
|
+
for ln in self.median_lines:
|
|
126
|
+
ln.hide()
|
|
127
|
+
if hasattr(self, "sigma_lines"):
|
|
128
|
+
for lo, hi in self.sigma_lines:
|
|
129
|
+
lo.hide()
|
|
130
|
+
hi.hide()
|
|
131
|
+
return
|
|
132
|
+
|
|
133
|
+
# ✅ turning ON: recompute/restore based on what’s currently plotted
|
|
134
|
+
self._refresh_guides_from_current_plot()
|
|
135
|
+
|
|
136
|
+
def _refresh_guides_from_current_plot(self):
|
|
137
|
+
"""Recompute/position guide lines using current plot data (if any)."""
|
|
138
|
+
if not getattr(self, "_show_guides", True):
|
|
139
|
+
return
|
|
140
|
+
if not hasattr(self, "median_lines") or not hasattr(self, "sigma_lines"):
|
|
141
|
+
return
|
|
142
|
+
# Use the scatter data already in each panel
|
|
143
|
+
for m, scat in enumerate(self.scats):
|
|
144
|
+
x, y = scat.getData()[:2]
|
|
145
|
+
if y is None or len(y) == 0:
|
|
146
|
+
self.median_lines[m].hide()
|
|
147
|
+
lo, hi = self.sigma_lines[m]
|
|
148
|
+
lo.hide(); hi.hide()
|
|
149
|
+
continue
|
|
150
|
+
|
|
151
|
+
med, sig = self._median_and_robust_sigma(np.asarray(y, dtype=np.float32))
|
|
152
|
+
mline = self.median_lines[m]
|
|
153
|
+
lo_ln, hi_ln = self.sigma_lines[m]
|
|
154
|
+
|
|
155
|
+
if np.isfinite(med):
|
|
156
|
+
mline.setPos(med); mline.show()
|
|
157
|
+
else:
|
|
158
|
+
mline.hide()
|
|
159
|
+
|
|
160
|
+
if np.isfinite(med) and np.isfinite(sig) and sig > 0:
|
|
161
|
+
lo = med - 3.0 * sig
|
|
162
|
+
hi = med + 3.0 * sig
|
|
163
|
+
if m == 3:
|
|
164
|
+
lo = max(0.0, lo)
|
|
165
|
+
lo_ln.setPos(lo); hi_ln.setPos(hi)
|
|
166
|
+
lo_ln.show(); hi_ln.show()
|
|
167
|
+
else:
|
|
168
|
+
lo_ln.hide(); hi_ln.hide()
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
@staticmethod
|
|
172
|
+
def _median_and_robust_sigma(y: np.ndarray):
|
|
173
|
+
"""Return (median, sigma) using MAD-based robust sigma. Ignores NaN/Inf."""
|
|
174
|
+
y = np.asarray(y, dtype=np.float32)
|
|
175
|
+
finite = np.isfinite(y)
|
|
176
|
+
if not finite.any():
|
|
177
|
+
return np.nan, np.nan
|
|
178
|
+
v = y[finite]
|
|
179
|
+
med = float(np.nanmedian(v))
|
|
180
|
+
mad = float(np.nanmedian(np.abs(v - med)))
|
|
181
|
+
sigma = 1.4826 * mad # robust sigma estimate
|
|
182
|
+
return med, float(sigma)
|
|
183
|
+
|
|
184
|
+
|
|
94
185
|
@staticmethod
|
|
95
186
|
def _compute_one(i_entry):
|
|
96
187
|
"""
|
|
@@ -324,6 +415,15 @@ class MetricsPanel(QWidget):
|
|
|
324
415
|
line.setPos(0)
|
|
325
416
|
pw.getPlotItem().getViewBox().update()
|
|
326
417
|
pw.repaint()
|
|
418
|
+
|
|
419
|
+
# ✅ hide guides too
|
|
420
|
+
if hasattr(self, "median_lines"):
|
|
421
|
+
for ln in self.median_lines:
|
|
422
|
+
ln.hide()
|
|
423
|
+
if hasattr(self, "sigma_lines"):
|
|
424
|
+
for lo, hi in self.sigma_lines:
|
|
425
|
+
lo.hide()
|
|
426
|
+
hi.hide()
|
|
327
427
|
return
|
|
328
428
|
|
|
329
429
|
# compute & cache on first call or new image list
|
|
@@ -358,6 +458,41 @@ class MetricsPanel(QWidget):
|
|
|
358
458
|
]
|
|
359
459
|
scat.setData(x=x, y=y, brush=brushes, pen=pg.mkPen(None), size=8)
|
|
360
460
|
|
|
461
|
+
# --- update dashed reference lines (median + ±3σ) ---
|
|
462
|
+
if getattr(self, "_show_guides", True):
|
|
463
|
+
try:
|
|
464
|
+
med, sig = self._median_and_robust_sigma(y)
|
|
465
|
+
mline = self.median_lines[m]
|
|
466
|
+
lo_ln, hi_ln = self.sigma_lines[m]
|
|
467
|
+
|
|
468
|
+
if np.isfinite(med):
|
|
469
|
+
mline.setPos(med)
|
|
470
|
+
mline.show()
|
|
471
|
+
else:
|
|
472
|
+
mline.hide()
|
|
473
|
+
|
|
474
|
+
if np.isfinite(med) and np.isfinite(sig) and sig > 0:
|
|
475
|
+
lo = med - 3.0 * sig
|
|
476
|
+
hi = med + 3.0 * sig
|
|
477
|
+
if m == 3:
|
|
478
|
+
lo = max(0.0, lo)
|
|
479
|
+
lo_ln.setPos(lo); hi_ln.setPos(hi)
|
|
480
|
+
lo_ln.show(); hi_ln.show()
|
|
481
|
+
else:
|
|
482
|
+
lo_ln.hide(); hi_ln.hide()
|
|
483
|
+
except Exception:
|
|
484
|
+
if hasattr(self, "median_lines") and m < len(self.median_lines):
|
|
485
|
+
self.median_lines[m].hide()
|
|
486
|
+
a, b = self.sigma_lines[m]
|
|
487
|
+
a.hide(); b.hide()
|
|
488
|
+
else:
|
|
489
|
+
# guides disabled -> force-hide
|
|
490
|
+
if hasattr(self, "median_lines") and m < len(self.median_lines):
|
|
491
|
+
self.median_lines[m].hide()
|
|
492
|
+
a, b = self.sigma_lines[m]
|
|
493
|
+
a.hide(); b.hide()
|
|
494
|
+
|
|
495
|
+
|
|
361
496
|
# initialize threshold line once
|
|
362
497
|
if not self._threshold_initialized[m]:
|
|
363
498
|
mx, mn = np.nanmax(y), np.nanmin(y)
|
|
@@ -456,7 +591,10 @@ class MetricsWindow(QWidget):
|
|
|
456
591
|
instr.setWordWrap(True)
|
|
457
592
|
instr.setStyleSheet("color: #ccc; font-size: 12px;")
|
|
458
593
|
vbox.addWidget(instr)
|
|
459
|
-
|
|
594
|
+
self.chk_guides = QCheckBox(self.tr("Show median and ±3σ guides"), self)
|
|
595
|
+
self.chk_guides.setChecked(True) # default on
|
|
596
|
+
self.chk_guides.toggled.connect(self._on_toggle_guides)
|
|
597
|
+
vbox.addWidget(self.chk_guides)
|
|
460
598
|
# → filter selector
|
|
461
599
|
self.group_combo = QComboBox(self)
|
|
462
600
|
self.group_combo.addItem(self.tr("All"))
|
|
@@ -479,6 +617,10 @@ class MetricsWindow(QWidget):
|
|
|
479
617
|
self._all_images = []
|
|
480
618
|
self._current_indices: Optional[List[int]] = None
|
|
481
619
|
|
|
620
|
+
def _on_toggle_guides(self, on: bool):
|
|
621
|
+
if hasattr(self, "metrics_panel") and self.metrics_panel is not None:
|
|
622
|
+
self.metrics_panel.set_guides_visible(on)
|
|
623
|
+
|
|
482
624
|
|
|
483
625
|
def _update_status(self, *args):
|
|
484
626
|
"""Recompute and show: Flagged Items X / Y (Z%). Robust to stale indices."""
|
|
@@ -537,6 +679,7 @@ class MetricsWindow(QWidget):
|
|
|
537
679
|
self._current_indices = self._order_all
|
|
538
680
|
self._apply_thresholds("All")
|
|
539
681
|
self.metrics_panel.plot(self._all_images, indices=self._current_indices)
|
|
682
|
+
self.metrics_panel.set_guides_visible(self.chk_guides.isChecked())
|
|
540
683
|
self._update_status()
|
|
541
684
|
|
|
542
685
|
def _reindex_list_after_remove(self, lst: List[int] | None, removed: List[int]) -> List[int] | None:
|
|
@@ -666,7 +809,8 @@ class MetricsWindow(QWidget):
|
|
|
666
809
|
grp = self.group_combo.currentText()
|
|
667
810
|
# save it for this group
|
|
668
811
|
self._thresholds_per_group[grp][metric_idx] = new_val
|
|
669
|
-
|
|
812
|
+
self.metrics_panel.plot(self._all_images, indices=self._current_indices)
|
|
813
|
+
self.metrics_panel.set_guides_visible(self.chk_guides.isChecked())
|
|
670
814
|
# (if you also want immediate re-flagging in the tree, keep your BlinkTab logic hooked here)
|
|
671
815
|
|
|
672
816
|
def _apply_thresholds(self, group_name: str):
|