winipedia-utils 0.1.23__py3-none-any.whl → 0.1.25__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.
@@ -73,7 +73,8 @@ class Base(metaclass=QABCImplementationLoggingMeta):
73
73
  _ = list(walk_package(package))
74
74
 
75
75
  children = cls.__subclasses__()
76
- return sorted(children, key=lambda cls: cls.__name__)
76
+ sorted_children = sorted(children, key=lambda cls: cls.__name__)
77
+ return [child for child in sorted_children if not child.is_abstract_cls()]
77
78
 
78
79
  @final
79
80
  def set_current_page(self, page_cls: type["BasePage"]) -> None:
@@ -3,6 +3,7 @@
3
3
  This module contains the base page class for the VideoVault application.
4
4
  """
5
5
 
6
+ from abc import abstractmethod
6
7
  from functools import partial
7
8
  from types import ModuleType
8
9
  from typing import final
@@ -24,7 +25,10 @@ from winipedia_utils.pyside.ui.base.base import Base as BaseUI
24
25
  class Base(BaseUI, QWidget):
25
26
  """Base page class for the VideoVault application."""
26
27
 
27
- PAGES_PACKAGE: ModuleType = NotImplemented
28
+ @classmethod
29
+ @abstractmethod
30
+ def get_pages_package(cls) -> ModuleType:
31
+ """Get the package to get the page classes from."""
28
32
 
29
33
  @final
30
34
  def base_setup(self) -> None:
@@ -75,4 +79,4 @@ class Base(BaseUI, QWidget):
75
79
  @final
76
80
  def get_page_classes(cls) -> list[type["Base"]]:
77
81
  """Get all the page classes."""
78
- return Base.get_subclasses(cls.PAGES_PACKAGE)
82
+ return Base.get_subclasses(cls.get_pages_package())
@@ -5,7 +5,6 @@ This module contains the base window class for the VideoVault application.
5
5
 
6
6
  from abc import abstractmethod
7
7
  from collections.abc import Generator
8
- from types import ModuleType
9
8
  from typing import final
10
9
 
11
10
  from PySide6.QtWidgets import QMainWindow, QStackedWidget
@@ -17,14 +16,11 @@ from winipedia_utils.pyside.ui.pages.base.base import Base as BasePage
17
16
  class Base(BaseUI, QMainWindow):
18
17
  """Base window class for the VideoVault application."""
19
18
 
19
+ @classmethod
20
20
  @abstractmethod
21
- def get_start_page_cls(self) -> type[BasePage]:
21
+ def get_start_page_cls(cls) -> type[BasePage]:
22
22
  """Get the start page class."""
23
23
 
24
- @abstractmethod
25
- def get_pages_package(self) -> ModuleType:
26
- """The package to get the page classes from."""
27
-
28
24
  @final
29
25
  def base_setup(self) -> None:
30
26
  """Get the Qt object of the UI."""
@@ -47,7 +43,7 @@ class Base(BaseUI, QMainWindow):
47
43
  @final
48
44
  def make_pages(self) -> Generator[BasePage, None, None]:
49
45
  """Get the pages to add to the window."""
50
- for page_cls in BasePage.get_subclasses(self.get_pages_package()):
46
+ for page_cls in BasePage.get_page_classes():
51
47
  yield page_cls()
52
48
 
53
49
  @final
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: winipedia-utils
3
- Version: 0.1.23
3
+ Version: 0.1.25
4
4
  Summary: A package with many utility functions
5
5
  License: MIT
6
6
  Author: Winipedia
@@ -43,10 +43,10 @@ winipedia_utils/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
43
43
  winipedia_utils/pyside/__init__.py,sha256=knliQxknKWqxCEfxlI1K02OtbBfnTkYUZFqyYcLJNDI,52
44
44
  winipedia_utils/pyside/ui/__init__.py,sha256=h5NJ6WyveMMqxIgt0x65_mqndtncxgNmx5816KD3ubU,55
45
45
  winipedia_utils/pyside/ui/base/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
46
- winipedia_utils/pyside/ui/base/base.py,sha256=CjKullHclAgjmb5MJ5Rw1luOPMH0HyVWzjhCO7eSssY,3577
46
+ winipedia_utils/pyside/ui/base/base.py,sha256=3J61SGxx-SlCkdViTJr0si1Ciovr2Tnh1jWQgfAWmSM,3672
47
47
  winipedia_utils/pyside/ui/pages/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
48
48
  winipedia_utils/pyside/ui/pages/base/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
49
- winipedia_utils/pyside/ui/pages/base/base.py,sha256=heFDJswfzSepX7ib5NBpNv6Egm5hdPfRa-StcI_yO-k,2323
49
+ winipedia_utils/pyside/ui/pages/base/base.py,sha256=3-iG6u6XUS_6mDyA3yxbnwPjXqhbcE5odmuIfVpzAY4,2460
50
50
  winipedia_utils/pyside/ui/pages/browser.py,sha256=SzX356snnmEdzCrtIXl5mPaUkM1-_REfUurOotpVIkY,696
51
51
  winipedia_utils/pyside/ui/pages/player.py,sha256=SETJeeCm_m_LmnSTWMBrOuG4Gt_1kqVGzVgMgTxLJDQ,787
52
52
  winipedia_utils/pyside/ui/widgets/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
@@ -55,7 +55,7 @@ winipedia_utils/pyside/ui/widgets/media_player.py,sha256=XIQ3L1zrj5T_6Xe0Cist3v0
55
55
  winipedia_utils/pyside/ui/widgets/notification.py,sha256=_zBq9Q6SDFu3fV2AkbvyCNQmOEOy1l9mKOFAAdyteg4,1941
56
56
  winipedia_utils/pyside/ui/windows/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
57
57
  winipedia_utils/pyside/ui/windows/base/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
58
- winipedia_utils/pyside/ui/windows/base/base.py,sha256=5P50x0-wG3ciGcWAOy2LTAAiAsIfNw2DJ3vqNiplrng,1661
58
+ winipedia_utils/pyside/ui/windows/base/base.py,sha256=JBOqya3dUpZMaq9CoR737Wfjv4gSHNXBAEnyl7O56wE,1498
59
59
  winipedia_utils/resources/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
60
60
  winipedia_utils/resources/svgs/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
61
61
  winipedia_utils/resources/svgs/download_arrow.svg,sha256=R5WNz0JOxkRi5LOuDtc_eZESZN4W0JAuvr-5_ZRqeks,244
@@ -87,7 +87,7 @@ winipedia_utils/testing/tests/base/utils/utils.py,sha256=dUPDrgAxlfREQb33zz23Mfz
87
87
  winipedia_utils/testing/tests/conftest.py,sha256=8RounBlI8Jq1aLaLNpv84MW4ne8Qq0aavQextDOp5ng,920
88
88
  winipedia_utils/text/__init__.py,sha256=j2bwtK6kyeHI6SnoBjpRju0C1W2n2paXBDlNjNtaUxA,48
89
89
  winipedia_utils/text/string.py,sha256=1jbBftlgxffGgSlPnQh3aRPIr8XekEwpSenjFCW6JyM,3478
90
- winipedia_utils-0.1.23.dist-info/LICENSE,sha256=3PrKJ2CWNrnyyHaC_r0wPDSukVWgmjOxHr__eQVH7cw,1087
91
- winipedia_utils-0.1.23.dist-info/METADATA,sha256=TMmFzgN37FdD9r9EcdpwhyFq92xz847YfNjHyqtbEYk,12576
92
- winipedia_utils-0.1.23.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
93
- winipedia_utils-0.1.23.dist-info/RECORD,,
90
+ winipedia_utils-0.1.25.dist-info/LICENSE,sha256=3PrKJ2CWNrnyyHaC_r0wPDSukVWgmjOxHr__eQVH7cw,1087
91
+ winipedia_utils-0.1.25.dist-info/METADATA,sha256=oB-JQ01IVCpkX4tLP58G48ohb6G1s4kTk2nryQWbtTM,12576
92
+ winipedia_utils-0.1.25.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
93
+ winipedia_utils-0.1.25.dist-info/RECORD,,