reflex/reflex/vars.pyi
Khaleel Al-Adhami ea15b184c0
fully migrate vars into new system (#3743)
* fully migrate vars into new system

* i hate rufffff (no i don't)

* fix silly pright issues (except colormode and state)

* remove all instances of Var.create

* create immutable callable var and get rid of more base vars

* implement hash for all functions

* get reflex-web to compile

* get it to compile reflex-web successfully

* fix tests

* fix pyi

* use override from typing_extension

* put plotly inside of a catch

* dicts are unusable sadly

* fix silly mistake

* overload equals to special case immutable var

* improve test_cond

* solve more CI issues, down to 94 failures

* down to 20 errors

* down to 13 errors

* pass all testcases

* fix pyright issues

* reorder things

* use get origin more

* use fixed_type logic

* various optimizations

* go back to passing test cases

* use less boilerplate

* remove unnecessary print message

* remove weird comment

* add test for html issue

* add type ignore

* fix another silly issue

* override get all var data for var operations call

* make integration tests pass

* fix immutable call var

* better logic for finding parent class

* use even better logic for finding state wrt computedvar

* only choose the ones that are defined in the same module

* small dict to large dict

* [REF-3591] Remove chakra-related files from immutable vars PR (#3821)

* Add comments to html metadata component (#3731)

* fix: add verification for path /404 (#3723)

Co-authored-by: coolstorm <manas.gupta@fampay.in>

* Use the new state name when setting `is_hydrated` to false (#3738)

* Use `._is_mutable()` to account for parent state proxy (#3739)

When a parent state proxy is set, also allow child StateProxy._self_mutable to
override the parent's `_is_mutable()`.

* bump to 0.5.9 (#3746)

* add message when installing requirements.txt is needed for chosen template during init (#3750)

* #3752 bugfix add domain for XAxis (#3764)

* fix appharness app_source typing (#3777)

* fix import clash between connectionToaster and hooks.useState (#3749)

* use different registry when in china, fixes #3700 (#3702)

* do not reload compilation if using local app in AppHarness (#3790)

* do not reload if using local app

* Update reflex/testing.py

Co-authored-by: Masen Furer <m_github@0x26.net>

---------

Co-authored-by: Masen Furer <m_github@0x26.net>

* Bump memory on relevant actions (#3781)

Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>

* [REF-3334] Validate Toast Props (#3793)

* [REF-3536][REF-3537][REF-3541] Move chakra components into its repo(reflex-chakra) (#3798)

* fix get_uuid_string_var (#3795)

* minor State cleanup (#3768)

* Fix code wrap in markdown (#3755)

---------

Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Manas Gupta <53006261+Manas1820@users.noreply.github.com>
Co-authored-by: coolstorm <manas.gupta@fampay.in>
Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
Co-authored-by: Shubhankar Dimri <dimrishubhi@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>

* pyproject.toml: bump to 0.6.0a1

* pyproject.toml: depend on reflex-chakra>=0.6.0a

New Var system support in reflex-chakra 0.6.0a1

* poetry.lock: relock dependencies

* integration: bump listening timeout to 1200 seconds

* integration: bump listening timeout to 1800 seconds

* Use cached_var_no_lock to avoid ImmutableVar deadlocks (#3835)

* Use cached_var_no_lock to avoid ImmutableVar deadlocks

ImmutableVar subclasses will always return the same value for a _var_name or
_get_all_var_data so there is no need to use a per-class lock to protect a
cached attribute on an instance, and doing so actually is observed to cause
deadlocks when a particular _cached_var_name creates new LiteralVar instances
and attempts to serialize them.

* remove unused module global

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Manas Gupta <53006261+Manas1820@users.noreply.github.com>
Co-authored-by: coolstorm <manas.gupta@fampay.in>
Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
Co-authored-by: Shubhankar Dimri <dimrishubhi@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>
2024-08-26 13:28:18 -07:00

222 lines
7.2 KiB
Python

"""Generated with stubgen from mypy, then manually edited, do not regen."""
from __future__ import annotations
import datetime
from dataclasses import dataclass
from types import FunctionType
from typing import (
Any,
Callable,
Dict,
Iterable,
List,
Optional,
Set,
Tuple,
Type,
Union,
_GenericAlias, # type: ignore
overload,
)
from _typeshed import Incomplete
from reflex import constants as constants
from reflex.base import Base as Base
from reflex.state import BaseState as BaseState
from reflex.state import State as State
from reflex.utils import console as console
from reflex.utils import format as format
from reflex.utils import types as types
from reflex.utils.imports import ImmutableParsedImportDict, ImportDict, ParsedImportDict
USED_VARIABLES: Incomplete
def get_unique_variable_name() -> str: ...
def _encode_var(value: Var) -> str: ...
_global_vars: Dict[int, Var]
def _decode_var(value: str) -> tuple[VarData, str]: ...
def _extract_var_data(value: Iterable) -> list[VarData | None]: ...
class VarData(Base):
state: str = ""
imports: Union[ImportDict, ParsedImportDict] = {}
hooks: Dict[str, None] = {}
interpolations: List[Tuple[int, int]] = []
@classmethod
def merge(cls, *others: ImmutableVarData | VarData | None) -> VarData | None: ...
class ImmutableVarData:
state: str = ""
imports: ImmutableParsedImportDict = tuple()
hooks: Tuple[str, ...] = tuple()
def __init__(
self,
state: str = "",
imports: ImportDict | ParsedImportDict | None = None,
hooks: dict[str, None] | None = None,
) -> None: ...
@classmethod
def merge(
cls, *others: ImmutableVarData | VarData | None
) -> ImmutableVarData | None: ...
@classmethod
def from_state(cls, state: Type[BaseState] | str) -> ImmutableVarData: ...
def _decode_var_immutable(value: str) -> tuple[ImmutableVarData, str]: ...
class Var:
_var_name: str
_var_type: Type
_var_is_local: bool = False
_var_is_string: bool = False
_var_full_name_needs_state_prefix: bool = False
_var_data: VarData | None = None
@classmethod
def create(
cls,
value: Any,
_var_is_local: bool = True,
_var_is_string: bool | None = None,
_var_data: VarData | None = None,
) -> Optional[Var]: ...
@classmethod
def create_safe(
cls,
value: Any,
_var_is_local: bool = True,
_var_is_string: bool | None = None,
_var_data: VarData | None = None,
) -> Var: ...
@classmethod
def __class_getitem__(cls, type_: Type) -> _GenericAlias: ...
def _replace(self, merge_var_data=None, **kwargs: Any) -> BaseVar: ...
def equals(self, other: Var) -> bool: ...
def to_string(self) -> Var: ...
def __hash__(self) -> int: ...
def __format__(self, format_spec: str) -> str: ...
def __getitem__(self, i: Any) -> Var: ...
def __getattribute__(self, name: str) -> Var: ...
def operation(
self,
op: str = ...,
other: Optional[Var] = ...,
type_: Optional[Type] = ...,
flip: bool = ...,
fn: Optional[str] = ...,
) -> Var: ...
def compare(self, op: str, other: Var) -> Var: ...
def __invert__(self) -> Var: ...
def __neg__(self) -> Var: ...
def __abs__(self) -> Var: ...
def length(self) -> Var: ...
def __eq__(self, other: Var) -> Var: ...
def __ne__(self, other: Var) -> Var: ...
def __gt__(self, other: Var) -> Var: ...
def __ge__(self, other: Var) -> Var: ...
def __lt__(self, other: Var) -> Var: ...
def __le__(self, other: Var) -> Var: ...
def __add__(self, other: Var) -> Var: ...
def __radd__(self, other: Var) -> Var: ...
def __sub__(self, other: Var) -> Var: ...
def __rsub__(self, other: Var) -> Var: ...
def __mul__(self, other: Var) -> Var: ...
def __rmul__(self, other: Var) -> Var: ...
def __pow__(self, other: Var) -> Var: ...
def __rpow__(self, other: Var) -> Var: ...
def __truediv__(self, other: Var) -> Var: ...
def __rtruediv__(self, other: Var) -> Var: ...
def __floordiv__(self, other: Var) -> Var: ...
def __mod__(self, other: Var) -> Var: ...
def __rmod__(self, other: Var) -> Var: ...
def __and__(self, other: Var) -> Var: ...
def __rand__(self, other: Var) -> Var: ...
def __or__(self, other: Var) -> Var: ...
def __ror__(self, other: Var) -> Var: ...
def __contains__(self, _: Any) -> Var: ...
def contains(self, other: Any, field: Union[Var, None] = None) -> Var: ...
def reverse(self) -> Var: ...
def foreach(self, fn: Callable) -> Var: ...
@classmethod
def range(
cls,
v1: Var | int = 0,
v2: Var | int | None = None,
step: Var | int | None = None,
) -> Var: ...
def to(self, type_: Type) -> Var: ...
def as_ref(self) -> Var: ...
@property
def _var_full_name(self) -> str: ...
def _var_set_state(self, state: Type[BaseState] | str) -> Any: ...
def _get_all_var_data(self) -> VarData | ImmutableVarData: ...
def json(self) -> str: ...
def _type(self) -> Var: ...
@dataclass(eq=False)
class BaseVar(Var):
_var_name: str
_var_type: Any
_var_is_local: bool = False
_var_is_string: bool = False
_var_full_name_needs_state_prefix: bool = False
_var_data: VarData | None = None
def __hash__(self) -> int: ...
def get_default_value(self) -> Any: ...
def get_setter_name(self, include_state: bool = ...) -> str: ...
def get_setter(self) -> Callable[[BaseState, Any], None]: ...
@dataclass(init=False)
class ComputedVar(Var):
_var_cache: bool
fget: FunctionType
@property
def _cache_attr(self) -> str: ...
def __get__(self, instance, owner): ...
def _deps(self, objclass: Type, obj: Optional[FunctionType] = ...) -> Set[str]: ...
def _replace(self, merge_var_data=None, **kwargs: Any) -> ComputedVar: ...
def mark_dirty(self, instance) -> None: ...
def needs_update(self, instance) -> bool: ...
def _determine_var_type(self) -> Type: ...
@overload
def __init__(
self,
fget: Callable[[BaseState], Any],
**kwargs,
) -> None: ...
@overload
def __init__(self, func) -> None: ...
@overload
def computed_var(
fget: Callable[[BaseState], Any] | None = None,
initial_value: Any | types.Unset = types.Unset(),
cache: bool = False,
deps: Optional[List[Union[str, Var]]] = None,
auto_deps: bool = True,
interval: Optional[Union[datetime.timedelta, int]] = None,
**kwargs,
) -> Callable[[Callable[[Any], Any]], ComputedVar]: ...
@overload
def computed_var(fget: Callable[[Any], Any]) -> ComputedVar: ...
@overload
def cached_var(
fget: Callable[[BaseState], Any] | None = None,
initial_value: Any | types.Unset = types.Unset(),
deps: Optional[List[Union[str, Var]]] = None,
auto_deps: bool = True,
interval: Optional[Union[datetime.timedelta, int]] = None,
**kwargs,
) -> Callable[[Callable[[Any], Any]], ComputedVar]: ...
@overload
def cached_var(fget: Callable[[Any], Any]) -> ComputedVar: ...
class CallableVar(BaseVar):
def __init__(self, fn: Callable[..., BaseVar]): ...
def __call__(self, *args, **kwargs) -> BaseVar: ...
def get_uuid_string_var() -> Var: ...