瀏覽代碼

Merge branch 'main' of github.com:zauberzeug/nicegui

Rodja Trappe 2 年之前
父節點
當前提交
5817406d57
共有 4 個文件被更改,包括 12 次插入11 次删除
  1. 1 0
      api_docs_and_examples.py
  2. 10 4
      nicegui/events.py
  3. 1 6
      nicegui/page.py
  4. 0 1
      tests/test_pages.py

+ 1 - 0
api_docs_and_examples.py

@@ -653,6 +653,7 @@ The yield statement returns `nicegui.events.PageEvent`.
 This contains the websocket of the client.
 This contains the websocket of the client.
     '''
     '''
     with example(yield_page_ready):
     with example(yield_page_ready):
+        import asyncio
         from typing import Generator
         from typing import Generator
 
 
         from nicegui.events import PageEvent
         from nicegui.events import PageEvent

+ 10 - 4
nicegui/events.py

@@ -1,21 +1,22 @@
 import traceback
 import traceback
 from dataclasses import dataclass
 from dataclasses import dataclass
 from inspect import signature
 from inspect import signature
-from typing import Any, Callable, List, Optional
+from typing import TYPE_CHECKING, Any, Callable, List, Optional
 
 
 from starlette.websockets import WebSocket
 from starlette.websockets import WebSocket
 
 
 from . import globals
 from . import globals
-from .elements.element import Element
 from .helpers import is_coroutine
 from .helpers import is_coroutine
 from .lifecycle import on_startup
 from .lifecycle import on_startup
-from .page import PageEvent
 from .task_logger import create_task
 from .task_logger import create_task
 
 
+if TYPE_CHECKING:
+    from .elements.element import Element
+
 
 
 @dataclass
 @dataclass
 class EventArguments:
 class EventArguments:
-    sender: Element
+    sender: 'Element'
     socket: Optional[WebSocket]
     socket: Optional[WebSocket]
 
 
 
 
@@ -226,6 +227,11 @@ class KeyEventArguments(EventArguments):
     modifiers: KeyboardModifiers
     modifiers: KeyboardModifiers
 
 
 
 
+@dataclass
+class PageEvent:
+    socket: WebSocket
+
+
 def handle_event(handler: Optional[Callable], arguments: EventArguments) -> Optional[bool]:
 def handle_event(handler: Optional[Callable], arguments: EventArguments) -> Optional[bool]:
     try:
     try:
         if handler is None:
         if handler is None:

+ 1 - 6
nicegui/page.py

@@ -6,7 +6,6 @@ import time
 import traceback
 import traceback
 import types
 import types
 import uuid
 import uuid
-from dataclasses import dataclass
 from functools import wraps
 from functools import wraps
 from typing import Callable, Dict, Generator, List, Optional
 from typing import Callable, Dict, Generator, List, Optional
 
 
@@ -19,16 +18,12 @@ from starlette.routing import Route, compile_path
 from starlette.websockets import WebSocket
 from starlette.websockets import WebSocket
 
 
 from . import globals
 from . import globals
+from .events import PageEvent
 from .helpers import is_coroutine
 from .helpers import is_coroutine
 from .page_builder import PageBuilder
 from .page_builder import PageBuilder
 from .routes import add_route, convert_arguments
 from .routes import add_route, convert_arguments
 
 
 
 
-@dataclass
-class PageEvent:
-    socket: WebSocket
-
-
 class Page(jp.QuasarPage):
 class Page(jp.QuasarPage):
 
 
     def __init__(self,
     def __init__(self,

+ 0 - 1
tests/test_pages.py

@@ -4,7 +4,6 @@ from typing import Generator
 from uuid import uuid4
 from uuid import uuid4
 
 
 import justpy.htmlcomponents
 import justpy.htmlcomponents
-import pytest
 from nicegui import task_logger, ui
 from nicegui import task_logger, ui
 from nicegui.events import PageEvent
 from nicegui.events import PageEvent
 from starlette.requests import Request
 from starlette.requests import Request