1
0
Эх сурвалжийг харах

add cli to designer (#1898)

* add cli to designer

* fix test
Dinh Long Nguyen 7 сар өмнө
parent
commit
fbc9cc2b19

+ 12 - 0
taipy/gui/_gui_cli.py

@@ -14,6 +14,8 @@ from typing import Dict, Tuple
 from taipy.common._cli._base_cli._abstract_cli import _AbstractCLI
 from taipy.common._cli._base_cli._taipy_parser import _TaipyParser
 
+from ._hook import _Hooks
+
 
 class _GuiCLI(_AbstractCLI):
     """Command-line interface of GUI."""
@@ -95,6 +97,11 @@ class _GuiCLI(_AbstractCLI):
         for reloader_arg, reloader_arg_dict in cls.__RELOADER_ARGS.items():
             reloader_group.add_argument(reloader_arg, cls.__add_taipy_prefix(reloader_arg), **reloader_arg_dict)
 
+        if (hook_cli_arg := _Hooks()._get_cli_args()) is not None:
+            hook_group = gui_parser.add_mutually_exclusive_group()
+            for hook_arg, hook_arg_dict in hook_cli_arg.items():
+                hook_group.add_argument(hook_arg, cls.__add_taipy_prefix(hook_arg), **hook_arg_dict)
+
     @classmethod
     def create_run_parser(cls):
         run_parser = _TaipyParser._add_subparser("run", help="Run a Taipy application.")
@@ -109,6 +116,11 @@ class _GuiCLI(_AbstractCLI):
         for reloader_arg, reloader_arg_dict in cls.__RELOADER_ARGS.items():
             reloader_group.add_argument(reloader_arg, **reloader_arg_dict)
 
+        if (hook_cli_arg := _Hooks()._get_cli_args()) is not None:
+            hook_group = run_parser.add_mutually_exclusive_group()
+            for hook_arg, hook_arg_dict in hook_cli_arg.items():
+                hook_group.add_argument(hook_arg, **hook_arg_dict)
+
     @classmethod
     def handle_command(cls):
         args, _ = _TaipyParser._parser.parse_known_args()

+ 2 - 0
taipy/gui/config.py

@@ -22,6 +22,7 @@ from werkzeug.serving import is_running_from_reloader
 from taipy.common.logger._taipy_logger import _TaipyLogger
 
 from ._gui_cli import _GuiCLI
+from ._hook import _Hooks
 from ._page import _Page
 from ._warnings import _warn
 from .partial import Partial
@@ -225,6 +226,7 @@ class _Config(object):
             config["webapp_path"] = os.environ.get("TAIPY_GUI_UPLOAD_FOLDER")
         if args.taipy_client_url:
             config["client_url"] = args.taipy_client_url
+        _Hooks()._handle_argparse(args, config)
 
     def _build_config(self, root_dir, env_filename, kwargs):  # pragma: no cover
         config = self.config

+ 3 - 4
taipy/gui/gui.py

@@ -2747,10 +2747,6 @@ class Gui:
         #
         #         The default value is None.
         # --------------------------------------------------------------------------------
-
-        # setup run function with gui hooks
-        _Hooks().run(self, **kwargs)
-
         app_config = self._config.config
 
         run_root_dir = os.path.dirname(getabsfile(self.__frame))
@@ -2775,6 +2771,9 @@ class Gui:
         self._config.resolve()
         TaipyGuiWarning.set_debug_mode(self._get_config("debug", False))
 
+        # setup run function with gui hooks
+        _Hooks().run(self, **kwargs)
+
         self.__init_server()
 
         self.__init_ngrok()