winipyside 2.0.1__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.
Files changed (52) hide show
  1. winipyside/__init__.py +1 -0
  2. winipyside/dev/__init__.py +1 -0
  3. winipyside/dev/artifacts/__init__.py +1 -0
  4. winipyside/dev/artifacts/builder/__init__.py +1 -0
  5. winipyside/dev/artifacts/builder/builder.py +4 -0
  6. winipyside/dev/artifacts/resources/__init__.py +1 -0
  7. winipyside/dev/artifacts/resources/delete_garbage_can.svg +2 -0
  8. winipyside/dev/artifacts/resources/download_arrow.svg +3 -0
  9. winipyside/dev/artifacts/resources/exit_fullscreen_icon.svg +7 -0
  10. winipyside/dev/artifacts/resources/fullscreen_icon.svg +4 -0
  11. winipyside/dev/artifacts/resources/menu_icon.svg +4 -0
  12. winipyside/dev/artifacts/resources/pause_icon.svg +4 -0
  13. winipyside/dev/artifacts/resources/play_icon.svg +17 -0
  14. winipyside/dev/artifacts/resources/plus_icon.svg +24 -0
  15. winipyside/dev/cli/__init__.py +1 -0
  16. winipyside/dev/cli/subcommands.py +6 -0
  17. winipyside/dev/configs/__init__.py +1 -0
  18. winipyside/dev/configs/configs.py +110 -0
  19. winipyside/dev/tests/__init__.py +1 -0
  20. winipyside/dev/tests/fixtures/__init__.py +1 -0
  21. winipyside/dev/tests/fixtures/fixture.py +7 -0
  22. winipyside/dev/tests/fixtures/scopes/__init__.py +1 -0
  23. winipyside/dev/tests/fixtures/scopes/class_.py +8 -0
  24. winipyside/dev/tests/fixtures/scopes/function.py +8 -0
  25. winipyside/dev/tests/fixtures/scopes/module.py +8 -0
  26. winipyside/dev/tests/fixtures/scopes/package.py +8 -0
  27. winipyside/dev/tests/fixtures/scopes/session.py +8 -0
  28. winipyside/main.py +19 -0
  29. winipyside/py.typed +0 -0
  30. winipyside/src/__init__.py +3 -0
  31. winipyside/src/core/__init__.py +1 -0
  32. winipyside/src/core/py_qiodevice.py +476 -0
  33. winipyside/src/ui/__init__.py +1 -0
  34. winipyside/src/ui/base/__init__.py +1 -0
  35. winipyside/src/ui/base/base.py +188 -0
  36. winipyside/src/ui/pages/__init__.py +1 -0
  37. winipyside/src/ui/pages/base/__init__.py +1 -0
  38. winipyside/src/ui/pages/base/base.py +92 -0
  39. winipyside/src/ui/pages/browser.py +26 -0
  40. winipyside/src/ui/pages/player.py +85 -0
  41. winipyside/src/ui/widgets/__init__.py +1 -0
  42. winipyside/src/ui/widgets/browser.py +243 -0
  43. winipyside/src/ui/widgets/clickable_widget.py +57 -0
  44. winipyside/src/ui/widgets/media_player.py +430 -0
  45. winipyside/src/ui/widgets/notification.py +77 -0
  46. winipyside/src/ui/windows/__init__.py +1 -0
  47. winipyside/src/ui/windows/base/__init__.py +1 -0
  48. winipyside/src/ui/windows/base/base.py +49 -0
  49. winipyside-2.0.1.dist-info/METADATA +284 -0
  50. winipyside-2.0.1.dist-info/RECORD +52 -0
  51. winipyside-2.0.1.dist-info/WHEEL +4 -0
  52. winipyside-2.0.1.dist-info/entry_points.txt +4 -0
