setiastrosuitepro 1.7.0.post2__tar.gz → 1.7.1.post2__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.

Files changed (413) hide show
  1. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/PKG-INFO +3 -2
  2. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/pyproject.toml +8 -9
  3. setiastrosuitepro-1.7.1.post2/src/setiastro/images/TextureClarity.svg +56 -0
  4. setiastrosuitepro-1.7.1.post2/src/setiastro/saspro/_generated/build_info.py +3 -0
  5. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/aberration_ai.py +79 -2
  6. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/astrospike_python.py +45 -3
  7. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/main_window.py +16 -2
  8. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/menu_mixin.py +2 -0
  9. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/toolbar_mixin.py +12 -5
  10. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/serloader.py +513 -140
  11. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/resources.py +2 -0
  12. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/rgbalign.py +456 -12
  13. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ser_stack_config.py +9 -1
  14. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ser_stacker.py +12 -1
  15. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ser_stacker_dialog.py +339 -1
  16. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/serviewer.py +368 -1
  17. setiastrosuitepro-1.7.1.post2/src/setiastro/saspro/texture_clarity.py +593 -0
  18. setiastrosuitepro-1.7.0.post2/src/setiastro/saspro/_generated/build_info.py +0 -3
  19. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/LICENSE +0 -0
  20. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/README.md +0 -0
  21. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/license.txt +0 -0
  22. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/__init__.py +0 -0
  23. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/SASP_data.fits +0 -0
  24. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/List_of_Galaxies_with_Distances_Gly.csv +0 -0
  25. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/astrobin_filters.csv +0 -0
  26. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/astrobin_filters_page1_local.csv +0 -0
  27. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/cali2.csv +0 -0
  28. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/cali2color.csv +0 -0
  29. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/celestial_catalog - original.csv +0 -0
  30. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/celestial_catalog.csv +0 -0
  31. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/detected_stars.csv +0 -0
  32. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/fits_header_data.csv +0 -0
  33. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/test.csv +0 -0
  34. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/updated_celestial_catalog.csv +0 -0
  35. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/Astro_Spikes.png +0 -0
  36. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/Background_startup.jpg +0 -0
  37. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/HRDiagram.png +0 -0
  38. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/LExtract.png +0 -0
  39. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/LInsert.png +0 -0
  40. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/Oxygenation-atm-2.svg.png +0 -0
  41. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/RGB080604.png +0 -0
  42. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/abeicon.png +0 -0
  43. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/abeicon.svg +0 -0
  44. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/aberration.png +0 -0
  45. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/acv_icon.png +0 -0
  46. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/andromedatry.png +0 -0
  47. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/andromedatry_satellited.png +0 -0
  48. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/annotated.png +0 -0
  49. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/aperture.png +0 -0
  50. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuite.ico +0 -0
  51. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuite.png +0 -0
  52. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuitepro.icns +0 -0
  53. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuitepro.ico +0 -0
  54. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuitepro.png +0 -0
  55. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/background.png +0 -0
  56. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/background2.png +0 -0
  57. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/benchmark.png +0 -0
  58. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/big_moon_stabilizer_timeline.png +0 -0
  59. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/big_moon_stabilizer_timeline_clean.png +0 -0
  60. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/blaster.png +0 -0
  61. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/blink.png +0 -0
  62. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/clahe.png +0 -0
  63. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/collage.png +0 -0
  64. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/colorwheel.png +0 -0
  65. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/colorwheel.svg +0 -0
  66. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/contsub.png +0 -0
  67. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/convo.png +0 -0
  68. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/copyslot.png +0 -0
  69. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cosmic.png +0 -0
  70. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cosmic.svg +0 -0
  71. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cosmicsat.png +0 -0
  72. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cosmicsat.svg +0 -0
  73. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/crop1.png +0 -0
  74. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cropicon.png +0 -0
  75. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/curves.png +0 -0
  76. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cvs.png +0 -0
  77. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/debayer.png +0 -0
  78. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/denoise_cnn_custom.png +0 -0
  79. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/denoise_cnn_graph.png +0 -0
  80. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/disk.png +0 -0
  81. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/dse.png +0 -0
  82. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/exoicon.png +0 -0
  83. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/eye.png +0 -0
  84. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/first_quarter.png +0 -0
  85. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/fliphorizontal.png +0 -0
  86. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/flipvertical.png +0 -0
  87. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/font.png +0 -0
  88. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/freqsep.png +0 -0
  89. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/full_moon.png +0 -0
  90. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/functionbundle.png +0 -0
  91. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/graxpert.png +0 -0
  92. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/graxpert.svg +0 -0
  93. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/green.png +0 -0
  94. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/gridicon.png +0 -0
  95. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/halo.png +0 -0
  96. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/hdr.png +0 -0
  97. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/histogram.png +0 -0
  98. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/hubble.png +0 -0
  99. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/imagecombine.png +0 -0
  100. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/invert.png +0 -0
  101. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote.png +0 -0
  102. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote_demo_figure.png +0 -0
  103. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote_demo_image.png +0 -0
  104. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote_demo_model.png +0 -0
  105. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote_demo_residual.png +0 -0
  106. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/jwstpupil.png +0 -0
  107. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/last_quarter.png +0 -0
  108. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/linearfit.png +0 -0
  109. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/linearfit.svg +0 -0
  110. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/livestacking.png +0 -0
  111. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/mask.png +0 -0
  112. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/maskapply.png +0 -0
  113. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/maskcreate.png +0 -0
  114. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/maskremove.png +0 -0
  115. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/morpho.png +0 -0
  116. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/mosaic.png +0 -0
  117. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/multiscale_decomp.png +0 -0
  118. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/narrowbandnormalization.png +0 -0
  119. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/nbtorgb.png +0 -0
  120. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/neutral.png +0 -0
  121. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/new_moon.png +0 -0
  122. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/nuke.png +0 -0
  123. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/openfile.png +0 -0
  124. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pedestal.png +0 -0
  125. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pen.png +0 -0
  126. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pixelmath.png +0 -0
  127. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pixelmath.svg +0 -0
  128. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/planetarystacker.png +0 -0
  129. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/platesolve.png +0 -0
  130. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/ppp.png +0 -0
  131. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pro.png +0 -0
  132. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/project.png +0 -0
  133. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/psf.png +0 -0
  134. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/redo.png +0 -0
  135. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/redoicon.png +0 -0
  136. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rescale.png +0 -0
  137. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rgbalign.png +0 -0
  138. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rgbcombo.png +0 -0
  139. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rgbextract.png +0 -0
  140. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rotate180.png +0 -0
  141. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rotatearbitrary.png +0 -0
  142. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rotateclockwise.png +0 -0
  143. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rotatecounterclockwise.png +0 -0
  144. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/satellite.png +0 -0
  145. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/script.png +0 -0
  146. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/selectivecolor.png +0 -0
  147. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/simbad.png +0 -0
  148. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot0.png +0 -0
  149. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot1.png +0 -0
  150. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot2.png +0 -0
  151. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot3.png +0 -0
  152. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot4.png +0 -0
  153. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot5.png +0 -0
  154. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot6.png +0 -0
  155. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot7.png +0 -0
  156. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot8.png +0 -0
  157. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot9.png +0 -0
  158. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/spcc.png +0 -0
  159. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/spin_precession_vs_lunar_distance.png +0 -0
  160. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/spinner.gif +0 -0
  161. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/stacking.png +0 -0
  162. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/staradd.png +0 -0
  163. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/staralign.png +0 -0
  164. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/starnet.png +0 -0
  165. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/starregistration.png +0 -0
  166. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/starspike.png +0 -0
  167. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/starstretch.png +0 -0
  168. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/statstretch.png +0 -0
  169. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/supernova.png +0 -0
  170. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/uhs.png +0 -0
  171. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/undoicon.png +0 -0
  172. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/upscale.png +0 -0
  173. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/viewbundle.png +0 -0
  174. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_1.png +0 -0
  175. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_2.png +0 -0
  176. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_3.png +0 -0
  177. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_4.png +0 -0
  178. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_5.png +0 -0
  179. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_1.png +0 -0
  180. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_2.png +0 -0
  181. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_3.png +0 -0
  182. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_4.png +0 -0
  183. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_5.png +0 -0
  184. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_1.png +0 -0
  185. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_2.png +0 -0
  186. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_3.png +0 -0
  187. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_4.png +0 -0
  188. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_5.png +0 -0
  189. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_1.png +0 -0
  190. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_2.png +0 -0
  191. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_3.png +0 -0
  192. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_4.png +0 -0
  193. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_5.png +0 -0
  194. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/whitebalance.png +0 -0
  195. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/wimi_icon_256x256.png +0 -0
  196. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/wimilogo.png +0 -0
  197. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/wims.png +0 -0
  198. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/wrench_icon.png +0 -0
  199. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/xisfliberator.png +0 -0
  200. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/qml/ResourceMonitor.qml +0 -0
  201. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/__init__.py +0 -0
  202. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/__main__.py +0 -0
  203. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/_generated/__init__.py +0 -0
  204. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/abe.py +0 -0
  205. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/abe_preset.py +0 -0
  206. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/aberration_ai_preset.py +0 -0
  207. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/accel_installer.py +0 -0
  208. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/accel_workers.py +0 -0
  209. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/acv_exporter.py +0 -0
  210. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/add_stars.py +0 -0
  211. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/astrobin_exporter.py +0 -0
  212. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/astrospike.py +0 -0
  213. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/autostretch.py +0 -0
  214. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/backgroundneutral.py +0 -0
  215. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/batch_convert.py +0 -0
  216. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/batch_renamer.py +0 -0
  217. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/blemish_blaster.py +0 -0
  218. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/blink_comparator_pro.py +0 -0
  219. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/bundles.py +0 -0
  220. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/bundles_dock.py +0 -0
  221. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/cheat_sheet.py +0 -0
  222. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/clahe.py +0 -0
  223. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/comet_stacking.py +0 -0
  224. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/common_tr.py +0 -0
  225. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/config.py +0 -0
  226. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/config_bootstrap.py +0 -0
  227. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/config_manager.py +0 -0
  228. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/continuum_subtract.py +0 -0
  229. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/convo.py +0 -0
  230. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/convo_preset.py +0 -0
  231. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/copyastro.py +0 -0
  232. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/cosmicclarity.py +0 -0
  233. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/cosmicclarity_preset.py +0 -0
  234. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/crop_dialog_pro.py +0 -0
  235. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/crop_preset.py +0 -0
  236. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/curve_editor_pro.py +0 -0
  237. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/curves_preset.py +0 -0
  238. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/debayer.py +0 -0
  239. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/debug_utils.py +0 -0
  240. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/dnd_mime.py +0 -0
  241. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/doc_manager.py +0 -0
  242. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/exoplanet_detector.py +0 -0
  243. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/file_utils.py +0 -0
  244. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/fitsmodifier.py +0 -0
  245. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/fix_bom.py +0 -0
  246. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/free_torch_memory.py +0 -0
  247. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/frequency_separation.py +0 -0
  248. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/function_bundle.py +0 -0
  249. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/generate_translations.py +0 -0
  250. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ghs_dialog_pro.py +0 -0
  251. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ghs_preset.py +0 -0
  252. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/graxpert.py +0 -0
  253. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/graxpert_preset.py +0 -0
  254. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/__init__.py +0 -0
  255. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/__init__.py +0 -0
  256. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/dock_mixin.py +0 -0
  257. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/file_mixin.py +0 -0
  258. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/geometry_mixin.py +0 -0
  259. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/header_mixin.py +0 -0
  260. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/mask_mixin.py +0 -0
  261. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/theme_mixin.py +0 -0
  262. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/update_mixin.py +0 -0
  263. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/view_mixin.py +0 -0
  264. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/statistics_dialog.py +0 -0
  265. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/halobgon.py +0 -0
  266. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/header_viewer.py +0 -0
  267. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/headless_utils.py +0 -0
  268. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/histogram.py +0 -0
  269. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/history_explorer.py +0 -0
  270. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/i18n.py +0 -0
  271. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/image_combine.py +0 -0
  272. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/image_peeker_pro.py +0 -0
  273. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/__init__.py +0 -0
  274. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/mdi_snap.py +0 -0
  275. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/narrowband_normalization.py +0 -0
  276. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/scnr.py +0 -0
  277. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/starbasedwhitebalance.py +0 -0
  278. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/stretch.py +0 -0
  279. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/isophote.py +0 -0
  280. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/layers.py +0 -0
  281. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/layers_dock.py +0 -0
  282. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/lazy_imports.py +0 -0
  283. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/legacy/__init__.py +0 -0
  284. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/legacy/image_manager.py +0 -0
  285. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/legacy/numba_utils.py +0 -0
  286. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/legacy/xisf.py +0 -0
  287. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/linear_fit.py +0 -0
  288. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/live_stacking.py +0 -0
  289. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/log_bus.py +0 -0
  290. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/logging_config.py +0 -0
  291. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/luminancerecombine.py +0 -0
  292. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/main_helpers.py +0 -0
  293. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mask_creation.py +0 -0
  294. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/masks_core.py +0 -0
  295. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mdi_widgets.py +0 -0
  296. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/memory_utils.py +0 -0
  297. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/metadata_patcher.py +0 -0
  298. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mfdeconv.py +0 -0
  299. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mfdeconv_earlystop.py +0 -0
  300. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mfdeconvcudnn.py +0 -0
  301. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mfdeconvsport.py +0 -0
  302. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/minorbodycatalog.py +0 -0
  303. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/morphology.py +0 -0
  304. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/multiscale_decomp.py +0 -0
  305. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/narrowband_normalization.py +0 -0
  306. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/nbtorgb_stars.py +0 -0
  307. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/numba_utils.py +0 -0
  308. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/numba_warmup.py +0 -0
  309. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/__init__.py +0 -0
  310. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/command_help_dialog.py +0 -0
  311. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/command_runner.py +0 -0
  312. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/commands.py +0 -0
  313. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/script_editor.py +0 -0
  314. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/scripts.py +0 -0
  315. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/settings.py +0 -0
  316. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/parallel_utils.py +0 -0
  317. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/pedestal.py +0 -0
  318. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/perfect_palette_picker.py +0 -0
  319. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/pipeline.py +0 -0
  320. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/pixelmath.py +0 -0
  321. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/plate_solver.py +0 -0
  322. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/project_io.py +0 -0
  323. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/psf_utils.py +0 -0
  324. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/psf_viewer.py +0 -0
  325. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/pyi_rthook_astroquery.py +0 -0
  326. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/remove_green.py +0 -0
  327. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/remove_stars.py +0 -0
  328. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/remove_stars_preset.py +0 -0
  329. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/rgb_combination.py +0 -0
  330. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/rgb_extract.py +0 -0
  331. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/runtime_imports.py +0 -0
  332. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/runtime_torch.py +0 -0
  333. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/save_options.py +0 -0
  334. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/selective_color.py +0 -0
  335. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ser_tracking.py +0 -0
  336. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/sfcc.py +0 -0
  337. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/shortcuts.py +0 -0
  338. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/signature_insert.py +0 -0
  339. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/stacking_suite.py +0 -0
  340. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_alignment.py +0 -0
  341. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_alignment_preset.py +0 -0
  342. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_metrics.py +0 -0
  343. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_spikes.py +0 -0
  344. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_stretch.py +0 -0
  345. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/stat_stretch.py +0 -0
  346. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/status_log_dock.py +0 -0
  347. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/subwindow.py +0 -0
  348. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/supernovaasteroidhunter.py +0 -0
  349. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/swap_manager.py +0 -0
  350. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/torch_backend.py +0 -0
  351. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/torch_rejection.py +0 -0
  352. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/all_source_strings.json +0 -0
  353. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/ar_translations.py +0 -0
  354. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/de_translations.py +0 -0
  355. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/es_translations.py +0 -0
  356. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/fr_translations.py +0 -0
  357. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/hi_translations.py +0 -0
  358. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/integrate_translations.py +0 -0
  359. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/it_translations.py +0 -0
  360. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/ja_translations.py +0 -0
  361. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/pt_translations.py +0 -0
  362. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/ru_translations.py +0 -0
  363. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ar.qm +0 -0
  364. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ar.ts +0 -0
  365. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_de.qm +0 -0
  366. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_de.ts +0 -0
  367. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_es.qm +0 -0
  368. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_es.ts +0 -0
  369. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_fr.qm +0 -0
  370. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_fr.ts +0 -0
  371. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_hi.qm +0 -0
  372. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_hi.ts +0 -0
  373. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_it.qm +0 -0
  374. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_it.ts +0 -0
  375. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ja.qm +0 -0
  376. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ja.ts +0 -0
  377. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_pt.qm +0 -0
  378. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_pt.ts +0 -0
  379. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ru.qm +0 -0
  380. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ru.ts +0 -0
  381. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_sw.qm +0 -0
  382. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_sw.ts +0 -0
  383. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_uk.qm +0 -0
  384. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_uk.ts +0 -0
  385. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_zh.qm +0 -0
  386. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_zh.ts +0 -0
  387. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/sw_translations.py +0 -0
  388. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/uk_translations.py +0 -0
  389. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/zh_translations.py +0 -0
  390. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/versioning.py +0 -0
  391. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/view_bundle.py +0 -0
  392. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wavescale_hdr.py +0 -0
  393. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wavescale_hdr_preset.py +0 -0
  394. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wavescalede.py +0 -0
  395. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wavescalede_preset.py +0 -0
  396. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wcs_update.py +0 -0
  397. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/whitebalance.py +0 -0
  398. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/__init__.py +0 -0
  399. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/common_utilities.py +0 -0
  400. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/graphics_views.py +0 -0
  401. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/image_utils.py +0 -0
  402. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/minigame/game.js +0 -0
  403. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/minigame/index.html +0 -0
  404. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/minigame/style.css +0 -0
  405. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/preview_dialogs.py +0 -0
  406. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/resource_monitor.py +0 -0
  407. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/spinboxes.py +0 -0
  408. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/themed_buttons.py +0 -0
  409. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/wavelet_utils.py +0 -0
  410. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wimi.py +0 -0
  411. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wims.py +0 -0
  412. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/window_shelf.py +0 -0
  413. {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/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.0.post2
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 ; sys_platform != "win32"
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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "setiastrosuitepro"
3
- version = "1.7.0.post2"
3
+ version = "1.7.1.post2"
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"
@@ -55,15 +55,14 @@ jplephem = "*"
55
55
  # performance
56
56
  numba = "*"
57
57
 
58
- # neural net
58
+ #neural net
59
59
  onnx = "*"
60
-
61
- # Choose ONE runtime per platform.
62
- # - Windows: DirectML (GPU on NVIDIA/AMD/Intel without CUDA hassles)
63
- onnxruntime-directml = {version="*", markers="sys_platform == 'win32'"}
64
-
65
- # - Non-Windows: CPU runtime
66
- onnxruntime = {version="*", markers="sys_platform != 'win32'"}
60
+ # Use GPU version on Linux, DirectML on Windows, CPU version on macOS/others
61
+ # Note: onnxruntime-gpu includes CUDA support and also provides CPUExecutionProvider as fallback
62
+ # You cannot install both onnxruntime and onnxruntime-gpu simultaneously
63
+ "onnxruntime-gpu" = {version = "*", markers = "sys_platform == 'linux'"}
64
+ "onnxruntime-directml" = {version = "*", markers = "sys_platform == 'win32'"}
65
+ onnxruntime = {version = "*", markers = "sys_platform != 'linux' and sys_platform != 'win32'"}
67
66
 
68
67
  # image formats & camera raw
69
68
  xisf = "*"
@@ -0,0 +1,56 @@
1
+ <svg width="500" height="500" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="skyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#0d0221;stop-opacity:1" />
5
+ <stop offset="100%" style="stop-color:#2a0e66;stop-opacity:1" />
6
+ </linearGradient>
7
+ <linearGradient id="sunGradient" x1="0%" y1="0%" x2="0%" y2="100%">
8
+ <stop offset="0%" style="stop-color:#ff9a00;stop-opacity:1" />
9
+ <stop offset="40%" style="stop-color:#ff0055;stop-opacity:1" />
10
+ <stop offset="100%" style="stop-color:#9900ff;stop-opacity:1" />
11
+ </linearGradient>
12
+ <linearGradient id="textGradient" x1="0%" y1="0%" x2="100%" y2="100%">
13
+ <stop offset="0%" style="stop-color:#00ffff;stop-opacity:1" />
14
+ <stop offset="100%" style="stop-color:#ff00ff;stop-opacity:1" />
15
+ </linearGradient>
16
+ <filter id="neonGlow" x="-50%" y="-50%" width="200%" height="200%">
17
+ <feGaussianBlur stdDeviation="3.0" result="coloredBlur"/>
18
+ <feMerge>
19
+ <feMergeNode in="coloredBlur"/>
20
+ <feMergeNode in="SourceGraphic"/>
21
+ </feMerge>
22
+ </filter>
23
+ </defs>
24
+ <rect width="500" height="500" fill="url(#skyGradient)" />
25
+ <g transform="translate(250, 220)">
26
+ <circle r="120" fill="url(#sunGradient)" />
27
+ <rect x="-120" y="20" width="240" height="4" fill="#2a0e66" opacity="0.8" />
28
+ <rect x="-120" y="35" width="240" height="6" fill="#2a0e66" opacity="0.8" />
29
+ <rect x="-120" y="52" width="240" height="8" fill="#2a0e66" opacity="0.8" />
30
+ <rect x="-120" y="72" width="240" height="12" fill="#2a0e66" opacity="0.8" />
31
+ <rect x="-120" y="96" width="240" height="16" fill="#2a0e66" opacity="0.8" />
32
+ </g>
33
+ <g stroke="#ff00ff" stroke-width="2" opacity="0.4">
34
+ <line x1="0" y1="350" x2="500" y2="350" />
35
+ <line x1="0" y1="380" x2="500" y2="380" />
36
+ <line x1="0" y1="420" x2="500" y2="420" />
37
+ <line x1="0" y1="470" x2="500" y2="470" />
38
+ <line x1="250" y1="350" x2="250" y2="500" />
39
+ <line x1="250" y1="350" x2="50" y2="500" />
40
+ <line x1="250" y1="350" x2="-150" y2="500" />
41
+ <line x1="250" y1="350" x2="450" y2="500" />
42
+ <line x1="250" y1="350" x2="650" y2="500" />
43
+ </g>
44
+ <g font-family="'Times New Roman', Times, serif" font-weight="bold" font-style="italic" font-size="360" text-anchor="middle">
45
+ <text x="217" y="390" fill="#00ffff" opacity="0.7">TC</text>
46
+ <text x="233" y="390" fill="#ff0055" opacity="0.7">TC</text>
47
+ <text x="225" y="390" fill="url(#textGradient)" stroke="#ffffff" stroke-width="3" filter="url(#neonGlow)">TC</text>
48
+ </g>
49
+ <g fill="#ffffff" opacity="0.8">
50
+ <circle cx="50" cy="50" r="2" />
51
+ <circle cx="450" cy="80" r="2" />
52
+ <circle cx="100" cy="150" r="1.5" />
53
+ <circle cx="400" cy="20" r="1.5" />
54
+ <path d="M420 120 L422 130 L432 132 L422 134 L420 144 L418 134 L408 132 L418 130 Z" fill="#00ffff" />
55
+ </g>
56
+ </svg>
@@ -0,0 +1,3 @@
1
+ # Auto-generated at build time. Do not edit.
2
+ BUILD_TIMESTAMP = "2026-01-15T16:55:53Z"
3
+ APP_VERSION = "1.7.1.post2"
@@ -7,9 +7,33 @@ import numpy as np
7
7
  import sys
8
8
  import platform # add
9
9
  import time
10
+ import subprocess
10
11
 
11
12
  IS_APPLE_ARM = (sys.platform == "darwin" and platform.machine() == "arm64")
12
13
 
14
+ def _has_nvidia_gpu() -> bool:
15
+ """Check if system has an NVIDIA GPU (Linux/Windows)."""
16
+ try:
17
+ if platform.system() == "Linux":
18
+ r = subprocess.run(["nvidia-smi", "-L"], capture_output=True, timeout=2)
19
+ return "GPU" in (r.stdout.decode("utf-8", errors="ignore") or "")
20
+ elif platform.system() == "Windows":
21
+ try:
22
+ ps = subprocess.run(
23
+ ["powershell", "-NoProfile", "-Command",
24
+ "(Get-CimInstance Win32_VideoController | Select-Object -ExpandProperty Name) -join ';'"],
25
+ capture_output=True, timeout=2
26
+ )
27
+ out = (ps.stdout.decode("utf-8", errors="ignore") or "").lower()
28
+ return "nvidia" in out
29
+ except Exception:
30
+ w = subprocess.run(["wmic", "path", "win32_VideoController", "get", "name"],
31
+ capture_output=True, timeout=2)
32
+ return "nvidia" in (w.stdout.decode("utf-8", errors="ignore") or "").lower()
33
+ except Exception:
34
+ pass
35
+ return False
36
+
13
37
  from PyQt6.QtCore import Qt, QThread, pyqtSignal, QStandardPaths, QSettings
14
38
  from PyQt6.QtWidgets import (
15
39
  QDialog, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QFileDialog,
@@ -258,6 +282,7 @@ class _ONNXWorker(QThread):
258
282
  failed = pyqtSignal(str)
259
283
  finished_ok = pyqtSignal(np.ndarray)
260
284
  canceled = pyqtSignal()
285
+ log_message = pyqtSignal(str) # for console logging
261
286
 
262
287
  def __init__(self, model_path: str, image: np.ndarray, patch: int, overlap: int, providers: list[str]):
263
288
  super().__init__()
@@ -287,16 +312,67 @@ class _ONNXWorker(QThread):
287
312
  self.canceled.emit()
288
313
  return
289
314
 
315
+ # Log available providers for debugging
316
+ avail_providers = ort.get_available_providers()
317
+ gpu_providers = [p for p in self.providers if p != "CPUExecutionProvider"]
318
+ has_nvidia = _has_nvidia_gpu()
319
+
320
+ self.log_message.emit(f"🔍 Available ONNX providers: {', '.join(avail_providers)}")
321
+ self.log_message.emit(f"🔍 Attempting providers: {', '.join(self.providers)}")
322
+ print(f"🔍 Available ONNX providers: {', '.join(avail_providers)}")
323
+ print(f"🔍 Attempting providers: {', '.join(self.providers)}")
324
+
325
+ # Check if NVIDIA GPU is present but CUDA provider is missing
326
+ if has_nvidia and "CUDAExecutionProvider" not in avail_providers:
327
+ msg = ("⚠️ GPU NVIDIA détecté mais CUDAExecutionProvider n'est pas disponible.\n"
328
+ " Vous devez installer 'onnxruntime-gpu' au lieu de 'onnxruntime'.\n"
329
+ " Commande: pip uninstall onnxruntime && pip install onnxruntime-gpu")
330
+ self.log_message.emit(msg)
331
+ print(msg)
332
+
290
333
  try:
291
334
  sess = ort.InferenceSession(self.model_path, providers=self.providers)
292
335
  self.used_provider = (sess.get_providers()[0] if sess.get_providers() else None)
293
- except Exception:
336
+ # Log successful GPU usage
337
+ if self.used_provider != "CPUExecutionProvider" and gpu_providers:
338
+ msg = f"✅ Aberration AI: Using GPU provider {self.used_provider}"
339
+ self.log_message.emit(msg)
340
+ print(msg)
341
+ elif has_nvidia and self.used_provider == "CPUExecutionProvider":
342
+ msg = ("⚠️ GPU NVIDIA détecté mais utilisation du CPU.\n"
343
+ " Installez 'onnxruntime-gpu' pour utiliser le GPU.")
344
+ self.log_message.emit(msg)
345
+ print(msg)
346
+ except Exception as e:
347
+ # Log the actual error for debugging
348
+ error_msg = str(e)
349
+ msg = f"⚠️ Aberration AI: GPU provider failed: {error_msg}"
350
+ self.log_message.emit(msg)
351
+ print(msg)
352
+ self.log_message.emit(f"Available providers: {', '.join(avail_providers)}")
353
+ print(f"Available providers: {', '.join(avail_providers)}")
354
+ self.log_message.emit(f"Attempted providers: {', '.join(self.providers)}")
355
+ print(f"Attempted providers: {', '.join(self.providers)}")
356
+
357
+ # Check if onnxruntime-gpu is installed (CUDA provider should be available if it is)
358
+ if "CUDAExecutionProvider" in self.providers and "CUDAExecutionProvider" not in avail_providers:
359
+ if has_nvidia:
360
+ msg = ("❌ CUDAExecutionProvider non disponible alors qu'un GPU NVIDIA est présent.\n"
361
+ " Installez 'onnxruntime-gpu': pip uninstall onnxruntime && pip install onnxruntime-gpu")
362
+ else:
363
+ msg = "⚠️ CUDAExecutionProvider not available. You may need to install onnxruntime-gpu instead of onnxruntime."
364
+ self.log_message.emit(msg)
365
+ print(msg)
366
+
294
367
  # fallback CPU if GPU fails
295
368
  try:
296
369
  sess = ort.InferenceSession(self.model_path, providers=["CPUExecutionProvider"])
297
370
  self.used_provider = "CPUExecutionProvider"
371
+ msg = f"⚠️ Aberration AI: Falling back to CPU (GPU initialization failed: {error_msg})"
372
+ self.log_message.emit(msg)
373
+ print(msg)
298
374
  except Exception as e2:
299
- self.failed.emit(f"Failed to init ONNX session:\n{e2}")
375
+ self.failed.emit(f"Failed to init ONNX session:\nGPU error: {error_msg}\nCPU error: {e2}")
300
376
  return
301
377
 
302
378
  def cb(frac):
@@ -796,6 +872,7 @@ class AberrationAIDialog(QDialog):
796
872
  self._worker.failed.connect(self._on_failed)
797
873
  self._worker.finished_ok.connect(self._on_ok)
798
874
  self._worker.finished.connect(self._on_worker_finished)
875
+ self._worker.log_message.connect(self._log) # Connect log messages to console
799
876
  self._worker.start()
800
877
 
801
878
 
@@ -685,9 +685,51 @@ def render_spikes(output: np.ndarray, stars: List[Star], config: SpikeConfig, ct
685
685
 
686
686
  # Main spikes
687
687
  if config.intensity > 0:
688
- for i in range(qty):
689
- theta = main_angle_rad + (i * (math.pi * 2) / float(qty))
690
- ...
688
+ rainbow_str = config.rainbow_spike_intensity if (config.enable_rainbow and config.rainbow_spikes) else 0
689
+ for i in range(int(config.quantity)):
690
+ theta = main_angle_rad + (i * (math.pi * 2) / float(config.quantity))
691
+ cos_t = math.cos(theta)
692
+ sin_t = math.sin(theta)
693
+
694
+ start_x = star.x + cos_t * 0.5
695
+ start_y = star.y + sin_t * 0.5
696
+ end_x = star.x + cos_t * base_length
697
+ end_y = star.y + sin_t * base_length
698
+
699
+ # Standard Spike
700
+ # Base star color, fading to zero alpha
701
+ c_end = (star.color.r/255.0, star.color.g/255.0, star.color.b/255.0, 0.0)
702
+
703
+ # If rainbow enabled, standard spike is dimmed (matches preview logic)
704
+ opacity_mult = 0.4 if rainbow_str > 0 else 1.0
705
+ c_start = (color[0], color[1], color[2], color[3] * opacity_mult)
706
+
707
+ draw_line_gradient(output, start_x, start_y, end_x, end_y,
708
+ c_start, c_end, thickness, config.sharpness)
709
+
710
+ # Rainbow Overlay
711
+ if rainbow_str > 0:
712
+ stops = 10
713
+ for s in range(stops):
714
+ p1 = s / stops
715
+ p2 = (s + 1) / stops
716
+ if p1 > config.rainbow_spike_length:
717
+ break
718
+
719
+ hue = (p1 * 360.0 * config.rainbow_spike_frequency) % 360.0
720
+ a_rainbow = min(1.0, config.intensity * rainbow_str * 2.0) * (1.0 - p1)
721
+ r_seg, g_seg, b_seg = hsl_to_rgb(hue / 360.0, 0.8, 0.6)
722
+ c_seg = (r_seg, g_seg, b_seg, a_rainbow)
723
+
724
+ # Calculate segment positions
725
+ sx = start_x + (end_x - start_x) * p1
726
+ sy = start_y + (end_y - start_y) * p1
727
+ ex = start_x + (end_x - start_x) * p2
728
+ ey = start_y + (end_y - start_y) * p2
729
+
730
+ # Draw rainbow segment with constant color
731
+ draw_line_gradient(output, sx, sy, ex, ey,
732
+ c_seg, c_seg, thickness, 1.0)
691
733
 
692
734
  # Secondary spikes
693
735
  if config.secondary_intensity > 0:
@@ -4619,9 +4619,16 @@ class AstroSuiteProMainWindow(
4619
4619
  # Create a callback to set the image back to the document
4620
4620
  def set_image_callback(image_data, step_name):
4621
4621
  """Apply the result image back to the active document."""
4622
- if active_doc and hasattr(active_doc, "set_image"):
4622
+ if active_doc and hasattr(active_doc, "apply_edit"):
4623
4623
  print(f"[AstroSpike] Setting image back to document, shape: {image_data.shape}")
4624
- # Pass metadata as empty dict and step_name separately
4624
+ # Use apply_edit for proper undo/redo integration
4625
+ meta = {
4626
+ "step_name": step_name,
4627
+ "astrospike": True
4628
+ }
4629
+ active_doc.apply_edit(image_data.astype(np.float32, copy=False), metadata=meta, step_name=step_name)
4630
+ elif active_doc and hasattr(active_doc, "set_image"):
4631
+ print(f"[AstroSpike] Setting image via set_image, shape: {image_data.shape}")
4625
4632
  active_doc.set_image(image_data, metadata={}, step_name=step_name)
4626
4633
  elif active_doc and hasattr(active_doc, "image"):
4627
4634
  print(f"[AstroSpike] Setting image directly, shape: {image_data.shape}")
@@ -9114,6 +9121,13 @@ class AstroSuiteProMainWindow(
9114
9121
 
9115
9122
  super().keyPressEvent(event)
9116
9123
 
9124
+ def _open_texture_clarity(self):
9125
+ try:
9126
+ from setiastro.saspro.texture_clarity import open_texture_clarity_dialog
9127
+ open_texture_clarity_dialog(self)
9128
+ except Exception as e:
9129
+ print(f"Error opening Texture & Clarity: {e}")
9130
+
9117
9131
  def _update_usage_stats(self):
9118
9132
  try:
9119
9133
  now = time.time()
@@ -155,6 +155,7 @@ class MenuMixin:
155
155
  m_fn.addAction(self.act_signature)
156
156
  m_fn.addAction(self.act_star_stretch)
157
157
  m_fn.addAction(self.act_stat_stretch)
158
+ m_fn.addAction(self.act_texture_clarity)
158
159
  m_fn.addAction(self.act_wavescale_de)
159
160
  m_fn.addAction(self.act_wavescale_hdr)
160
161
  m_fn.addAction(self.act_white_balance)
@@ -177,6 +178,7 @@ class MenuMixin:
177
178
  m_tools.addAction(self.act_narrowband_normalization)
178
179
  m_tools.addAction(self.act_nbtorgb)
179
180
  m_tools.addAction(self.act_ppp)
181
+
180
182
  m_tools.addAction(self.act_selective_color)
181
183
  m_tools.addSeparator()
182
184
  m_tools.addAction(self.act_view_bundles)
@@ -13,13 +13,14 @@ from PyQt6.QtWidgets import QMenu, QToolButton
13
13
  from PyQt6.QtCore import QElapsedTimer
14
14
 
15
15
  import sys
16
+ import os
16
17
 
17
18
  if TYPE_CHECKING:
18
19
  pass
19
20
 
20
21
  # Import icon paths - these are needed at runtime
21
22
  from setiastro.saspro.resources import (
22
- icon_path, green_path, neutral_path, whitebalance_path,
23
+ icon_path, green_path, neutral_path, whitebalance_path, texture_clarity_path,
23
24
  morpho_path, clahe_path, starnet_path, staradd_path, LExtract_path,
24
25
  LInsert_path, rgbcombo_path, rgbextract_path, graxperticon_path,
25
26
  cropicon_path, openfile_path, abeicon_path, undoicon_path, redoicon_path,
@@ -222,6 +223,7 @@ class ToolbarMixin:
222
223
  tb_fn.addAction(self.act_wavescale_hdr)
223
224
  tb_fn.addAction(self.act_wavescale_de)
224
225
  tb_fn.addAction(self.act_clahe)
226
+ tb_fn.addAction(self.act_texture_clarity)
225
227
  tb_fn.addAction(self.act_morphology)
226
228
  tb_fn.addAction(self.act_pixelmath)
227
229
  tb_fn.addAction(self.act_signature)
@@ -257,6 +259,7 @@ class ToolbarMixin:
257
259
  tb_tl.addAction(self.act_ppp) # Perfect Palette Picker
258
260
  tb_tl.addAction(self.act_nbtorgb)
259
261
  tb_tl.addAction(self.act_narrowband_normalization)
262
+
260
263
  tb_tl.addAction(self.act_selective_color)
261
264
  tb_tl.addAction(self.act_freqsep)
262
265
  tb_tl.addAction(self.act_multiscale_decomp)
@@ -907,6 +910,12 @@ class ToolbarMixin:
907
910
  self.act_remove_green.setIconVisibleInMenu(True)
908
911
  self.act_remove_green.triggered.connect(self._open_remove_green)
909
912
 
913
+ # Texture and Clarity
914
+ self.act_texture_clarity = QAction(QIcon(texture_clarity_path), self.tr("Texture and Clarity..."), self)
915
+ self.act_texture_clarity.setToolTip(self.tr("Enhance texture and clarity using Unsharp Masking"))
916
+ self.act_texture_clarity.setIconVisibleInMenu(True)
917
+ self.act_texture_clarity.triggered.connect(self._open_texture_clarity)
918
+
910
919
  self.act_background_neutral = QAction(QIcon(neutral_path), self.tr("Background Neutralization..."), self)
911
920
  self.act_background_neutral.setStatusTip(self.tr("Neutralize background color balance using a sampled region"))
912
921
  self.act_background_neutral.setIconVisibleInMenu(True)
@@ -1131,10 +1140,7 @@ class ToolbarMixin:
1131
1140
  self.act_narrowband_normalization.setStatusTip(
1132
1141
  self.tr("Normalize HOO/SHO/HSO/HOS (PixelMath port by Bill Blanshan and Mike Cranfield)")
1133
1142
  )
1134
- self.act_narrowband_normalization.setIconVisibleInMenu(False)
1135
- self.act_narrowband_normalization.setShortcut(QKeySequence("Ctrl+Alt+Shift+N"))
1136
- self.act_narrowband_normalization.setShortcutContext(Qt.ShortcutContext.ApplicationShortcut)
1137
- self.addAction(self.act_narrowband_normalization)
1143
+
1138
1144
  self.act_narrowband_normalization.triggered.connect(self._open_narrowband_normalization_tool)
1139
1145
 
1140
1146
  self.act_nbtorgb = QAction(QIcon(nbtorgb_path), self.tr("NB->RGB Stars..."), self)
@@ -1394,6 +1400,7 @@ class ToolbarMixin:
1394
1400
  reg("add_stars", self.act_add_stars)
1395
1401
  reg("pedestal", self.act_pedestal)
1396
1402
  reg("remove_green", self.act_remove_green)
1403
+ reg("texture_clarity", self.act_texture_clarity)
1397
1404
  reg("background_neutral", self.act_background_neutral)
1398
1405
  reg("white_balance", self.act_white_balance)
1399
1406
  reg("sfcc", self.act_sfcc)