improve var create typing (#4701)

This commit is contained in:
Khaleel Al-Adhami 2025-01-28 22:56:38 -08:00 committed by GitHub
parent 58f87a6aa7
commit 5beea25b31
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 57 additions and 5 deletions

View File

@ -196,8 +196,9 @@ class AccordionItem(AccordionComponent):
# The header of the accordion item. # The header of the accordion item.
header: Var[Union[Component, str]] header: Var[Union[Component, str]]
# The content of the accordion item. # The content of the accordion item.
content: Var[Union[Component, str]] = Var.create(None) content: Var[Union[Component, str, None]] = Var.create(None)
_valid_children: List[str] = [ _valid_children: List[str] = [
"AccordionHeader", "AccordionHeader",

View File

@ -308,7 +308,9 @@ class AccordionItem(AccordionComponent):
value: Optional[Union[Var[str], str]] = None, value: Optional[Union[Var[str], str]] = None,
disabled: Optional[Union[Var[bool], bool]] = None, disabled: Optional[Union[Var[bool], bool]] = None,
header: Optional[Union[Component, Var[Union[Component, str]], str]] = None, header: Optional[Union[Component, Var[Union[Component, str]], str]] = None,
content: Optional[Union[Component, Var[Union[Component, str]], str]] = None, content: Optional[
Union[Component, Var[Optional[Union[Component, str]]], str]
] = None,
color_scheme: Optional[ color_scheme: Optional[
Union[ Union[
Literal[ Literal[

View File

@ -80,6 +80,7 @@ if TYPE_CHECKING:
VAR_TYPE = TypeVar("VAR_TYPE", covariant=True) VAR_TYPE = TypeVar("VAR_TYPE", covariant=True)
OTHER_VAR_TYPE = TypeVar("OTHER_VAR_TYPE") OTHER_VAR_TYPE = TypeVar("OTHER_VAR_TYPE")
STRING_T = TypeVar("STRING_T", bound=str)
warnings.filterwarnings("ignore", message="fields may not start with an underscore") warnings.filterwarnings("ignore", message="fields may not start with an underscore")
@ -550,12 +551,60 @@ class Var(Generic[VAR_TYPE]):
return value_with_replaced return value_with_replaced
@overload
@classmethod
def create( # type: ignore[override]
cls,
value: bool,
_var_data: VarData | None = None,
) -> BooleanVar: ...
@overload
@classmethod
def create( # type: ignore[override]
cls,
value: int,
_var_data: VarData | None = None,
) -> NumberVar[int]: ...
@overload
@classmethod @classmethod
def create( def create(
cls, cls,
value: Any, value: float,
_var_data: VarData | None = None, _var_data: VarData | None = None,
) -> Var: ) -> NumberVar[float]: ...
@overload
@classmethod
def create(
cls,
value: STRING_T,
_var_data: VarData | None = None,
) -> StringVar[STRING_T]: ...
@overload
@classmethod
def create(
cls,
value: None,
_var_data: VarData | None = None,
) -> NoneVar: ...
@overload
@classmethod
def create(
cls,
value: OTHER_VAR_TYPE,
_var_data: VarData | None = None,
) -> Var[OTHER_VAR_TYPE]: ...
@classmethod
def create(
cls,
value: OTHER_VAR_TYPE,
_var_data: VarData | None = None,
) -> Var[OTHER_VAR_TYPE]:
"""Create a var from a value. """Create a var from a value.
Args: Args:

View File

@ -31,7 +31,7 @@ from .base import (
var_operation_return, var_operation_return,
) )
NUMBER_T = TypeVar("NUMBER_T", int, float, Union[int, float], bool) NUMBER_T = TypeVar("NUMBER_T", int, float, bool)
if TYPE_CHECKING: if TYPE_CHECKING:
from .sequence import ArrayVar from .sequence import ArrayVar