winipedia-utils 0.1.25__tar.gz → 0.1.26__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.
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/PKG-INFO +1 -1
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/pyproject.toml +1 -1
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/modules/package.py +19 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/base/base.py +6 -2
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/pages/base/base.py +1 -14
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/windows/base/base.py +1 -1
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/LICENSE +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/README.md +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/concurrent/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/concurrent/concurrent.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/concurrent/multiprocessing.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/concurrent/multithreading.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/consts.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/data/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/data/dataframe.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/django/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/django/bulk.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/django/command.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/django/database.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/gitignore/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/gitignore/gitignore.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/pre_commit/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/pre_commit/config.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/pre_commit/hooks.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/pre_commit/run_hooks.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/iterating/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/iterating/iterate.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/logging/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/logging/ansi.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/logging/config.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/logging/logger.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/modules/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/modules/class_.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/modules/function.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/modules/module.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/oop/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/oop/mixins/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/oop/mixins/meta.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/oop/mixins/mixin.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/os/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/os/os.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/projects/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/projects/poetry/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/projects/poetry/config.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/projects/poetry/poetry.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/projects/project.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/py.typed +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/base/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/pages/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/pages/base/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/pages/browser.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/pages/player.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/widgets/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/widgets/browser.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/widgets/media_player.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/widgets/notification.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/windows/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/windows/base/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/download_arrow.svg +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/exit_fullscreen_icon.svg +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/fullscreen_icon.svg +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/pause_icon.svg +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/play_icon.svg +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/svg.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/security/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/security/keyring.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/setup.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/assertions.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/convention.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/create_tests.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/fixtures.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/fixtures/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/fixtures/fixture.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/fixtures/scopes/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/fixtures/scopes/class_.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/fixtures/scopes/function.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/fixtures/scopes/module.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/fixtures/scopes/package.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/fixtures/scopes/session.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/utils/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/utils/utils.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/conftest.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/text/__init__.py +0 -0
- {winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/text/string.py +0 -0
@@ -11,6 +11,7 @@ making them suitable for code generation, testing frameworks, and package manage
|
|
11
11
|
|
12
12
|
import os
|
13
13
|
import pkgutil
|
14
|
+
import sys
|
14
15
|
from collections.abc import Generator, Iterable
|
15
16
|
from importlib import import_module
|
16
17
|
from pathlib import Path
|
@@ -360,3 +361,21 @@ def copy_package(
|
|
360
361
|
create_module(module_path, is_package=False)
|
361
362
|
if with_file_content:
|
362
363
|
module_path.write_text(get_module_content_as_str(module))
|
364
|
+
|
365
|
+
|
366
|
+
def get_main_package() -> ModuleType:
|
367
|
+
"""Gets the main package of the executing code.
|
368
|
+
|
369
|
+
Even when this package is installed as a module.
|
370
|
+
"""
|
371
|
+
main = sys.modules.get("__main__")
|
372
|
+
if main is None:
|
373
|
+
msg = "No __main__ module found"
|
374
|
+
raise ValueError(msg)
|
375
|
+
|
376
|
+
package_name = main.__package__
|
377
|
+
if package_name is None:
|
378
|
+
msg = "No __package__ found in __main__"
|
379
|
+
raise ValueError(msg)
|
380
|
+
|
381
|
+
return import_module(package_name)
|
@@ -11,7 +11,7 @@ from PySide6.QtCore import QObject
|
|
11
11
|
from PySide6.QtGui import QIcon
|
12
12
|
from PySide6.QtWidgets import QStackedWidget
|
13
13
|
|
14
|
-
from winipedia_utils.modules.package import walk_package
|
14
|
+
from winipedia_utils.modules.package import get_main_package, walk_package
|
15
15
|
from winipedia_utils.oop.mixins.meta import ABCImplementationLoggingMeta
|
16
16
|
from winipedia_utils.resources.svgs.svg import get_svg_path
|
17
17
|
from winipedia_utils.text.string import split_on_uppercase
|
@@ -64,12 +64,16 @@ class Base(metaclass=QABCImplementationLoggingMeta):
|
|
64
64
|
|
65
65
|
@classmethod
|
66
66
|
@final
|
67
|
-
def get_subclasses(cls, package: ModuleType) -> list[type[Self]]:
|
67
|
+
def get_subclasses(cls, package: ModuleType | None = None) -> list[type[Self]]:
|
68
68
|
"""Get all subclasses of the UI.
|
69
69
|
|
70
70
|
Args:
|
71
71
|
package: The package to search for subclasses in.
|
72
72
|
"""
|
73
|
+
if package is None:
|
74
|
+
# find the main package
|
75
|
+
package = get_main_package()
|
76
|
+
|
73
77
|
_ = list(walk_package(package))
|
74
78
|
|
75
79
|
children = cls.__subclasses__()
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/pages/base/base.py
RENAMED
@@ -3,9 +3,7 @@
|
|
3
3
|
This module contains the base page class for the VideoVault application.
|
4
4
|
"""
|
5
5
|
|
6
|
-
from abc import abstractmethod
|
7
6
|
from functools import partial
|
8
|
-
from types import ModuleType
|
9
7
|
from typing import final
|
10
8
|
|
11
9
|
from PySide6.QtCore import Qt
|
@@ -25,11 +23,6 @@ from winipedia_utils.pyside.ui.base.base import Base as BaseUI
|
|
25
23
|
class Base(BaseUI, QWidget):
|
26
24
|
"""Base page class for the VideoVault application."""
|
27
25
|
|
28
|
-
@classmethod
|
29
|
-
@abstractmethod
|
30
|
-
def get_pages_package(cls) -> ModuleType:
|
31
|
-
"""Get the package to get the page classes from."""
|
32
|
-
|
33
26
|
@final
|
34
27
|
def base_setup(self) -> None:
|
35
28
|
"""Get the Qt object of the UI."""
|
@@ -56,7 +49,7 @@ class Base(BaseUI, QWidget):
|
|
56
49
|
self.menu_dropdown = QMenu(self.menu_button)
|
57
50
|
self.menu_button.setMenu(self.menu_dropdown)
|
58
51
|
|
59
|
-
for page_cls in self.
|
52
|
+
for page_cls in self.get_subclasses():
|
60
53
|
action = self.menu_dropdown.addAction(page_cls.get_display_name())
|
61
54
|
action.triggered.connect(partial(self.set_current_page, page_cls))
|
62
55
|
|
@@ -74,9 +67,3 @@ class Base(BaseUI, QWidget):
|
|
74
67
|
layout.addWidget(button)
|
75
68
|
|
76
69
|
return button
|
77
|
-
|
78
|
-
@classmethod
|
79
|
-
@final
|
80
|
-
def get_page_classes(cls) -> list[type["Base"]]:
|
81
|
-
"""Get all the page classes."""
|
82
|
-
return Base.get_subclasses(cls.get_pages_package())
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/windows/base/base.py
RENAMED
@@ -43,7 +43,7 @@ class Base(BaseUI, QMainWindow):
|
|
43
43
|
@final
|
44
44
|
def make_pages(self) -> Generator[BasePage, None, None]:
|
45
45
|
"""Get the pages to add to the window."""
|
46
|
-
for page_cls in BasePage.
|
46
|
+
for page_cls in BasePage.get_subclasses():
|
47
47
|
yield page_cls()
|
48
48
|
|
49
49
|
@final
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/concurrent/multiprocessing.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/concurrent/multithreading.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/gitignore/gitignore.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/pre_commit/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/git/pre_commit/run_hooks.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/projects/poetry/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/base/__init__.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/pages/__init__.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/pages/base/__init__.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/pages/browser.py
RENAMED
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/widgets/__init__.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/widgets/browser.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/widgets/media_player.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/widgets/notification.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/windows/__init__.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/pyside/ui/windows/base/__init__.py
RENAMED
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/__init__.py
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/download_arrow.svg
RENAMED
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/fullscreen_icon.svg
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/pause_icon.svg
RENAMED
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/resources/svgs/play_icon.svg
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{winipedia_utils-0.1.25 → winipedia_utils-0.1.26}/winipedia_utils/testing/tests/base/utils/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|