This commit is contained in:
Julian Freeman
2023-12-19 14:19:44 -04:00
parent 00790e6df8
commit 2f7c3ee151
3 changed files with 13 additions and 16 deletions

View File

@@ -2,6 +2,10 @@
命令行交互辅助工具 命令行交互辅助工具
**v2.0.1**
1. 修复配置参数的 bug
**v2.0** **v2.0**
1. 代码重构,使用方式变更 1. 代码重构,使用方式变更

View File

@@ -14,7 +14,7 @@
from __future__ import annotations from __future__ import annotations
from typing import Callable, TypedDict from typing import Callable, TypedDict
version = (2, 0, 20231219) version = (2, 0, 1, 20231219)
def request_input(prompt_msg: str, def request_input(prompt_msg: str,
@@ -131,10 +131,14 @@ class _OptionNode(object):
self.exec_func = exec_func if exec_func is not None else self._default_func self.exec_func = exec_func if exec_func is not None else self._default_func
self.args = args if args is not None else () self.args = args if args is not None else ()
self.kwargs = kwargs if kwargs is not None else {} self.kwargs = kwargs if kwargs is not None else {}
self.menu_config = menu_config if menu_config is not None else DEFAULT_MENU_CONFIG
self.children = [] # type: list[_OptionNode] self.children = [] # type: list[_OptionNode]
self._is_root = _is_root self._is_root = _is_root
self.menu_config = DEFAULT_MENU_CONFIG.copy()
# 补充没有的设置
if menu_config is not None:
self.menu_config.update(menu_config)
@staticmethod @staticmethod
def _default_func(): def _default_func():
"""用户没有指定执行函数时执行的默认函数""" """用户没有指定执行函数时执行的默认函数"""
@@ -307,4 +311,4 @@ class CliHelper(_OptionNode):
super().__init__("Main Menu", menu_config=menu_config, _is_root=True) super().__init__("Main Menu", menu_config=menu_config, _is_root=True)
if show_version: if show_version:
print(f"CliHelper v{version[0]}.{version[1]} ({version[-1]})\n") print(f"CliHelper v{version[0]}.{version[1]}.{version[2]} ({version[-1]})\n")

15
test.py
View File

@@ -11,19 +11,8 @@ def new_folder(name):
def test_helper(): def test_helper():
# c = CliHelper(right_padding=20, draw_menu_again=False) ch = CliHelper({"right_padding": 20, "serial_marker": "->"})
# n = c.add_option(title="New") # ch = CliHelper()
# c.add_option(title="Open File", exec_func=open_file)
# c.add_option(title="Save")
# c.add_exit_option()
#
# c.add_return_option(n)
# c.add_option(n, "New File")
# c.add_option(n, "New Folder", new_folder, ("Temp",))
# c.add_exit_option(n)
#
# c.start_loop()
ch = CliHelper()
n = ch.add_option("New") n = ch.add_option("New")
n.add_return_option() n.add_return_option()
n.add_option("New File") n.add_option("New File")