winipyside/__init__.py ADDED
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1,4 @@
1
+ """Build script.
2
+
3
+ All subclasses of Builder in the builds package are automatically called.
4
+ """
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
2
+ <svg xmlns="http://www.w3.org/2000/svg" fill="#000000" width="800px" height="800px" viewBox="0 0 24 24"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/></svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24" height="24">
2
+ <path d="M12 3v12m0 0l-5-5m5 5l5-5M5 21h14" stroke="black" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
2
+ <svg width="800px" height="800px" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M1 6L6 6L6 1L4.2 1L4.2 4.2L1 4.2L1 6Z" fill="#000000"/>
4
+ <path d="M15 10L10 10L10 15L11.8 15L11.8 11.8L15 11.8L15 10Z" fill="#000000"/>
5
+ <path d="M6 15L6 10L1 10L1 11.8L4.2 11.8L4.2 15L6 15Z" fill="#000000"/>
6
+ <path d="M10 1L10 6L15 6L15 4.2L11.8 4.2L11.8 1L10 1Z" fill="#000000"/>
7
+ </svg>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
2
+ <svg width="800px" height="800px" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10 15H15V10H13.2V13.2H10V15ZM6 15V13.2H2.8V10H1V15H6ZM10 2.8H12.375H13.2V6H15V1H10V2.8ZM6 1V2.8H2.8V6H1V1H6Z" fill="#000000"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
2
+ <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M4 6H20M4 12H20M4 18H20" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
2
+ <rect x="4" y="4" width="6" height="16"/>
3
+ <rect x="14" y="4" width="6" height="16"/>
4
+ </svg>
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+ <svg width="800px" height="800px" viewBox="-3 0 28 28" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
4
+
5
+ <title>play</title>
6
+ <desc>Created with Sketch Beta.</desc>
7
+ <defs>
8
+
9
+ </defs>
10
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
11
+ <g id="Icon-Set-Filled" sketch:type="MSLayerGroup" transform="translate(-419.000000, -571.000000)" fill="#000000">
12
+ <path d="M440.415,583.554 L421.418,571.311 C420.291,570.704 419,570.767 419,572.946 L419,597.054 C419,599.046 420.385,599.36 421.418,598.689 L440.415,586.446 C441.197,585.647 441.197,584.353 440.415,583.554" id="play" sketch:type="MSShapeGroup">
13
+
14
+ </path>
15
+ </g>
16
+ </g>
17
+ </svg>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" ?>
2
+
3
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
4
+ <svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
5
+
6
+ <title/>
7
+
8
+ <g id="Complete">
9
+
10
+ <g data-name="add" id="add-2">
11
+
12
+ <g>
13
+
14
+ <line fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="12" x2="12" y1="19" y2="5"/>
15
+
16
+ <line fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="5" x2="19" y1="12" y2="12"/>
17
+
18
+ </g>
19
+
20
+ </g>
21
+
22
+ </g>
23
+
24
+ </svg>
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1,6 @@
1
+ """Subcommands for the CLI.
2
+
3
+ They will be automatically imported and added to the CLI
4
+ IMPORTANT: All funcs in this file will be added as subcommands.
5
+ So best to define the logic elsewhere and just call it here in a wrapper.
6
+ """
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1,110 @@
1
+ """Configs for pyrig.
2
+
3
+ All subclasses of ConfigFile in the configs package are automatically called.
4
+ """
5
+
6
+ from typing import Any
7
+
8
+ from pyrig.dev.configs.pyproject import (
9
+ PyprojectConfigFile as PyrigPyprojectConfigFile,
10
+ )
11
+ from pyrig.dev.configs.workflows.base.base import (
12
+ Workflow as PyrigWorkflow,
13
+ )
14
+ from pyrig.dev.configs.workflows.health_check import (
15
+ HealthCheckWorkflow as PyrigHealthCheckWorkflow,
16
+ )
17
+ from pyrig.dev.configs.workflows.release import (
18
+ ReleaseWorkflow as PyrigReleaseWorkflow,
19
+ )
20
+
21
+
22
+ class PyprojectConfigFile(PyrigPyprojectConfigFile):
23
+ """Pyproject config file.
24
+
25
+ Extends winiutils pyproject config file to add additional config.
26
+ """
27
+
28
+ @classmethod
29
+ def get_standard_dev_dependencies(cls) -> list[str]:
30
+ """Get the standard dev dependencies."""
31
+ standard_dev_dependencies = super().get_standard_dev_dependencies()
32
+ standard_dev_dependencies.extend(
33
+ [
34
+ "pytest-qt",
35
+ ]
36
+ )
37
+ return standard_dev_dependencies
38
+
39
+
40
+ class PySideWorkflowMixin(PyrigWorkflow):
41
+ """Mixin to add PySide6-specific workflow steps.
42
+
43
+ This mixin provides common overrides for PySide6 workflows to work on
44
+ GitHub Actions headless Linux environments.
45
+ """
46
+
47
+ @classmethod
48
+ def step_run_tests(
49
+ cls,
50
+ *,
51
+ step: dict[str, Any] | None = None,
52
+ ) -> dict[str, Any]:
53
+ """Get the pre-commit step.
54
+
55
+ We need to add some env vars
56
+ so QtWebEngine doesn't try to use GPU acceleration etc.
57
+ """
58
+ step = super().step_run_tests(step=step)
59
+ step.setdefault("env", {}).update(
60
+ {
61
+ "QT_QPA_PLATFORM": "offscreen",
62
+ "QTWEBENGINE_DISABLE_SANDBOX": "1",
63
+ "QTWEBENGINE_CHROMIUM_FLAGS": "--no-sandbox --disable-gpu --disable-software-rasterizer --disable-dev-shm-usage", # noqa: E501
64
+ }
65
+ )
66
+ return step
67
+
68
+ @classmethod
69
+ def steps_core_installed_setup(
70
+ cls, python_version: str | None = None, *, repo_token: bool = False
71
+ ) -> list[dict[str, Any]]:
72
+ """Get the core installed setup steps.
73
+
74
+ We need to install additional system dependencies for pyside6.
75
+ """
76
+ steps = super().steps_core_installed_setup(
77
+ python_version, repo_token=repo_token
78
+ )
79
+
80
+ steps.append(
81
+ cls.step_install_pyside_system_dependencies(),
82
+ )
83
+ return steps
84
+
85
+ @classmethod
86
+ def step_install_pyside_system_dependencies(cls) -> dict[str, Any]:
87
+ """Get the step to install PySide6 dependencies."""
88
+ return cls.get_step(
89
+ step_func=cls.step_install_pyside_system_dependencies,
90
+ run="sudo apt-get update && sudo apt-get install -y libegl1 libpulse0",
91
+ if_condition="runner.os == 'Linux'",
92
+ )
93
+
94
+
95
+ class HealthCheckWorkflow(PySideWorkflowMixin, PyrigHealthCheckWorkflow):
96
+ """Health check workflow.
97
+
98
+ Extends winiutils health check workflow to add additional steps.
99
+ This is necessary to make pyside6 work on github actions which is a headless linux
100
+ environment.
101
+ """
102
+
103
+
104
+ class ReleaseWorkflow(PySideWorkflowMixin, PyrigReleaseWorkflow):
105
+ """Release workflow.
106
+
107
+ Extends winiutils release workflow to add additional steps.
108
+ This is necessary to make pyside6 work on github actions which is a headless linux
109
+ environment.
110
+ """
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1,7 @@
1
+ """Fixtures for testing.
2
+
3
+ This module provides custom fixtures for pytest that can be pluued into tests
4
+ across the entire test suite.
5
+ All fixtures defined under the fixtures package are auto plugged in automatically
6
+ by pyrig via the pytest_plugins mechanism.
7
+ """
@@ -0,0 +1 @@
1
+ """__init__ module."""
@@ -0,0 +1,8 @@
1
+ """Class-level test fixtures and utilities.
2
+
3
+ These fixtures in this module are automatically applied to all test classes
4
+ through pytest's autouse mechanism. Pyrig automatically adds this module to
5
+ pytest_plugins in conftest.py. However you still have decorate the fixture
6
+ with @autouse_class_fixture from pyrig.src.testing.fixtures or with pytest's
7
+ autouse mechanism @pytest.fixture(scope="class", autouse=True).
8
+ """
@@ -0,0 +1,8 @@
1
+ """Function-level test fixtures and utilities.
2
+
3
+ These fixtures in this module are automatically applied to all test functions
4
+ through pytest's autouse mechanism. Pyrig automatically adds this module to
5
+ pytest_plugins in conftest.py. However you still have decorate the fixture
6
+ with @autouse_function_fixture from pyrig.src.testing.fixtures or with pytest's
7
+ autouse mechanism @pytest.fixture(scope="function", autouse=True).
8
+ """
@@ -0,0 +1,8 @@
1
+ """Module-level test fixtures and utilities.
2
+
3
+ These fixtures in this module are automatically applied to all test modules
4
+ through pytest's autouse mechanism. Pyrig automatically adds this module to
5
+ pytest_plugins in conftest.py. However you still have decorate the fixture
6
+ with @autouse_module_fixture from pyrig.src.testing.fixtures or with pytest's
7
+ autouse mechanism @pytest.fixture(scope="module", autouse=True).
8
+ """
@@ -0,0 +1,8 @@
1
+ """Package-level test fixtures and utilities.
2
+
3
+ These fixtures in this module are automatically applied to all test packages
4
+ through pytest's autouse mechanism. Pyrig automatically adds this module to
5
+ pytest_plugins in conftest.py. However you still have decorate the fixture
6
+ with @autouse_package_fixture from pyrig.src.testing.fixtures or with pytest's
7
+ autouse mechanism @pytest.fixture(scope="package", autouse=True).
8
+ """
@@ -0,0 +1,8 @@
1
+ """Session-level test fixtures and utilities.
2
+
3
+ These fixtures in this module are automatically applied to the test session
4
+ through pytest's autouse mechanism. Pyrig automatically adds this module to
5
+ pytest_plugins in conftest.py. However you still have decorate the fixture
6
+ with @autouse_session_fixture from pyrig.src.testing.fixtures or with pytest's
7
+ autouse mechanism @pytest.fixture(scope="session", autouse=True).
8
+ """
winipyside/main.py ADDED
@@ -0,0 +1,19 @@
1
+ """Main entrypoint for the project."""
2
+
3
+ import pyrig
4
+
5
+
6
+ def main() -> None:
7
+ """Main entrypoint for the project."""
8
+ msg = f"""Add your projects entrypoint code to this function.
9
+ This function is automatically added to your cli by {pyrig.__name__}.
10
+ You can call it with
11
+ `your-pkg-name main`
12
+ or via
13
+ `python -m your-pkg-name`.
14
+ """
15
+ raise NotImplementedError(msg)
16
+
17
+
18
+ if __name__ == "__main__":
19
+ main()
winipyside/py.typed ADDED
File without changes
@@ -0,0 +1,3 @@
1
+ """src package."""
2
+
3
+ """__init__ module."""
@@ -0,0 +1 @@
1
+ """__init__ module for winipyside6.core."""