winipedia-utils 0.1.29__tar.gz → 0.1.30__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.
Files changed (93) hide show
  1. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/PKG-INFO +1 -1
  2. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/pyproject.toml +1 -1
  3. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/base/base.py +14 -15
  4. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/pages/base/base.py +8 -3
  5. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/pages/player.py +1 -1
  6. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/windows/base/base.py +2 -1
  7. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/LICENSE +0 -0
  8. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/README.md +0 -0
  9. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/__init__.py +0 -0
  10. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/concurrent/__init__.py +0 -0
  11. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/concurrent/concurrent.py +0 -0
  12. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/concurrent/multiprocessing.py +0 -0
  13. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/concurrent/multithreading.py +0 -0
  14. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/consts.py +0 -0
  15. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/data/__init__.py +0 -0
  16. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/data/dataframe.py +0 -0
  17. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/django/__init__.py +0 -0
  18. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/django/bulk.py +0 -0
  19. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/django/command.py +0 -0
  20. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/django/database.py +0 -0
  21. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/git/__init__.py +0 -0
  22. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/git/gitignore/__init__.py +0 -0
  23. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/git/gitignore/gitignore.py +0 -0
  24. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/git/pre_commit/__init__.py +0 -0
  25. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/git/pre_commit/config.py +0 -0
  26. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/git/pre_commit/hooks.py +0 -0
  27. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/git/pre_commit/run_hooks.py +0 -0
  28. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/iterating/__init__.py +0 -0
  29. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/iterating/iterate.py +0 -0
  30. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/logging/__init__.py +0 -0
  31. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/logging/ansi.py +0 -0
  32. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/logging/config.py +0 -0
  33. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/logging/logger.py +0 -0
  34. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/modules/__init__.py +0 -0
  35. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/modules/class_.py +0 -0
  36. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/modules/function.py +0 -0
  37. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/modules/module.py +0 -0
  38. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/modules/package.py +0 -0
  39. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/oop/__init__.py +0 -0
  40. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/oop/mixins/__init__.py +0 -0
  41. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/oop/mixins/meta.py +0 -0
  42. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/oop/mixins/mixin.py +0 -0
  43. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/os/__init__.py +0 -0
  44. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/os/os.py +0 -0
  45. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/projects/__init__.py +0 -0
  46. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/projects/poetry/__init__.py +0 -0
  47. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/projects/poetry/config.py +0 -0
  48. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/projects/poetry/poetry.py +0 -0
  49. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/projects/project.py +0 -0
  50. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/py.typed +0 -0
  51. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/__init__.py +0 -0
  52. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/__init__.py +0 -0
  53. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/base/__init__.py +0 -0
  54. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/pages/__init__.py +0 -0
  55. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/pages/base/__init__.py +0 -0
  56. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/pages/browser.py +0 -0
  57. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/widgets/__init__.py +0 -0
  58. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/widgets/browser.py +0 -0
  59. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/widgets/media_player.py +0 -0
  60. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/widgets/notification.py +0 -0
  61. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/windows/__init__.py +0 -0
  62. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/pyside/ui/windows/base/__init__.py +0 -0
  63. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/resources/__init__.py +0 -0
  64. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/resources/svgs/__init__.py +0 -0
  65. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/resources/svgs/download_arrow.svg +0 -0
  66. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/resources/svgs/exit_fullscreen_icon.svg +0 -0
  67. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/resources/svgs/fullscreen_icon.svg +0 -0
  68. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/resources/svgs/pause_icon.svg +0 -0
  69. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/resources/svgs/play_icon.svg +0 -0
  70. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/resources/svgs/svg.py +0 -0
  71. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/security/__init__.py +0 -0
  72. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/security/keyring.py +0 -0
  73. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/setup.py +0 -0
  74. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/__init__.py +0 -0
  75. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/assertions.py +0 -0
  76. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/convention.py +0 -0
  77. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/create_tests.py +0 -0
  78. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/fixtures.py +0 -0
  79. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/__init__.py +0 -0
  80. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/__init__.py +0 -0
  81. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/fixtures/__init__.py +0 -0
  82. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/fixtures/fixture.py +0 -0
  83. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/fixtures/scopes/__init__.py +0 -0
  84. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/fixtures/scopes/class_.py +0 -0
  85. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/fixtures/scopes/function.py +0 -0
  86. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/fixtures/scopes/module.py +0 -0
  87. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/fixtures/scopes/package.py +0 -0
  88. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/fixtures/scopes/session.py +0 -0
  89. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/utils/__init__.py +0 -0
  90. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/base/utils/utils.py +0 -0
  91. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/testing/tests/conftest.py +0 -0
  92. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/text/__init__.py +0 -0
  93. {winipedia_utils-0.1.29 → winipedia_utils-0.1.30}/winipedia_utils/text/string.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: winipedia-utils
3
- Version: 0.1.29
3
+ Version: 0.1.30
4
4
  Summary: A package with many utility functions
5
5
  License: MIT
6
6
  Author: Winipedia
@@ -1,7 +1,7 @@
1
1
  # Project section
2
2
  [project]
3
3
  name = "winipedia-utils"
4
- version = "0.1.29"
4
+ version = "0.1.30"
5
5
  description = "A package with many utility functions"
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.12,<3.14"
@@ -9,7 +9,7 @@ from typing import TYPE_CHECKING, Any, Self, cast, final
9
9
 
