Explorar o código

Handle default values

Fabien Lelaquais hai 7 meses
pai
achega
1d6c87fd7e
Modificáronse 1 ficheiros con 13 adicións e 9 borrados
  1. 13 9
      tools/gui/generate_pyi.py

+ 13 - 9
tools/gui/generate_pyi.py

@@ -77,7 +77,7 @@ os.system(f"pipenv run stubgen {builder_py_file} --no-import --parse-only --expo
 
 with open(builder_pyi_file, "a") as file:
     file.write("from datetime import datetime\n")
-    file.write("from typing import Any, Callable, Union\n")
+    file.write("from typing import Any, Callable, Optional, Union\n")
     file.write("\n")
     file.write("from .. import Icon\n")
     file.write("from ._element import _Block, _Control\n")
@@ -114,6 +114,9 @@ def resolve_inherit(name: str, properties, inherits, viselements) -> List[Dict[s
 
 
 def format_as_parameter(property):
+    name = property["name"]
+    if match := __RE_INDEXED_PROPERTY.match(name):
+        name = f"{match.group(1)}__{match.group(3)}"
     type = property["type"]
     if m := re.match(r"indexed\((.*)\)", type):
         type = m[1]
@@ -125,22 +128,23 @@ def format_as_parameter(property):
         property["dynamic"] = " (dynamic)"
     else:
         property["dynamic"] = ""
-    name = property["name"]
-    if match := __RE_INDEXED_PROPERTY.match(name):
-        name = f"{match.group(1)}__{match.group(3)}"
     if type == "Callback" or type == "Function":
         type = ""
-    else:
-        type = f": {type}"
+    elif re.match(r"plotly\.", type) or re.match(r"taipy\.", type):
+        type = f"\"{type}\""
     default_value = property.get("default_value", None)
-    if default_value is not None:
+    if default_value is None or default_value == "None":
+        default_value = " = None"
+        if type:
+            type = f": Optional[{type}]"
+    else:
         try:
             eval(default_value)
             default_value = f" = {default_value}"
         except Exception:
             default_value = ""
-    else:
-        default_value = ""
+        if type:
+            type = f": {type}"
     return f"{name}{type}{default_value}"