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 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'
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
+ ]
@@ -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 \
@@ -1,5 +1,5 @@
1
1
  import os
2
- from config.config import config
2
+ from ..config.config import config
3
3
 
4
4
  if not config.DISABLE_TQDM:
5
5
  from tqdm import tqdm
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
@@ -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
@@ -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
@@ -2,3 +2,5 @@
2
2
  from .config import config
3
3
  from .constants import constants
4
4
  from .gui_constants import gui_constants
5
+
6
+ __all__ = ['config', 'constants', 'gui_constants']
@@ -1,5 +1,11 @@
1
1
  # flake8: noqa F401
2
- from .logging import setup_logging, console_logging_overwrite, console_logging_newline
3
- from .exceptions import (FocusStackError, InvalidOptionError, ImageLoadError, AlignmentError,
4
- BitDepthError, ShapeError)
5
- from .framework import TqdmCallbacks
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']
@@ -6,7 +6,6 @@ from PySide6.QtGui import QIcon
6
6
  from PySide6.QtCore import Qt
7
7
  from .. config.gui_constants import gui_constants
8
8
  from .. config.constants import constants
9
- from .. core.core_utils import get_app_base_path
10
9
 
11
10
 
12
11
  class NewProjectDialog(QDialog):
@@ -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
 
@@ -3,7 +3,6 @@ from PySide6.QtWidgets import (QFormLayout, QHBoxLayout, QPushButton, QDialog,
3
3
  QLabel, QVBoxLayout, QWidget)
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
 
8
7
 
9
8
  class ShortcutsHelp(QDialog):
@@ -1,9 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shinestacker
3
- Version: 0.2.1
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
  [![CI multiplatform](https://github.com/lucalista/shinestacker/actions/workflows/ci-multiplatform.yml/badge.svg)](https://github.com/lucalista/shinestacker/actions/workflows/ci-multiplatform.yml)
33
35
  [![PyPI version](https://badge.fury.io/py/shinestacker.svg)](https://pypi.org/project/shinestacker/)
34
36
  [![Python Versions](https://img.shields.io/pypi/pyversions/shinestacker)](https://pypi.org/project/shinestacker/)
37
+ [![codecov](https://codecov.io/github/lucalista/shinestacker/graph/badge.svg?token=Y5NKW6VH5G)](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
- ## Documentation
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. The latest implementation was rewritten from the original code that was used under permission of the author for initial versions of this package.
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=ZZ2O_m9OFJm18AxMSuYJt4UjSuSqyJlYRaZMoets498,61
2
- shinestacker/_version.py,sha256=nx8uT9NOkkA2KzjU9Q36cvZlTi-7bCHVPIkXCQkwZf8,21
3
- shinestacker/algorithms/__init__.py,sha256=XKMSOCBqcpeXng5PJ88wLhxhvSIwBJ6xuBFHfjda4ow,519
4
- shinestacker/algorithms/align.py,sha256=93szP69KN6BVRmMlU4TsNwBMgpYxEU9fxNzoK07n0Rw,16575
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=u1aw2-cdA1-RiALxA4rnj38oN2pe2s3BP3T_flvuKMQ,550
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=cB2uTswNTdKv4Fx8p4CCnSSPp1nPCe7XBzG3PcN1Q-M,6953
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=HjLEDkMXzFL-wXEEnXfHmO317TNhbk8NQfANvISWImk,3293
24
- shinestacker/app/retouch.py,sha256=rSl-oLeM9a90MH_HrqnKs9EwnDQyCrhN2iuhfdR3xOI,3071
25
- shinestacker/config/__init__.py,sha256=l9Cg0Rp9sUsY_F7gR2kznuVBkQ-arO7ZOcjS1FoWPtM,121
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=1Iyzh0CXNlRQhpBJg1QR5Ip3bVS0e1hlOBhTDyrTUBw,301
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=YIWjvxzvWsPoU5_xFJjrs7ceyjxoQtGO3JTLxM3xaoI,7051
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=LpopXgw1dPcnH8XulJ7BKpzv9LKoAYUEZ7-d7sEe2tk,21689
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=MC5kWBpqFXDgRXg15umWrURU_L2gDREjG0wzVaL4qm4,2283
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=femx0BT03XVYVOEyIL0OGVGw00_q0E7zCe8wMA-lQlU,3798
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.1.dist-info/licenses/LICENSE,sha256=cBN0P3F6BWFkfOabkhuTxwJnK1B0v50jmmzZJjGGous,80
67
- shinestacker-0.2.1.dist-info/METADATA,sha256=Y2fygrS6lSd31sPnpTjhdEdrW5u2i3QdjgCUfeqSPrw,2651
68
- shinestacker-0.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
69
- shinestacker-0.2.1.dist-info/entry_points.txt,sha256=SY6g1LqtMmp23q1DGwLUDT_dhLX9iss8DvWkiWLyo_4,166
70
- shinestacker-0.2.1.dist-info/top_level.txt,sha256=MhijwnBVX5psfsyX8JZjqp3SYiWPsKe69f3Gnyze4Fw,13
71
- shinestacker-0.2.1.dist-info/RECORD,,
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,,