22import re
33from typing import Any , TypedDict
44from sympy import sympify
5- from typing import Set
5+ from typing import Any , TypedDict , Set , Tuple , List , Dict
66
77class Params (TypedDict ):
88 pass
@@ -27,7 +27,7 @@ def extract_variable_names(*expressions: str) -> Set[str]:
2727 names .add (m )
2828 return names
2929
30- def parse_function_spec (func_str : str ) -> tuple [str , list [str ]]:
30+ def parse_function_spec (func_str : str ) -> Tuple [str , List [str ]]:
3131 """
3232 "f(x,y)" → ("f", ["x", "y"])
3333 """
@@ -37,7 +37,7 @@ def parse_function_spec(func_str: str) -> tuple[str, list[str]]:
3737 func_name = match .group (1 )
3838 args = [arg .strip () for arg in match .group (2 ).split ("," ) if arg .strip ()]
3939 return func_name , args
40- def apply_declared_functions (expr : str , func_params : list [str ]) -> str :
40+ def apply_declared_functions (expr : str , func_params : List [str ]) -> str :
4141 # {"y": ["x"], "f": ["t"], "g": ["x"]} を作る
4242 decl = {}
4343 for s in func_params :
@@ -55,15 +55,15 @@ def apply_declared_functions(expr: str, func_params: list[str]) -> str:
5555 expr = re .sub (rf"\b{ name } \b(?!\s*\()" , f"{ name } ({ argstr } )" , expr )
5656 return expr
5757
58- def _parse_fn (sig : str ) -> tuple [str , list [str ]]:
58+ def _parse_fn (sig : str ) -> Tuple [str , List [str ]]:
5959 # "y(x,z)" -> ("y", ["x","z"])
6060 name , args = sig .split ("(" , 1 )
6161 name = name .strip ()
6262 args = args .rstrip (")" ).strip ()
6363 argv = [a .strip () for a in args .split ("," )] if args else []
6464 return name , argv
6565
66- def parse_domain (domain_str : str ) -> dict :
66+ def parse_domain (domain_str : str ) -> Dict :
6767 """
6868 Receive "(a,b]", "[a,b]", "(-2,2)", "(0, pi]", "(-oo, oo)" etc.
6969 Return {"left": sympy.Expr, "right": sympy.Expr, "left_open": bool, "right_open": bool}
@@ -101,11 +101,11 @@ def check_in_domain(value, domain: dict) -> bool:
101101 return True
102102
103103
104- def create_sympy_parsing_params (params : dict , * expressions : str ) -> dict :
105- symbol_dict : dict [str , Any ] = {}
104+ def create_sympy_parsing_params (params : Dict , * expressions : str ) -> Dict :
105+ symbol_dict : Dict [str , Any ] = {}
106106
107107 # assumptions
108- assumptions : dict [str , dict ] = params .get ("symbol_assumptions" , {}) or {}
108+ assumptions : Dict [str , dict ] = params .get ("symbol_assumptions" , {}) or {}
109109
110110 # functions
111111 fn_list = params .get ("function" ) or []
@@ -134,7 +134,7 @@ def create_sympy_parsing_params(params: dict, *expressions: str) -> dict:
134134 "domain" : domain ,
135135 }
136136
137- d = parse_domain ("(0,3)" )
138- print (check_in_domain (0 , d )) # False
139- print (check_in_domain (3 , d )) # False
140- print (check_in_domain (2.9 , d )) # True
137+ # d = parse_domain("(0,3)")
138+ # print(check_in_domain(0, d)) # False
139+ # print(check_in_domain(3, d)) # False
140+ # print(check_in_domain(2.9, d)) # True
0 commit comments