lumiview 0.1.0.dev0__tar.gz → 0.1.0.dev2__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.
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/.github/workflows/publish-to-pypi.yml +55 -17
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/Cargo.lock +1 -1
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/Cargo.toml +1 -1
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/PKG-INFO +1 -1
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/pyproject.toml +1 -1
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/__init__.py +7 -6
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/_app.py +126 -176
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/_binding.py +0 -9
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/_bridge.py +18 -25
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/_core.pyi +5 -5
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/_events.py +15 -3
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/_scope.py +49 -26
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/_task.py +1 -27
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/_window.py +219 -163
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/plugins/window_controls.py +53 -16
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/serve/__init__.py +1 -1
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/serve/asgi.py +16 -16
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/serve/base.py +25 -18
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/serve/static.py +8 -8
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/serve/wsgi.py +14 -13
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/src/event_loop.rs +28 -23
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/src/events.rs +11 -11
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/src/types.rs +6 -6
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/src/window.rs +13 -13
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/.gitignore +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/CONTRIBUTING.md +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/LICENSE +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/README.md +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/README_zh.md +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/examples/bridge_demo.py +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/examples/custom_titlebar.py +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/examples/events.py +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/examples/fastapi_demo.py +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/examples/hello_world.py +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/examples/hello_world_sync.py +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/examples/multi_window.py +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/plugins/__init__.py +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/python/lumiview/utils.py +0 -0
- {lumiview-0.1.0.dev0 → lumiview-0.1.0.dev2}/src/lib.rs +0 -0
|
@@ -11,7 +11,12 @@ permissions:
|
|
|
11
11
|
|
|
12
12
|
jobs:
|
|
13
13
|
linux:
|
|
14
|
-
runs-on:
|
|
14
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
15
|
+
strategy:
|
|
16
|
+
matrix:
|
|
17
|
+
platform:
|
|
18
|
+
- runner: ubuntu-latest
|
|
19
|
+
target: x86_64
|
|
15
20
|
steps:
|
|
16
21
|
- uses: actions/checkout@v4
|
|
17
22
|
- name: Install webkit2gtk
|
|
@@ -26,19 +31,42 @@ jobs:
|
|
|
26
31
|
uses: PyO3/maturin-action@v1
|
|
27
32
|
with:
|
|
28
33
|
args: --release --out dist
|
|
29
|
-
- name: Repair manylinux (exclude
|
|
34
|
+
- name: Repair manylinux (exclude system GTK/GLib/dbus — must not bundle)
|
|
30
35
|
run: |
|
|
31
36
|
pip install auditwheel
|
|
37
|
+
# GTK/GLib libraries can never be bundled into the wheel: the
|
|
38
|
+
# GObject type registry is process-global, so a second copy breaks
|
|
39
|
+
# any process that also links the system GTK (LumiView's own tao
|
|
40
|
+
# window and wryview both do). libdbus-1/libsystemd likewise exist
|
|
41
|
+
# on every desktop that can run GTK3 (the gtk .deb depends on
|
|
42
|
+
# them) — bundling them only adds weight and risks version skew.
|
|
32
43
|
auditwheel repair \
|
|
33
|
-
--exclude 'libgtk-3
|
|
34
|
-
--exclude 'libgdk-3
|
|
35
|
-
--exclude 'libglib-2.0
|
|
36
|
-
--exclude 'libgobject-2.0
|
|
37
|
-
--exclude 'libgio-2.0
|
|
38
|
-
--exclude 'libgmodule-2.0
|
|
39
|
-
--exclude 'libgdk_pixbuf-2.0
|
|
40
|
-
--exclude 'libpango-1.0
|
|
41
|
-
--exclude '
|
|
44
|
+
--exclude 'libgtk-3.*' \
|
|
45
|
+
--exclude 'libgdk-3.*' \
|
|
46
|
+
--exclude 'libglib-2.0.*' \
|
|
47
|
+
--exclude 'libgobject-2.0.*' \
|
|
48
|
+
--exclude 'libgio-2.0.*' \
|
|
49
|
+
--exclude 'libgmodule-2.0.*' \
|
|
50
|
+
--exclude 'libgdk_pixbuf-2.0.*' \
|
|
51
|
+
--exclude 'libpango-1.0.*' \
|
|
52
|
+
--exclude 'libpangocairo-1.0.*' \
|
|
53
|
+
--exclude 'libpangoft2-1.0.*' \
|
|
54
|
+
--exclude 'libatk-1.0.*' \
|
|
55
|
+
--exclude 'libharfbuzz.*' \
|
|
56
|
+
--exclude 'libfribidi.*' \
|
|
57
|
+
--exclude 'libepoxy.*' \
|
|
58
|
+
--exclude 'libcairo.*' \
|
|
59
|
+
--exclude 'libcairo-gobject.*' \
|
|
60
|
+
--exclude 'libxkbcommon.*' \
|
|
61
|
+
--exclude 'libwayland-client.*' \
|
|
62
|
+
--exclude 'libdbus-1.*' \
|
|
63
|
+
--exclude 'libsystemd.*' \
|
|
64
|
+
--exclude 'libgcrypt.*' \
|
|
65
|
+
--exclude 'libgpg-error.*' \
|
|
66
|
+
--exclude 'libcap.*' \
|
|
67
|
+
--exclude 'libzstd.*' \
|
|
68
|
+
--exclude 'liblz4.*' \
|
|
69
|
+
--exclude 'liblzma.*' \
|
|
42
70
|
-w dist dist/lumiview-*.whl
|
|
43
71
|
rm -f dist/*-linux_x86_64.whl
|
|
44
72
|
- name: Upload wheels
|
|
@@ -48,20 +76,30 @@ jobs:
|
|
|
48
76
|
path: dist
|
|
49
77
|
|
|
50
78
|
windows:
|
|
51
|
-
runs-on:
|
|
79
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
80
|
+
strategy:
|
|
81
|
+
matrix:
|
|
82
|
+
platform:
|
|
83
|
+
- runner: windows-latest
|
|
84
|
+
target: x64
|
|
85
|
+
- runner: windows-latest
|
|
86
|
+
target: x86
|
|
87
|
+
python-arch: x86
|
|
52
88
|
steps:
|
|
53
|
-
- uses: actions/checkout@
|
|
54
|
-
- uses: actions/setup-python@
|
|
89
|
+
- uses: actions/checkout@v7
|
|
90
|
+
- uses: actions/setup-python@v7
|
|
55
91
|
with:
|
|
56
92
|
python-version: "3.12"
|
|
57
|
-
|
|
93
|
+
architecture: ${{ matrix.platform.python-arch || 'x64' }}
|
|
94
|
+
- name: Build wheels
|
|
58
95
|
uses: PyO3/maturin-action@v1
|
|
59
96
|
with:
|
|
60
|
-
|
|
97
|
+
target: ${{ matrix.platform.target }}
|
|
98
|
+
args: --release --out dist --find-interpreter
|
|
61
99
|
- name: Upload wheels
|
|
62
100
|
uses: actions/upload-artifact@v4
|
|
63
101
|
with:
|
|
64
|
-
name: wheels-windows
|
|
102
|
+
name: wheels-windows-${{ matrix.platform.target }}
|
|
65
103
|
path: dist
|
|
66
104
|
|
|
67
105
|
macos:
|
|
@@ -7,7 +7,7 @@ name = "lumiview"
|
|
|
7
7
|
authors = [{ name = "校溯", email = "xiaosu@xiaosu.icu" }]
|
|
8
8
|
description = "Pythonic desktop window + webview — lightweight, async-first, no toolchain required."
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
version = "0.1.0.
|
|
10
|
+
version = "0.1.0.dev2"
|
|
11
11
|
requires-python = ">=3.10"
|
|
12
12
|
dependencies = ["wryview>=0.5.1", "cattrs>=26.1", "typing_extensions~=4.11"]
|
|
13
13
|
license = "MPL-2.0"
|
|
@@ -62,20 +62,20 @@ from lumiview._core import (
|
|
|
62
62
|
from lumiview._app import App, AppState, AppClosedError, WindowClosedError
|
|
63
63
|
from lumiview._events import WindowHookEvent, AppHookEvent
|
|
64
64
|
from lumiview._bridge import Bridge, BridgeError
|
|
65
|
-
from lumiview._scope import Scope, ScopePermission, BridgeContext, InitContext
|
|
65
|
+
from lumiview._scope import Plugin, Scope, ScopePermission, BridgeContext, InitContext
|
|
66
66
|
from lumiview._window import CloseBehavior, Window
|
|
67
67
|
from lumiview._task import task, Task, TaskDeadlockError
|
|
68
68
|
from lumiview import utils
|
|
69
69
|
from lumiview import plugins
|
|
70
70
|
|
|
71
|
-
#
|
|
71
|
+
# Serve subpackage (§10)
|
|
72
72
|
|
|
73
73
|
from lumiview.serve import Request, Response, Serve, Static, WSGI, ASGI, Handler
|
|
74
74
|
|
|
75
|
-
__version__ = "0.1.0.
|
|
75
|
+
__version__ = "0.1.0.dev2"
|
|
76
76
|
|
|
77
77
|
__all__ = [
|
|
78
|
-
#
|
|
78
|
+
# Application layer
|
|
79
79
|
"App",
|
|
80
80
|
"AppState",
|
|
81
81
|
"CloseBehavior",
|
|
@@ -87,6 +87,7 @@ __all__ = [
|
|
|
87
87
|
"Bridge",
|
|
88
88
|
"BridgeError",
|
|
89
89
|
"Scope",
|
|
90
|
+
"Plugin",
|
|
90
91
|
"ScopePermission",
|
|
91
92
|
"BridgeContext",
|
|
92
93
|
"InitContext",
|
|
@@ -97,7 +98,7 @@ __all__ = [
|
|
|
97
98
|
"TaskDeadlockError",
|
|
98
99
|
"AppClosedError",
|
|
99
100
|
"WindowClosedError",
|
|
100
|
-
#
|
|
101
|
+
# Serve
|
|
101
102
|
"Request",
|
|
102
103
|
"Response",
|
|
103
104
|
"Serve",
|
|
@@ -105,7 +106,7 @@ __all__ = [
|
|
|
105
106
|
"WSGI",
|
|
106
107
|
"ASGI",
|
|
107
108
|
"Handler",
|
|
108
|
-
#
|
|
109
|
+
# Low-level bindings
|
|
109
110
|
"TaoEventLoop",
|
|
110
111
|
"TaoEventLoopProxy",
|
|
111
112
|
"TaoWindowBuilder",
|