10
10
  from PySide6.QtCore import QObject
11
11
  from PySide6.QtGui import QIcon
12
- from PySide6.QtWidgets import QStackedWidget
12
+ from PySide6.QtWidgets import QApplication, QStackedWidget
13
13
 
14
14
  from winipedia_utils.modules.class_ import (
15
15
  get_all_nonabstract_subclasses,
@@ -22,6 +22,7 @@ from winipedia_utils.text.string import split_on_uppercase
22
22
  # Avoid circular import
23
23
  if TYPE_CHECKING:
24
24
  from winipedia_utils.pyside.ui.pages.base.base import Base as BasePage
25
+ from winipedia_utils.pyside.ui.windows.base.base import Base as BaseWindow
25
26
 
26
27
 
27
28
  class QABCImplementationLoggingMeta(
@@ -82,38 +83,36 @@ class Base(metaclass=QABCImplementationLoggingMeta):
82
83
  children = get_all_nonabstract_subclasses(cls)
83
84
  return sorted(children, key=lambda cls: cls.__name__)
84
85
 
86
+ @classmethod
85
87
  @final
86
- def set_current_page(self, page_cls: type["BasePage"]) -> None:
88
+ def set_current_page(cls, page_cls: type["BasePage"]) -> None:
87
89
  """Set the current page."""
88
- self.get_stack().setCurrentWidget(self.get_page(page_cls))
90
+ cls.get_stack().setCurrentWidget(cls.get_page(page_cls))
89
91
 
92
+ @classmethod
90
93
  @final
91
- def get_stack(self) -> QStackedWidget:
94
+ def get_stack(cls) -> QStackedWidget:
92
95
  """Get the stack of the window."""
93
- from winipedia_utils.pyside.ui.windows.base.base import Base as BaseWindow
94
-
95
- window = getattr(self, "window", lambda: None)()
96
-
97
- if not isinstance(window, BaseWindow):
98
- msg = f"Cannot get stack on {window.__class__.__name__}"
99
- raise TypeError(msg)
96
+ window = cast("BaseWindow", (QApplication.activeWindow()))
100
97
 
101
98
  return window.stack
102
99
 
100
+ @classmethod
103
101
  @final
104
- def get_stack_pages(self) -> list["BasePage"]:
102
+ def get_stack_pages(cls) -> list["BasePage"]:
105
103
  """Get all the pages."""
106
104
  # Import here to avoid circular import
107
105
 
108
- stack = self.get_stack()
106
+ stack = cls.get_stack()
109
107
  # get all the pages
110
108
  return [cast("BasePage", stack.widget(i)) for i in range(stack.count())]
111
109
 
110
+ @classmethod
112
111
  @final
113
- def get_page[T: "BasePage"](self, page_cls: type[T]) -> T:
112
+ def get_page[T: "BasePage"](cls, page_cls: type[T]) -> T:
114
113
  """Get the page."""
115
114
  page = next(
116
- page for page in self.get_stack_pages() if page.__class__ is page_cls
115
+ page for page in cls.get_stack_pages() if page.__class__ is page_cls
117
116
  )
118
117
  return cast("T", page)
119
118
 
@@ -3,7 +3,6 @@
3
3
  This module contains the base page class for the VideoVault application.
4
4
  """
5
5
 
6
- from functools import partial
7
6
  from typing import final
8
7
 
9
8
  from PySide6.QtCore import Qt
@@ -51,7 +50,7 @@ class Base(BaseUI, QWidget):
51
50
 
52
51
  for page_cls in Base.get_subclasses():
53
52
  action = self.menu_dropdown.addAction(page_cls.get_display_name())
54
- action.triggered.connect(partial(self.set_current_page, page_cls))
53
+ action.triggered.connect(page_cls.set_page)
55
54
 
56
55
  @final
57
56
  def add_to_page_button(
@@ -61,9 +60,15 @@ class Base(BaseUI, QWidget):
61
60
  button = QPushButton(to_page_cls.get_display_name())
62
61
 
63
62
  # connect to open page on click
64
- button.clicked.connect(lambda: self.set_current_page(to_page_cls))
63
+ button.clicked.connect(to_page_cls.set_page)
65
64
 
66
65
  # add to layout
67
66
  layout.addWidget(button)
68
67
 
69
68
  return button
69
+
70
+ @classmethod
71
+ @final
72
+ def set_page(cls) -> None:
73
+ """Set the page."""
74
+ cls.set_current_page(cls)
@@ -21,6 +21,6 @@ class Player(BasePage):
21
21
  def play_data(self, data: bytes, name: str) -> None:
22
22
  """Play the video."""
23
23
  # set current page to player
24
- self.set_current_page(self.__class__)
24
+ self.set_page()
25
25
  # Stop current playback and clean up resources
26
26
  self.media_player.play_data(data, name)
@@ -49,4 +49,5 @@ class Base(BaseUI, QMainWindow):
49
49
  @final
50
50
  def set_start_page(self) -> None:
51
51
  """Set the start page."""
52
- self.set_current_page(self.get_start_page_cls())
52
+ start_page_cls = self.get_start_page_cls()
53
+ start_page_cls.set_page()