From e88aa8257bb3e73714ee293ffa4dab37db030066 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Mon, 21 Oct 2024 17:38:27 -0700 Subject: [PATCH] fix pyi file --- .../components/react_player/react_player.pyi | 14 +++++++++++--- reflex/utils/pyi_generator.py | 19 +++++++++++++++++-- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/reflex/components/react_player/react_player.pyi b/reflex/components/react_player/react_player.pyi index 940b09e51..e4027cf40 100644 --- a/reflex/components/react_player/react_player.pyi +++ b/reflex/components/react_player/react_player.pyi @@ -5,11 +5,19 @@ # ------------------------------------------------------ from typing import Any, Dict, Optional, Union, overload +from typing_extensions import TypedDict + from reflex.components.component import NoSSRComponent from reflex.event import EventType from reflex.style import Style from reflex.vars.base import Var +class Progress(TypedDict): + played: float + playedSeconds: float + loaded: float + loadedSeconds: float + class ReactPlayer(NoSSRComponent): @overload @classmethod @@ -39,7 +47,7 @@ class ReactPlayer(NoSSRComponent): on_context_menu: Optional[EventType[[]]] = None, on_disable_pip: Optional[EventType[[]]] = None, on_double_click: Optional[EventType[[]]] = None, - on_duration: Optional[EventType] = None, + on_duration: Optional[EventType[float]] = None, on_enable_pip: Optional[EventType[[]]] = None, on_ended: Optional[EventType[[]]] = None, on_error: Optional[EventType[[]]] = None, @@ -56,10 +64,10 @@ class ReactPlayer(NoSSRComponent): on_play: Optional[EventType[[]]] = None, on_playback_quality_change: Optional[EventType[[]]] = None, on_playback_rate_change: Optional[EventType[[]]] = None, - on_progress: Optional[EventType] = None, + on_progress: Optional[EventType[Progress]] = None, on_ready: Optional[EventType[[]]] = None, on_scroll: Optional[EventType[[]]] = None, - on_seek: Optional[EventType] = None, + on_seek: Optional[EventType[float]] = None, on_start: Optional[EventType[[]]] = None, on_unmount: Optional[EventType[[]]] = None, **props, diff --git a/reflex/utils/pyi_generator.py b/reflex/utils/pyi_generator.py index fd76576b9..4a7fdfca0 100644 --- a/reflex/utils/pyi_generator.py +++ b/reflex/utils/pyi_generator.py @@ -16,7 +16,7 @@ from itertools import chain from multiprocessing import Pool, cpu_count from pathlib import Path from types import ModuleType, SimpleNamespace -from typing import Any, Callable, Iterable, Type, get_args +from typing import Any, Callable, Iterable, Type, get_args, get_origin from reflex.components.component import Component from reflex.utils import types as rx_types @@ -430,13 +430,28 @@ def _generate_component_create_functiondef( def figure_out_return_type(annotation: Any): if inspect.isclass(annotation) and issubclass(annotation, inspect._empty): return ast.Name(id="Optional[EventType]") + + if not isinstance(annotation, str) and get_origin(annotation) is tuple: + arguments = get_args(annotation) + + arguments_without_var = [ + get_args(argument)[0] if get_origin(argument) == Var else argument + for argument in arguments + ] + + return ast.Name( + id=f"Optional[EventType[{', '.join( + [arg.__name__ for arg in arguments_without_var] + )}]]" + ) + if isinstance(annotation, str) and annotation.startswith("Tuple["): inside_of_tuple = annotation.removeprefix("Tuple[").removesuffix("]") if inside_of_tuple == "()": return ast.Name(id="Optional[EventType[[]]]") - arguments: list[str] = [""] + arguments = [""] bracket_count = 0