@@ -1903,61 +1903,6 @@ def _or_operation(a: Var, b: Var):
19031903 )
19041904
19051905
1906- @dataclasses .dataclass (
1907- eq = False ,
1908- frozen = True ,
1909- slots = True ,
1910- )
1911- class CallableVar (Var ):
1912- """Decorate a Var-returning function to act as both a Var and a function.
1913-
1914- This is used as a compatibility shim for replacing Var objects in the
1915- API with functions that return a family of Var.
1916- """
1917-
1918- fn : Callable [..., Var ] = dataclasses .field (
1919- default_factory = lambda : lambda : Var (_js_expr = "undefined" )
1920- )
1921- original_var : Var = dataclasses .field (
1922- default_factory = lambda : Var (_js_expr = "undefined" )
1923- )
1924-
1925- def __init__ (self , fn : Callable [..., Var ]):
1926- """Initialize a CallableVar.
1927-
1928- Args:
1929- fn: The function to decorate (must return Var)
1930- """
1931- original_var = fn ()
1932- super (CallableVar , self ).__init__ (
1933- _js_expr = original_var ._js_expr ,
1934- _var_type = original_var ._var_type ,
1935- _var_data = VarData .merge (original_var ._get_all_var_data ()),
1936- )
1937- object .__setattr__ (self , "fn" , fn )
1938- object .__setattr__ (self , "original_var" , original_var )
1939-
1940- def __call__ (self , * args : Any , ** kwargs : Any ) -> Var :
1941- """Call the decorated function.
1942-
1943- Args:
1944- *args: The args to pass to the function.
1945- **kwargs: The kwargs to pass to the function.
1946-
1947- Returns:
1948- The Var returned from calling the function.
1949- """
1950- return self .fn (* args , ** kwargs )
1951-
1952- def __hash__ (self ) -> int :
1953- """Calculate the hash of the object.
1954-
1955- Returns:
1956- The hash of the object.
1957- """
1958- return hash ((type (self ).__name__ , self .original_var ))
1959-
1960-
19611906RETURN_TYPE = TypeVar ("RETURN_TYPE" )
19621907
19631908DICT_KEY = TypeVar ("DICT_KEY" )
0 commit comments