shinestacker 0.2.1__py3-none-any.whl → 0.2.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of shinestacker might be problematic. Click here for more details.
- shinestacker/__init__.py +13 -0
- shinestacker/_version.py +1 -1
- shinestacker/algorithms/__init__.py +5 -0
- shinestacker/algorithms/align.py +0 -1
- shinestacker/algorithms/core_utils.py +1 -1
- shinestacker/app/main.py +0 -1
- shinestacker/app/project.py +0 -1
- shinestacker/app/retouch.py +0 -1
- shinestacker/config/__init__.py +2 -0
- shinestacker/core/__init__.py +10 -4
- shinestacker/gui/new_project.py +0 -1
- shinestacker/gui/project_editor.py +0 -1
- shinestacker/retouch/exif_data.py +0 -1
- shinestacker/retouch/shortcuts_help.py +0 -1
- {shinestacker-0.2.1.dist-info → shinestacker-0.2.2.dist-info}/METADATA +8 -5
- {shinestacker-0.2.1.dist-info → shinestacker-0.2.2.dist-info}/RECORD +20 -20
- {shinestacker-0.2.1.dist-info → shinestacker-0.2.2.dist-info}/WHEEL +0 -0
- {shinestacker-0.2.1.dist-info → shinestacker-0.2.2.dist-info}/entry_points.txt +0 -0
- {shinestacker-0.2.1.dist-info → shinestacker-0.2.2.dist-info}/licenses/LICENSE +0 -0
- {shinestacker-0.2.1.dist-info → shinestacker-0.2.2.dist-info}/top_level.txt +0 -0
shinestacker/__init__.py
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# flake8: noqa F401 F403
|
|
1
2
|
from ._version import __version__
|
|
3
|
+
from . import config
|
|
4
|
+
from . import core
|
|
5
|
+
from . import algorithms
|
|
6
|
+
from .config import __all__
|
|
7
|
+
from .core import __all__
|
|
8
|
+
from .algorithms import __all__
|
|
9
|
+
from .config import *
|
|
10
|
+
from .core import *
|
|
11
|
+
from .algorithms import *
|
|
2
12
|
|
|
3
13
|
__all__ = ['__version__']
|
|
14
|
+
#__all__ += config.__all__
|
|
15
|
+
#__all__ += core.__all__
|
|
16
|
+
#__all__ += algorithms.__all__
|
shinestacker/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '0.2.
|
|
1
|
+
__version__ = '0.2.2'
|
|
@@ -12,3 +12,8 @@ from .vignetting import Vignetting
|
|
|
12
12
|
import logging
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
logger.addHandler(logging.NullHandler())
|
|
15
|
+
|
|
16
|
+
__all__ = [
|
|
17
|
+
'StackJob', 'CombinedActions', 'AlignFrames', 'BalanceFrames', 'FocusStackBunch', 'FocusStack',
|
|
18
|
+
'DepthMapStack', 'PyramidStack', 'MultiLayer', 'NoiseDetection', 'MaskNoise', 'Vignetting'
|
|
19
|
+
]
|
shinestacker/algorithms/align.py
CHANGED
|
@@ -62,7 +62,6 @@ def get_good_matches(des_0, des_1, matching_config=None):
|
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
def validate_align_config(detector, descriptor, match_method):
|
|
65
|
-
print(detector, descriptor, match_method)
|
|
66
65
|
if descriptor == constants.DESCRIPTOR_SIFT and match_method == constants.MATCHING_NORM_HAMMING:
|
|
67
66
|
raise ValueError("Descriptor SIFT requires matching method KNN")
|
|
68
67
|
if detector == constants.DETECTOR_ORB and descriptor == constants.DESCRIPTOR_AKAZE and \
|
shinestacker/app/main.py
CHANGED
|
@@ -12,7 +12,6 @@ from shinestacker.config.config import config
|
|
|
12
12
|
config.init(DISABLE_TQDM=True, COMBINED_APP=True, DONT_USE_NATIVE_MENU=True)
|
|
13
13
|
from shinestacker.config.constants import constants
|
|
14
14
|
from shinestacker.core.logging import setup_logging
|
|
15
|
-
from shinestacker.core.core_utils import get_app_base_path
|
|
16
15
|
from shinestacker.gui.main_window import MainWindow
|
|
17
16
|
from shinestacker.retouch.image_editor_ui import ImageEditorUI
|
|
18
17
|
from shinestacker.app.gui_utils import disable_macos_special_menu_items
|
shinestacker/app/project.py
CHANGED
|
@@ -12,7 +12,6 @@ from shinestacker.config.config import config
|
|
|
12
12
|
config.init(DISABLE_TQDM=True, DONT_USE_NATIVE_MENU=True)
|
|
13
13
|
from shinestacker.config.constants import constants
|
|
14
14
|
from shinestacker.core.logging import setup_logging
|
|
15
|
-
from shinestacker.core.core_utils import get_app_base_path
|
|
16
15
|
from shinestacker.gui.main_window import MainWindow
|
|
17
16
|
from shinestacker.app.gui_utils import disable_macos_special_menu_items
|
|
18
17
|
from shinestacker.app.help_menu import add_help_action
|
shinestacker/app/retouch.py
CHANGED
|
@@ -6,7 +6,6 @@ from PySide6.QtGui import QIcon, QAction
|
|
|
6
6
|
from PySide6.QtCore import Qt, QEvent
|
|
7
7
|
from shinestacker.config.config import config
|
|
8
8
|
config.init(DISABLE_TQDM=True, DONT_USE_NATIVE_MENU=True)
|
|
9
|
-
from shinestacker.core.core_utils import get_app_base_path
|
|
10
9
|
from shinestacker.config.config import config
|
|
11
10
|
from shinestacker.config.constants import constants
|
|
12
11
|
from shinestacker.retouch.image_editor_ui import ImageEditorUI
|
shinestacker/config/__init__.py
CHANGED
shinestacker/core/__init__.py
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# flake8: noqa F401
|
|
2
|
-
from .logging import setup_logging
|
|
3
|
-
from .exceptions import (FocusStackError, InvalidOptionError, ImageLoadError, AlignmentError,
|
|
4
|
-
|
|
5
|
-
from .framework import
|
|
2
|
+
from .logging import setup_logging
|
|
3
|
+
from .exceptions import (FocusStackError, InvalidOptionError, ImageLoadError, ImageSaveError, AlignmentError,
|
|
4
|
+
BitDepthError, ShapeError, RunStopException)
|
|
5
|
+
from .framework import Job
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
'setup_logging',
|
|
9
|
+
'FocusStackError', 'InvalidOptionError', 'ImageLoadError', 'ImageSaveError',
|
|
10
|
+
'AlignmentError','BitDepthError', 'ShapeError', 'RunStopException',
|
|
11
|
+
'Job']
|
shinestacker/gui/new_project.py
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
from PySide6.QtWidgets import QMainWindow, QListWidget, QMessageBox, QDialog, QListWidgetItem, QLabel
|
|
4
|
-
from PySide6.QtGui import QIcon
|
|
5
4
|
from PySide6.QtCore import Qt
|
|
6
5
|
from .. config.constants import constants
|
|
7
6
|
from .colors import ColorPalette
|
|
@@ -3,7 +3,6 @@ from PIL.TiffImagePlugin import IFDRational
|
|
|
3
3
|
from PySide6.QtWidgets import QFormLayout, QHBoxLayout, QPushButton, QDialog, QLabel
|
|
4
4
|
from PySide6.QtGui import QIcon
|
|
5
5
|
from PySide6.QtCore import Qt
|
|
6
|
-
from .. core.core_utils import get_app_base_path
|
|
7
6
|
from .. algorithms.exif import exif_dict
|
|
8
7
|
|
|
9
8
|
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shinestacker
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: ShineStacker
|
|
5
5
|
Author-email: Luca Lista <luka.lista@gmail.com>
|
|
6
6
|
License-Expression: LGPL-3.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/lucalista/shinestacker
|
|
8
|
+
Project-URL: Documentation, https://shinestacker.readthedocs.io/
|
|
7
9
|
Classifier: Programming Language :: Python :: 3
|
|
8
10
|
Classifier: Operating System :: OS Independent
|
|
9
11
|
Requires-Python: >=3.12
|
|
@@ -32,17 +34,18 @@ Dynamic: license-file
|
|
|
32
34
|
[](https://github.com/lucalista/shinestacker/actions/workflows/ci-multiplatform.yml)
|
|
33
35
|
[](https://pypi.org/project/shinestacker/)
|
|
34
36
|
[](https://pypi.org/project/shinestacker/)
|
|
37
|
+
[](https://codecov.io/github/lucalista/shinestacker)
|
|
35
38
|
|
|
36
|
-
<img src='https://raw.githubusercontent.com/lucalista/shinestacker/main/img/flies.gif' width="400"> <img src='https://raw.githubusercontent.com/lucalista/shinestacker/main/img/flies_stack.jpg' width="400">
|
|
39
|
+
<img src='https://raw.githubusercontent.com/lucalista/shinestacker/main/img/flies.gif' width="400" referrerpolicy="no-referrer"> <img src='https://raw.githubusercontent.com/lucalista/shinestacker/main/img/flies_stack.jpg' width="400" referrerpolicy="no-referrer">
|
|
37
40
|
|
|
38
|
-
|
|
41
|
+
# Documentation
|
|
39
42
|
|
|
40
43
|
📖 [Main documentation](https://github.com/lucalista/shinestacker/blob/main/docs/main.md) • 📝 [Changelog](https://github.com/lucalista/shinestacker/blob/main/CHANGELOG.md)
|
|
41
44
|
|
|
42
45
|
|
|
43
|
-
# Credits
|
|
46
|
+
# Credits
|
|
44
47
|
|
|
45
|
-
The main pyramid stack algorithm was inspired by the [Laplacian pyramids method](https://github.com/sjawhar/focus-stacking) implementation by Sami Jawhar
|
|
48
|
+
The main pyramid stack algorithm was initially inspired by the [Laplacian pyramids method](https://github.com/sjawhar/focus-stacking) implementation by Sami Jawhar that was used under permission of the author for initial versions of this package. The implementation in the latest releases was rewritten from the original code.
|
|
46
49
|
|
|
47
50
|
# Resources
|
|
48
51
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
shinestacker/__init__.py,sha256=
|
|
2
|
-
shinestacker/_version.py,sha256=
|
|
3
|
-
shinestacker/algorithms/__init__.py,sha256=
|
|
4
|
-
shinestacker/algorithms/align.py,sha256=
|
|
1
|
+
shinestacker/__init__.py,sha256=sxG9J11a6Qpu_VcqsARRqGSPByHtDvQqR5ozWYjHfZU,387
|
|
2
|
+
shinestacker/_version.py,sha256=pKh2_hmFNUwG0JxbL18qxdmi_nmFpgRbR8X6IPZr08o,21
|
|
3
|
+
shinestacker/algorithms/__init__.py,sha256=X9nwToaB13GAACoaE-K0o9R1Jt7g9xSzeJI8Ra2GcL8,722
|
|
4
|
+
shinestacker/algorithms/align.py,sha256=As7MIfjoJc_1vJ058iwP7b_PnDnfYsBQ1JNZ4GX5ZU4,16529
|
|
5
5
|
shinestacker/algorithms/balance.py,sha256=UOmyUPJVBswUYWvYIB8WdlfTAxUAahZrnxQUSrYJ3I4,15649
|
|
6
|
-
shinestacker/algorithms/core_utils.py,sha256=
|
|
6
|
+
shinestacker/algorithms/core_utils.py,sha256=3mvJVDDfzMOboP724iM_5WT-pLFFoGAhwcXsQN8dBYo,552
|
|
7
7
|
shinestacker/algorithms/depth_map.py,sha256=hx6yyCjLKiu3Wi5uZFXiixEfOBxfieNQ9xH9cp5zD0Y,7844
|
|
8
8
|
shinestacker/algorithms/exif.py,sha256=VS3qbLRVlbZ8_z8hYgGVV4BSmwWzR0reN_G0XV3hzAI,9364
|
|
9
9
|
shinestacker/algorithms/multilayer.py,sha256=Fm-WZqH4DAEOAyC0QpPaMH3VaG5cEPX9rqKsAyWpELs,8694
|
|
@@ -18,15 +18,15 @@ shinestacker/app/about_dialog.py,sha256=G_2hRQFpo96q0H8z02fMZ0Jl_2-PpnwNxqISY7Xn
|
|
|
18
18
|
shinestacker/app/app_config.py,sha256=tQ1JBTG2gtHO1UbJYJjjYUBCakmtZpafvMUTHb5OyUo,1117
|
|
19
19
|
shinestacker/app/gui_utils.py,sha256=C5ehbYyoIcBweFTfdQcjsILAcWpMPrVLMbYz0ZM-EcM,1571
|
|
20
20
|
shinestacker/app/help_menu.py,sha256=ofFhZMPTz7lQ-_rsu30yAxbLA-Zq_kkRGXxPMukaG08,476
|
|
21
|
-
shinestacker/app/main.py,sha256=
|
|
21
|
+
shinestacker/app/main.py,sha256=insz1oxeDlZQWNKo7DGaLmRrc8PZVD7brPRrWE1SWvk,6894
|
|
22
22
|
shinestacker/app/open_frames.py,sha256=uqUihAkP1K2p4bQ8LAQK02XwVddkRJUPy_vzwUgI8jc,1356
|
|
23
|
-
shinestacker/app/project.py,sha256=
|
|
24
|
-
shinestacker/app/retouch.py,sha256=
|
|
25
|
-
shinestacker/config/__init__.py,sha256=
|
|
23
|
+
shinestacker/app/project.py,sha256=xtuA8SRoWINpHcLTApBL3RYRd0ADrczrAaq_xtT3cZI,3234
|
|
24
|
+
shinestacker/app/retouch.py,sha256=6Sa3ngUqj_Wn5gZBJNZeM-JxeGvXWmJZAa2Jj99t-xk,3012
|
|
25
|
+
shinestacker/config/__init__.py,sha256=gMotpjZz5KyGdytdHhudCVlSKONw8kqMYNRACmlWUw0,172
|
|
26
26
|
shinestacker/config/config.py,sha256=Vif1_-zFZQhI6KW1CAX3Yt-cgwXMJ7YDwDJrzoGVE48,1459
|
|
27
27
|
shinestacker/config/constants.py,sha256=yOt1L7LiJyBPrGezIW-Vx_1I4r1Os0rPibfqroN30nk,5724
|
|
28
28
|
shinestacker/config/gui_constants.py,sha256=PtizNIsLHM_P_GdkrhsSVZuuS5abxOETXozu5eSRt9w,2440
|
|
29
|
-
shinestacker/core/__init__.py,sha256=
|
|
29
|
+
shinestacker/core/__init__.py,sha256=tZOPV21QOxH6bEZG21fLxIdGNu9UbbwkFWHgSJkReRk,459
|
|
30
30
|
shinestacker/core/colors.py,sha256=f4_iaNgDYpHfLaoooCsltDxem5fI950GPZlw2lFPqYM,1330
|
|
31
31
|
shinestacker/core/core_utils.py,sha256=EkDJY8g3zLdAqT9hTRZ2_jh3jo8GMF2L6ZBINyG6L6Y,1398
|
|
32
32
|
shinestacker/core/exceptions.py,sha256=TzguZ88XxjgbPs5jMFdrXV2cQRkl5mFfXZin9GRMSRY,1555
|
|
@@ -40,9 +40,9 @@ shinestacker/gui/gui_images.py,sha256=3HySCrldbYhUyxO0B1ckC2TLVg5nq94bBXjqsQzCyC
|
|
|
40
40
|
shinestacker/gui/gui_logging.py,sha256=sN82OsGhMcZdgFMY4z-VbUYiRIsReN-ICaxi31M1J6E,8147
|
|
41
41
|
shinestacker/gui/gui_run.py,sha256=LpBi1V91NrJpVpgS098lSgLtiege0aqcWIGwSbB8cL4,15701
|
|
42
42
|
shinestacker/gui/main_window.py,sha256=KtMe6Hm74xk-lP3qcUsWAw0dzT7CynpdbZA_H651XN0,27203
|
|
43
|
-
shinestacker/gui/new_project.py,sha256=
|
|
43
|
+
shinestacker/gui/new_project.py,sha256=kGTt8zf24w5o8wUOc0QgXVDbvi4XcM4ia0CZftUImOc,7002
|
|
44
44
|
shinestacker/gui/project_converter.py,sha256=d66pbBzaBgANpudJLW0tGUSfSy0PXNhs1M6R2o_Fd5E,7390
|
|
45
|
-
shinestacker/gui/project_editor.py,sha256=
|
|
45
|
+
shinestacker/gui/project_editor.py,sha256=s0IU3l3xO_JGovazOHhKkT1rraUWNVzyAua1dsUqJyg,21657
|
|
46
46
|
shinestacker/gui/project_model.py,sha256=buzpxppLuoNWao7M2_FOPVpCBex2WgEcvqyq9dxvrz8,4524
|
|
47
47
|
shinestacker/gui/ico/focus_stack_bkg.png,sha256=Q86TgqvKEi_IzKI8m6aZB2a3T40UkDtexf2PdeBM9XE,163151
|
|
48
48
|
shinestacker/gui/ico/shinestacker.icns,sha256=m_6WQBx8sE9jQKwIRa_B5oa7_VcNn6e2TyijeQXPjwM,337563
|
|
@@ -56,16 +56,16 @@ shinestacker/retouch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
|
56
56
|
shinestacker/retouch/brush.py,sha256=49YNdZp1dbfowh6HmLfxuHKz7Py9wkFQsN9-pH38P7Q,319
|
|
57
57
|
shinestacker/retouch/brush_controller.py,sha256=M1vXrgL8ETJheT9PJ8EVIHlMqiVRLePvL5GlEcEaZW4,2949
|
|
58
58
|
shinestacker/retouch/brush_preview.py,sha256=ePyoZPdSY4ytK4uXV-eByQgfsqvhHJqXpleycSxshDg,5247
|
|
59
|
-
shinestacker/retouch/exif_data.py,sha256=
|
|
59
|
+
shinestacker/retouch/exif_data.py,sha256=cYl0ZAAEOmimh2O0REtY0fU_1Y_4uIUtk9orpVLyQKY,2234
|
|
60
60
|
shinestacker/retouch/file_loader.py,sha256=TbPjiD9Vv-i3LCsPVcumYJ2DxgnLmQA6xYCiLCqbEcg,4565
|
|
61
61
|
shinestacker/retouch/image_editor.py,sha256=ehOJgGqvvUOriKyL8s-G0Y-CSYStLo4WCcPzsRy_sys,27579
|
|
62
62
|
shinestacker/retouch/image_editor_ui.py,sha256=wKHqNhcjrPB_qm4zKsTQUw_rXIWzWO3uQUDZvhsbnys,15752
|
|
63
63
|
shinestacker/retouch/image_viewer.py,sha256=5t7JRNoNwSgS7btn7zWmSXPPzXvZKbWBiZMm-YA7Xhg,14827
|
|
64
|
-
shinestacker/retouch/shortcuts_help.py,sha256=
|
|
64
|
+
shinestacker/retouch/shortcuts_help.py,sha256=iYwD7YGV2epNDwOBVDc99zqB9bbxLR_IUtanMJ-abPQ,3749
|
|
65
65
|
shinestacker/retouch/undo_manager.py,sha256=R7O0fbdGFRK2ZZMVpbOcqB5stJLpFa-o2p7Kto8daSI,1355
|
|
66
|
-
shinestacker-0.2.
|
|
67
|
-
shinestacker-0.2.
|
|
68
|
-
shinestacker-0.2.
|
|
69
|
-
shinestacker-0.2.
|
|
70
|
-
shinestacker-0.2.
|
|
71
|
-
shinestacker-0.2.
|
|
66
|
+
shinestacker-0.2.2.dist-info/licenses/LICENSE,sha256=cBN0P3F6BWFkfOabkhuTxwJnK1B0v50jmmzZJjGGous,80
|
|
67
|
+
shinestacker-0.2.2.dist-info/METADATA,sha256=yLjjPZr1ImPVjClHq0D24fTYgH-V8smuueTGlFt_2o8,3009
|
|
68
|
+
shinestacker-0.2.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
69
|
+
shinestacker-0.2.2.dist-info/entry_points.txt,sha256=SY6g1LqtMmp23q1DGwLUDT_dhLX9iss8DvWkiWLyo_4,166
|
|
70
|
+
shinestacker-0.2.2.dist-info/top_level.txt,sha256=MhijwnBVX5psfsyX8JZjqp3SYiWPsKe69f3Gnyze4Fw,13
|
|
71
|
+
shinestacker-0.2.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|