cmdbox 0.5.4__py3-none-any.whl → 0.6.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cmdbox might be problematic. Click here for more details.

Files changed (148) hide show
  1. cmdbox/app/auth/signin.py +463 -303
  2. cmdbox/app/common.py +51 -3
  3. cmdbox/app/commons/loghandler.py +62 -13
  4. cmdbox/app/edge.py +5 -173
  5. cmdbox/app/edge_tool.py +177 -0
  6. cmdbox/app/feature.py +10 -9
  7. cmdbox/app/features/cli/agent_base.py +479 -0
  8. cmdbox/app/features/cli/audit_base.py +17 -5
  9. cmdbox/app/features/cli/cmdbox_audit_search.py +24 -1
  10. cmdbox/app/features/cli/cmdbox_client_file_download.py +1 -1
  11. cmdbox/app/features/cli/cmdbox_cmd_list.py +105 -0
  12. cmdbox/app/features/cli/cmdbox_cmd_load.py +104 -0
  13. cmdbox/app/features/cli/cmdbox_edge_config.py +2 -2
  14. cmdbox/app/features/cli/cmdbox_edge_start.py +1 -1
  15. cmdbox/app/features/cli/cmdbox_gui_start.py +9 -132
  16. cmdbox/app/features/cli/cmdbox_gui_stop.py +4 -21
  17. cmdbox/app/features/cli/cmdbox_server_start.py +1 -1
  18. cmdbox/app/features/cli/cmdbox_web_apikey_add.py +1 -1
  19. cmdbox/app/features/cli/cmdbox_web_apikey_del.py +1 -1
  20. cmdbox/app/features/cli/cmdbox_web_genpass.py +0 -3
  21. cmdbox/app/features/cli/cmdbox_web_group_add.py +1 -1
  22. cmdbox/app/features/cli/cmdbox_web_group_del.py +1 -1
  23. cmdbox/app/features/cli/cmdbox_web_group_edit.py +1 -1
  24. cmdbox/app/features/cli/cmdbox_web_group_list.py +1 -1
  25. cmdbox/app/features/cli/cmdbox_web_start.py +120 -104
  26. cmdbox/app/features/cli/cmdbox_web_stop.py +1 -1
  27. cmdbox/app/features/cli/cmdbox_web_user_add.py +1 -1
  28. cmdbox/app/features/cli/cmdbox_web_user_del.py +1 -1
  29. cmdbox/app/features/cli/cmdbox_web_user_edit.py +1 -1
  30. cmdbox/app/features/cli/cmdbox_web_user_list.py +1 -1
  31. cmdbox/app/features/web/cmdbox_web_agent.py +262 -0
  32. cmdbox/app/features/web/cmdbox_web_do_signout.py +3 -3
  33. cmdbox/app/features/web/cmdbox_web_exec_cmd.py +8 -3
  34. cmdbox/app/features/web/cmdbox_web_signin.py +5 -4
  35. cmdbox/app/features/web/cmdbox_web_users.py +2 -0
  36. cmdbox/app/options.py +62 -9
  37. cmdbox/app/web.py +139 -15
  38. cmdbox/extensions/features.yml +18 -0
  39. cmdbox/extensions/sample_project/sample/app/features/cli/__init__.py +0 -0
  40. cmdbox/extensions/sample_project/sample/app/features/web/__init__.py +0 -0
  41. cmdbox/extensions/sample_project/sample/extensions/features.yml +18 -0
  42. cmdbox/extensions/sample_project/sample/extensions/user_list.yml +2 -1
  43. cmdbox/extensions/sample_project/sample/logconf_sample.yml +14 -1
  44. cmdbox/extensions/user_list.yml +1 -0
  45. cmdbox/licenses/LICENSE.Authlib.1.5.2(BSD License).txt +29 -0
  46. cmdbox/licenses/LICENSE.Deprecated.1.2.18(MIT License).txt +21 -0
  47. cmdbox/licenses/LICENSE.SQLAlchemy.2.0.40(MIT License).txt +19 -0
  48. cmdbox/licenses/LICENSE.aiohappyeyeballs.2.6.1(Python Software Foundation License).txt +279 -0
  49. cmdbox/licenses/LICENSE.aiohttp.3.11.18(Apache Software License).txt +13 -0
  50. cmdbox/licenses/LICENSE.aiosignal.1.3.2(Apache Software License).txt +201 -0
  51. cmdbox/licenses/LICENSE.attrs.25.3.0(UNKNOWN).txt +21 -0
  52. cmdbox/licenses/LICENSE.cachetools.5.5.2(MIT License).txt +20 -0
  53. cmdbox/licenses/LICENSE.distro.1.9.0(Apache Software License).txt +202 -0
  54. cmdbox/licenses/LICENSE.docstring_parser.0.16(MIT License).txt +21 -0
  55. cmdbox/licenses/LICENSE.filelock.3.18.0(The Unlicense (Unlicense)).txt +24 -0
  56. cmdbox/licenses/LICENSE.frozenlist.1.6.0(Apache-2.0).txt +201 -0
  57. cmdbox/licenses/LICENSE.fsspec.2025.3.2(BSD License).txt +29 -0
  58. cmdbox/licenses/LICENSE.google-adk.0.5.0(Apache Software License).txt +202 -0
  59. cmdbox/licenses/LICENSE.google-api-python-client.2.169.0(Apache Software License).txt +201 -0
  60. cmdbox/licenses/LICENSE.google-auth-httplib2.0.2.0(Apache Software License).txt +201 -0
  61. cmdbox/licenses/LICENSE.google-auth.2.40.1(Apache Software License).txt +201 -0
  62. cmdbox/licenses/LICENSE.google-cloud-aiplatform.1.92.0(Apache 2.0).txt +202 -0
  63. cmdbox/licenses/LICENSE.google-cloud-bigquery.3.31.0(Apache Software License).txt +202 -0
  64. cmdbox/licenses/LICENSE.google-cloud-core.2.4.3(Apache Software License).txt +202 -0
  65. cmdbox/licenses/LICENSE.google-cloud-resource-manager.1.14.2(Apache Software License).txt +202 -0
  66. cmdbox/licenses/LICENSE.google-cloud-secret-manager.2.23.3(Apache Software License).txt +202 -0
  67. cmdbox/licenses/LICENSE.google-cloud-speech.2.32.0(Apache Software License).txt +202 -0
  68. cmdbox/licenses/LICENSE.google-cloud-storage.2.19.0(Apache Software License).txt +202 -0
  69. cmdbox/licenses/LICENSE.google-cloud-trace.1.16.1(Apache Software License).txt +202 -0
  70. cmdbox/licenses/LICENSE.google-crc32c.1.7.1(Apache 2.0).txt +202 -0
  71. cmdbox/licenses/LICENSE.google-genai.1.14.0(Apache Software License).txt +202 -0
  72. cmdbox/licenses/LICENSE.google-resumable-media.2.7.2(Apache Software License).txt +202 -0
  73. cmdbox/licenses/LICENSE.googleapis-common-protos.1.70.0(Apache Software License).txt +202 -0
  74. cmdbox/licenses/LICENSE.graphviz.0.20.3(MIT License).txt +21 -0
  75. cmdbox/licenses/LICENSE.grpc-google-iam-v1.0.14.2(Apache Software License).txt +202 -0
  76. cmdbox/licenses/LICENSE.grpcio-status.1.71.0(Apache Software License).txt +610 -0
  77. cmdbox/licenses/LICENSE.grpcio.1.71.0(Apache Software License).txt +610 -0
  78. cmdbox/licenses/LICENSE.httpcore.1.0.9(BSD License).txt +27 -0
  79. cmdbox/licenses/LICENSE.httplib2.0.22.0(MIT License).txt +23 -0
  80. cmdbox/licenses/LICENSE.httpx-sse.0.4.0(MIT).txt +21 -0
  81. cmdbox/licenses/LICENSE.httpx.0.28.1(BSD License).txt +12 -0
  82. cmdbox/licenses/LICENSE.huggingface-hub.0.31.1(Apache Software License).txt +201 -0
  83. cmdbox/licenses/LICENSE.importlib_metadata.8.6.1(Apache Software License).txt +202 -0
  84. cmdbox/licenses/LICENSE.jiter.0.9.0(MIT License).txt +1 -0
  85. cmdbox/licenses/LICENSE.jsonschema-specifications.2025.4.1(UNKNOWN).txt +19 -0
  86. cmdbox/licenses/LICENSE.jsonschema.4.23.0(MIT License).txt +19 -0
  87. cmdbox/licenses/LICENSE.litellm.1.69.0(MIT License).txt +26 -0
  88. cmdbox/licenses/LICENSE.mcp.1.8.0(MIT License).txt +21 -0
  89. cmdbox/licenses/LICENSE.multidict.6.4.3(Apache Software License).txt +13 -0
  90. cmdbox/licenses/LICENSE.openai.1.75.0(Apache Software License).txt +201 -0
  91. cmdbox/licenses/LICENSE.opentelemetry-api.1.33.0(Apache Software License).txt +201 -0
  92. cmdbox/licenses/LICENSE.opentelemetry-exporter-gcp-trace.1.9.0(Apache Software License).txt +201 -0
  93. cmdbox/licenses/LICENSE.opentelemetry-resourcedetector-gcp.1.9.0a0(Apache Software License).txt +201 -0
  94. cmdbox/licenses/LICENSE.opentelemetry-sdk.1.33.0(Apache Software License).txt +201 -0
  95. cmdbox/licenses/LICENSE.opentelemetry-semantic-conventions.0.54b0(Apache Software License).txt +201 -0
  96. cmdbox/licenses/LICENSE.propcache.0.3.1(Apache Software License).txt +202 -0
  97. cmdbox/licenses/LICENSE.proto-plus.1.26.1(Apache Software License).txt +202 -0
  98. cmdbox/licenses/LICENSE.protobuf.5.29.4(3-Clause BSD License).txt +32 -0
  99. cmdbox/licenses/LICENSE.pyasn1.0.6.1(BSD License).txt +24 -0
  100. cmdbox/licenses/LICENSE.pyasn1_modules.0.4.2(BSD License).txt +24 -0
  101. cmdbox/licenses/LICENSE.pydantic-settings.2.9.1(MIT License).txt +21 -0
  102. cmdbox/licenses/LICENSE.pyparsing.3.2.3(MIT License).txt +18 -0
  103. cmdbox/licenses/LICENSE.python-dateutil.2.9.0.post0(Apache Software License; BSD License).txt +54 -0
  104. cmdbox/licenses/LICENSE.referencing.0.36.2(UNKNOWN).txt +19 -0
  105. cmdbox/licenses/LICENSE.regex.2024.11.6(Apache Software License).txt +208 -0
  106. cmdbox/licenses/LICENSE.rpds-py.0.24.0(MIT).txt +19 -0
  107. cmdbox/licenses/LICENSE.rsa.4.9.1(Apache Software License).txt +13 -0
  108. cmdbox/licenses/LICENSE.shapely.2.1.0(BSD License).txt +29 -0
  109. cmdbox/licenses/LICENSE.sse-starlette.2.3.4(BSD License).txt +27 -0
  110. cmdbox/licenses/LICENSE.tiktoken.0.9.0(MIT License).txt +21 -0
  111. cmdbox/licenses/LICENSE.tokenizers.0.21.1(Apache Software License).txt +1 -0
  112. cmdbox/licenses/LICENSE.tqdm.4.67.1(MIT License; Mozilla Public License 2.0 (MPL 2.0)).txt +49 -0
  113. cmdbox/licenses/LICENSE.tzlocal.5.3.1(MIT License).txt +19 -0
  114. cmdbox/licenses/LICENSE.uritemplate.4.1.1(Apache Software License; BSD License).txt +3 -0
  115. cmdbox/licenses/LICENSE.wrapt.1.17.2(BSD License).txt +24 -0
  116. cmdbox/licenses/LICENSE.yarl.1.20.0(Apache Software License).txt +202 -0
  117. cmdbox/licenses/files.txt +104 -11
  118. cmdbox/logconf_audit.yml +16 -3
  119. cmdbox/logconf_client.yml +16 -3
  120. cmdbox/logconf_cmdbox.yml +16 -3
  121. cmdbox/logconf_edge.yml +16 -3
  122. cmdbox/logconf_gui.yml +15 -2
  123. cmdbox/logconf_server.yml +15 -2
  124. cmdbox/logconf_web.yml +15 -2
  125. cmdbox/version.py +3 -2
  126. cmdbox/web/agent.html +263 -0
  127. cmdbox/web/assets/cmdbox/agent.js +338 -0
  128. cmdbox/web/assets/cmdbox/common.js +1111 -1020
  129. cmdbox/web/assets/cmdbox/main.js +17 -3
  130. cmdbox/web/assets/cmdbox/signin.js +4 -4
  131. cmdbox/web/assets/filer/filer.js +4 -2
  132. {cmdbox-0.5.4.dist-info → cmdbox-0.6.0.1.dist-info}/METADATA +69 -26
  133. {cmdbox-0.5.4.dist-info → cmdbox-0.6.0.1.dist-info}/RECORD +148 -67
  134. /cmdbox/licenses/{LICENSE.charset-normalizer.3.4.1(MIT License).txt → LICENSE.charset-normalizer.3.4.2(MIT License).txt} +0 -0
  135. /cmdbox/licenses/{LICENSE.click.8.1.8(BSD License).txt → LICENSE.click.8.2.0(UNKNOWN).txt} +0 -0
  136. /cmdbox/licenses/{LICENSE.cryptography.44.0.2(Apache Software License; BSD License).txt → LICENSE.cryptography.44.0.3(Apache Software License; BSD License).txt} +0 -0
  137. /cmdbox/licenses/{LICENSE.importlib_metadata.8.7.0(Apache Software License).txt → LICENSE.google-api-core.2.24.2(Apache Software License).txt} +0 -0
  138. /cmdbox/licenses/{LICENSE.greenlet.3.2.1(MIT AND Python-2.0).txt → LICENSE.greenlet.3.2.2(MIT AND Python-2.0).txt} +0 -0
  139. /cmdbox/licenses/{LICENSE.psycopg-binary.3.2.6(GNU Lesser General Public License v3 (LGPLv3)).txt → LICENSE.psycopg-binary.3.2.7(GNU Lesser General Public License v3 (LGPLv3)).txt} +0 -0
  140. /cmdbox/licenses/{LICENSE.psycopg.3.2.6(GNU Lesser General Public License v3 (LGPLv3)).txt → LICENSE.psycopg.3.2.7(GNU Lesser General Public License v3 (LGPLv3)).txt} +0 -0
  141. /cmdbox/licenses/{LICENSE.pydantic.2.11.3(MIT License).txt → LICENSE.pydantic.2.11.4(MIT License).txt} +0 -0
  142. /cmdbox/licenses/{LICENSE.pydantic_core.2.33.1(MIT License).txt → LICENSE.pydantic_core.2.33.2(MIT License).txt} +0 -0
  143. /cmdbox/licenses/{LICENSE.redis.5.2.1(MIT License).txt → LICENSE.redis.6.0.0(MIT License).txt} +0 -0
  144. /cmdbox/licenses/{LICENSE.snowballstemmer.2.2.0(BSD License).txt → LICENSE.snowballstemmer.3.0.1(BSD License).txt} +0 -0
  145. {cmdbox-0.5.4.dist-info → cmdbox-0.6.0.1.dist-info}/LICENSE +0 -0
  146. {cmdbox-0.5.4.dist-info → cmdbox-0.6.0.1.dist-info}/WHEEL +0 -0
  147. {cmdbox-0.5.4.dist-info → cmdbox-0.6.0.1.dist-info}/entry_points.txt +0 -0
  148. {cmdbox-0.5.4.dist-info → cmdbox-0.6.0.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,105 @@
1
+ from cmdbox.app import common, feature
2
+ from cmdbox.app.auth import signin
3
+ from cmdbox.app.options import Options
4
+ from pathlib import Path
5
+ from typing import Dict, Any, Tuple, List, Union
6
+ import argparse
7
+ import glob
8
+ import logging
9
+
10
+
11
+ class CmdList(feature.OneshotResultEdgeFeature):
12
+ def get_mode(self) -> Union[str, List[str]]:
13
+ """
14
+ この機能のモードを返します
15
+
16
+ Returns:
17
+ Union[str, List[str]]: モード
18
+ """
19
+ return 'cmd'
20
+
21
+ def get_cmd(self):
22
+ """
23
+ この機能のコマンドを返します
24
+
25
+ Returns:
26
+ str: コマンド
27
+ """
28
+ return 'list'
29
+
30
+ def get_option(self):
31
+ """
32
+ この機能のオプションを返します
33
+
34
+ Returns:
35
+ Dict[str, Any]: オプション
36
+ """
37
+ return dict(
38
+ use_redis=self.USE_REDIS_FALSE, nouse_webmode=False,
39
+ discription_ja="データフォルダ配下のコマンドリストを取得します。",
40
+ discription_en="Obtains a list of commands under the data folder.",
41
+ choice=[
42
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=True, multi=False, hide=False, choice=None,
43
+ discription_ja=f"省略した時は `$HONE/.{self.ver.__appid__}` を使用します。",
44
+ discription_en=f"When omitted, `$HONE/.{self.ver.__appid__}` is used."),
45
+ dict(opt="kwd", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
46
+ discription_ja=f"検索したいコマンド名を指定します。中間マッチで検索します。",
47
+ discription_en=f"Specify the name of the command you want to search. Search with intermediate matches."),
48
+ dict(opt="signin_file", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None,
49
+ discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。",
50
+ discription_en="Specify a file containing users and passwords with which they can signin."),
51
+ dict(opt="groups", type=Options.T_STR, default=None, required=False, multi=True, hide=True, choice=None,
52
+ discription_ja="`signin_file` を指定した場合に、このユーザーグループに許可されているコマンドリストを返すように指定します。",
53
+ discription_en="Specifies that `signin_file`, if specified, should return the list of commands allowed for this user group."),
54
+ dict(opt="output_json", short="o", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None, fileio="out",
55
+ discription_ja="処理結果jsonの保存先ファイルを指定。",
56
+ discription_en="Specify the destination file for saving the processing result json."),
57
+ dict(opt="output_json_append", short="a", type=Options.T_BOOL, default=False, required=False, multi=False, hide=True, choice=[True, False],
58
+ discription_ja="処理結果jsonファイルを追記保存します。",
59
+ discription_en="Save the processing result json file by appending."),
60
+ dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
61
+ discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
62
+ discription_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
63
+ dict(opt="capture_stdout", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
64
+ discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をキャプチャーし、実行結果画面に表示します。",
65
+ discription_en="Available only in GUI mode. Captures standard output during command execution and displays it on the execution result screen."),
66
+ dict(opt="capture_maxsize", type=Options.T_INT, default=self.DEFAULT_CAPTURE_MAXSIZE, required=False, multi=False, hide=True, choice=None,
67
+ discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力の最大キャプチャーサイズを指定します。",
68
+ discription_en="Available only in GUI mode. Specifies the maximum capture size of standard output when executing commands."),
69
+ ]
70
+ )
71
+
72
+ def apprun(self, logger:logging.Logger, args:argparse.Namespace, tm:float, pf:List[Dict[str, float]]=[]) -> Tuple[int, Dict[str, Any], Any]:
73
+ """
74
+ この機能の実行を行います
75
+
76
+ Args:
77
+ logger (logging.Logger): ロガー
78
+ args (argparse.Namespace): 引数
79
+ tm (float): 実行開始時間
80
+ pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
81
+
82
+ Returns:
83
+ Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
84
+ """
85
+ if args.data is None:
86
+ msg = dict(warn=f"Please specify the --data option.")
87
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
88
+ return 1, msg, None
89
+ kwd = args.kwd
90
+ if kwd is None or kwd == '':
91
+ kwd = '*'
92
+ if not hasattr(self, 'signin_file_data') or self.signin_file_data is None:
93
+ self.signin_file_data = signin.Signin.load_signin_file(args.signin_file, None)
94
+ paths = glob.glob(str(Path(args.data) / ".cmds" / f"cmd-{kwd}.json"))
95
+ ret = [common.loadopt(path, True) for path in paths]
96
+ ret = sorted(ret, key=lambda cmd: cmd["title"])
97
+ ret = [dict(title=r.get('title',''), mode=r.get('mode',''), cmd=r.get('cmd',''), tag=r.get('tag','')) for r in ret if signin.Signin._check_cmd(self.signin_file_data, args.groups, r['mode'], r['cmd'], logger)]
98
+ ret = dict(success=ret)
99
+
100
+ common.print_format(ret, args.format, tm, args.output_json, args.output_json_append, pf=pf)
101
+
102
+ if 'success' not in ret:
103
+ return 1, ret, None
104
+
105
+ return 0, ret, None
@@ -0,0 +1,104 @@
1
+ from cmdbox.app import common, feature
2
+ from cmdbox.app.auth import signin
3
+ from cmdbox.app.options import Options
4
+ from pathlib import Path
5
+ from typing import Dict, Any, Tuple, List, Union
6
+ import argparse
7
+ import glob
8
+ import logging
9
+
10
+
11
+ class CmdLoad(feature.OneshotResultEdgeFeature):
12
+ def get_mode(self) -> Union[str, List[str]]:
13
+ """
14
+ この機能のモードを返します
15
+
16
+ Returns:
17
+ Union[str, List[str]]: モード
18
+ """
19
+ return 'cmd'
20
+
21
+ def get_cmd(self):
22
+ """
23
+ この機能のコマンドを返します
24
+
25
+ Returns:
26
+ str: コマンド
27
+ """
28
+ return 'load'
29
+
30
+ def get_option(self):
31
+ """
32
+ この機能のオプションを返します
33
+
34
+ Returns:
35
+ Dict[str, Any]: オプション
36
+ """
37
+ return dict(
38
+ use_redis=self.USE_REDIS_FALSE, nouse_webmode=False,
39
+ discription_ja="データフォルダ配下のコマンドの内容を取得します。",
40
+ discription_en="Obtains the contents of commands under the data folder.",
41
+ choice=[
42
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=True, multi=False, hide=False, choice=None,
43
+ discription_ja=f"省略した時は `$HONE/.{self.ver.__appid__}` を使用します。",
44
+ discription_en=f"When omitted, `$HONE/.{self.ver.__appid__}` is used."),
45
+ dict(opt="title", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
46
+ discription_ja=f"読込みたいコマンド名を指定します。",
47
+ discription_en=f"Specify the name of the command to be read."),
48
+ dict(opt="signin_file", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None,
49
+ discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。",
50
+ discription_en="Specify a file containing users and passwords with which they can signin."),
51
+ dict(opt="groups", type=Options.T_STR, default=None, required=False, multi=True, hide=True, choice=None,
52
+ discription_ja="`signin_file` を指定した場合に、このユーザーグループに許可されているコマンドリストを返すように指定します。",
53
+ discription_en="Specifies that `signin_file`, if specified, should return the list of commands allowed for this user group."),
54
+ dict(opt="output_json", short="o", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None, fileio="out",
55
+ discription_ja="処理結果jsonの保存先ファイルを指定。",
56
+ discription_en="Specify the destination file for saving the processing result json."),
57
+ dict(opt="output_json_append", short="a", type=Options.T_BOOL, default=False, required=False, multi=False, hide=True, choice=[True, False],
58
+ discription_ja="処理結果jsonファイルを追記保存します。",
59
+ discription_en="Save the processing result json file by appending."),
60
+ dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
61
+ discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
62
+ discription_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
63
+ dict(opt="capture_stdout", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
64
+ discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をキャプチャーし、実行結果画面に表示します。",
65
+ discription_en="Available only in GUI mode. Captures standard output during command execution and displays it on the execution result screen."),
66
+ dict(opt="capture_maxsize", type=Options.T_INT, default=self.DEFAULT_CAPTURE_MAXSIZE, required=False, multi=False, hide=True, choice=None,
67
+ discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力の最大キャプチャーサイズを指定します。",
68
+ discription_en="Available only in GUI mode. Specifies the maximum capture size of standard output when executing commands."),
69
+ ]
70
+ )
71
+
72
+ def apprun(self, logger:logging.Logger, args:argparse.Namespace, tm:float, pf:List[Dict[str, float]]=[]) -> Tuple[int, Dict[str, Any], Any]:
73
+ """
74
+ この機能の実行を行います
75
+
76
+ Args:
77
+ logger (logging.Logger): ロガー
78
+ args (argparse.Namespace): 引数
79
+ tm (float): 実行開始時間
80
+ pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
81
+
82
+ Returns:
83
+ Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
84
+ """
85
+ if args.data is None:
86
+ msg = dict(warn=f"Please specify the --data option.")
87
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
88
+ return 1, msg, None
89
+ if args.title is None:
90
+ msg = dict(warn=f"Please specify the --title option.")
91
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
92
+ return 1, msg, None
93
+ if not hasattr(self, 'signin_file_data') or self.signin_file_data is None:
94
+ self.signin_file_data = signin.Signin.load_signin_file(args.signin_file, None)
95
+ opt_path = Path(args.data) / ".cmds" / f"cmd-{args.title}.json"
96
+ opt = common.loadopt(opt_path, True)
97
+ ret = dict(success=opt)
98
+
99
+ common.print_format(ret, args.format, tm, args.output_json, args.output_json_append, pf=pf)
100
+
101
+ if 'success' not in ret:
102
+ return 1, ret, None
103
+
104
+ return 0, ret, None
@@ -40,7 +40,7 @@ class EdgeConfig(feature.UnsupportEdgeFeature):
40
40
  dict(opt="endpoint", type=Options.T_STR, default="http://localhost:8081", required=False, multi=False, hide=False, choice=None,
41
41
  discription_ja="エンドポイントのURLを指定します。",
42
42
  discription_en="Specify the URL of the endpoint."),
43
- dict(opt="icon_path", type=Options.T_STR, default=Path(self.ver.__file__).parent / 'web' / 'assets' / self.ver.__appid__ / 'favicon.ico',
43
+ dict(opt="icon_path", type=Options.T_FILE, default=Path(self.ver.__file__).parent / 'web' / 'assets' / self.ver.__appid__ / 'favicon.ico',
44
44
  required=False, multi=False, hide=False, choice=None,
45
45
  discription_ja="アイコン画像のパスを指定します。",
46
46
  discription_en="Specify the path to the icon image."),
@@ -94,7 +94,7 @@ class EdgeConfig(feature.UnsupportEdgeFeature):
94
94
  dict(opt="saml_timeout", type=Options.T_INT, default="60", required=False, multi=False, hide=False, choice=None,
95
95
  discription_ja="SAML認証が完了するまでのタイムアウト時間を指定します。",
96
96
  discription_en="Specify the timeout period before SAML authentication completes."),
97
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=True, choice=None,
97
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=False, multi=False, hide=True, choice=None,
98
98
  discription_ja=f"省略した時は f`$HONE/.{self.ver.__appid__}` を使用します。",
99
99
  discription_en=f"When omitted, f`$HONE/.{self.ver.__appid__}` is used."),
100
100
  dict(opt="svcert_no_verify", type=Options.T_BOOL, default=False, required=False, multi=False, hide=True, choice=[False, True],
@@ -36,7 +36,7 @@ class EdgeStart(feature.UnsupportEdgeFeature):
36
36
  discription_ja="端末モードを起動します。",
37
37
  discription_en="Start Edge mode.",
38
38
  choice=[
39
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=True, multi=False, hide=True, choice=None,
39
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=True, multi=False, hide=True, choice=None,
40
40
  discription_ja=f"省略した時は f`$HONE/.{self.ver.__appid__}` を使用します。",
41
41
  discription_en=f"When omitted, f`$HONE/.{self.ver.__appid__}` is used."),
42
42
  ]
@@ -1,13 +1,10 @@
1
- from cmdbox.app import common, feature, web
2
- from cmdbox.app.options import Options
3
- from pathlib import Path
1
+ from cmdbox.app.features.cli import cmdbox_web_start
4
2
  from typing import Dict, Any, Tuple, List, Union
5
3
  import argparse
6
4
  import logging
7
- import multiprocessing
8
5
 
9
6
 
10
- class GuiStart(feature.UnsupportEdgeFeature):
7
+ class GuiStart(cmdbox_web_start.WebStart):
11
8
  def get_mode(self) -> Union[str, List[str]]:
12
9
  """
13
10
  この機能のモードを返します
@@ -17,15 +14,6 @@ class GuiStart(feature.UnsupportEdgeFeature):
17
14
  """
18
15
  return 'gui'
19
16
 
20
- def get_cmd(self):
21
- """
22
- この機能のコマンドを返します
23
-
24
- Returns:
25
- str: コマンド
26
- """
27
- return 'start'
28
-
29
17
  def get_option(self):
30
18
  """
31
19
  この機能のオプションを返します
@@ -33,103 +21,11 @@ class GuiStart(feature.UnsupportEdgeFeature):
33
21
  Returns:
34
22
  Dict[str, Any]: オプション
35
23
  """
36
- return dict(
37
- use_redis=self.USE_REDIS_MEIGHT, nouse_webmode=True,
38
- discription_ja="GUIモードを起動します。",
39
- discription_en="Start GUI mode.",
40
- choice=[
41
- dict(opt="host", type=Options.T_STR, default=self.default_host, required=True, multi=False, hide=True, choice=None, web="mask",
42
- discription_ja="Redisサーバーのサービスホストを指定します。",
43
- discription_en="Specify the service host of the Redis server."),
44
- dict(opt="port", type=Options.T_INT, default=self.default_port, required=True, multi=False, hide=True, choice=None, web="mask",
45
- discription_ja="Redisサーバーのサービスポートを指定します。",
46
- discription_en="Specify the service port of the Redis server."),
47
- dict(opt="password", type=Options.T_STR, default=self.default_pass, required=True, multi=False, hide=True, choice=None, web="mask",
48
- discription_ja="Redisサーバーのアクセスパスワード(任意)を指定します。省略時は `password` を使用します。",
49
- discription_en="Specify the access password of the Redis server (optional). If omitted, `password` is used."),
50
- dict(opt="svname", type=Options.T_STR, default=self.default_svname, required=True, multi=False, hide=True, choice=None, web="readonly",
51
- discription_ja="サーバーのサービス名を指定します。省略時は `server` を使用します。",
52
- discription_en="Specify the service name of the inference server. If omitted, `server` is used."),
53
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=False, choice=None,
54
- discription_ja="省略した時は f`$HONE/.{version.__appid__}` を使用します。",
55
- discription_en="When omitted, f`$HONE/.{version.__appid__}` is used."),
56
- dict(opt="allow_host", type=Options.T_STR, default="0.0.0.0", required=False, multi=False, hide=False, choice=None,
57
- discription_ja="省略した時は `0.0.0.0` を使用します。",
58
- discription_en="If omitted, `0.0.0.0` is used."),
59
- dict(opt="listen_port", type=Options.T_INT, default="8081", required=False, multi=False, hide=False, choice=None,
60
- discription_ja="省略した時は `8081` を使用します。",
61
- discription_en="If omitted, `8081` is used."),
62
- dict(opt="ssl_listen_port", type=Options.T_INT, default="8443", required=False, multi=False, hide=False, choice=None,
63
- discription_ja="省略した時は `8443` を使用します。",
64
- discription_en="If omitted, `8443` is used."),
65
- dict(opt="ssl_cert", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None,
66
- discription_ja="SSLサーバー証明書ファイルを指定します。",
67
- discription_en="Specify the SSL server certificate file."),
68
- dict(opt="ssl_key", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None,
69
- discription_ja="SSLサーバー秘密鍵ファイルを指定します。",
70
- discription_en="Specify the SSL server private key file."),
71
- dict(opt="ssl_keypass", type=Options.T_STR, default=None, required=False, multi=False, hide=True, choice=None,
72
- discription_ja="SSLサーバー秘密鍵ファイルの複合化パスワードを指定します。",
73
- discription_en="Specify the composite password for the SSL server private key file."),
74
- dict(opt="ssl_ca_certs", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None,
75
- discription_ja="SSLサーバーCA証明書ファイルを指定します。",
76
- discription_en="Specify the SSL server CA certificate file."),
77
- dict(opt="signin_file", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None,
78
- discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
79
- discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
80
- dict(opt="session_domain", type=Options.T_STR, default=None, required=False, multi=False, hide=True, choice=None,
81
- discription_ja="サインインしたユーザーのセッションが有効なドメインを指定します。",
82
- discription_en="Specify the domain for which the signed-in user's session is valid."),
83
- dict(opt="session_path", type=Options.T_STR, default="/", required=False, multi=False, hide=True, choice=None,
84
- discription_ja="サインインしたユーザーのセッションが有効なパスを指定します。",
85
- discription_en="Specify the session timeout in seconds for signed-in users."),
86
- dict(opt="session_secure", type=Options.T_BOOL, default=False, required=False, multi=False, hide=True, choice=[True, False],
87
- discription_ja="サインインしたユーザーのセッションにSecureフラグを設定します。",
88
- discription_en="Set the Secure flag for the signed-in user's session."),
89
- dict(opt="session_timeout", type=Options.T_INT, default="900", required=False, multi=False, hide=True, choice=None,
90
- discription_ja="サインインしたユーザーのセッションタイムアウトの時間を秒で指定します。",
91
- discription_en="Specify the session timeout in seconds for signed-in users."),
92
- dict(opt="guvicorn_workers", type=Options.T_INT, default=multiprocessing.cpu_count()*2, required=False, multi=False, hide=True, choice=None,
93
- discription_ja="guvicornワーカー数を指定します。Linux環境でのみ有効です。-1又は未指定の場合はCPU数の2倍を使用します。",
94
- discription_en="Specifies the number of guvicorn workers, valid only in Linux environment. If -1 or unspecified, twice the number of CPUs is used."),
95
- dict(opt="guvicorn_timeout", type=Options.T_INT, default=30, required=False, multi=False, hide=True, choice=None,
96
- discription_ja="guvicornワーカーのタイムアウトの時間を秒で指定します。",
97
- discription_en="Specify the timeout duration of the guvicorn worker in seconds."),
98
- dict(opt="client_only", type=Options.T_BOOL, default=False, required=False, multi=False, hide=True, choice=[True, False],
99
- discription_ja="サーバーへの接続を行わないようにします。",
100
- discription_en="Do not make connections to the server."),
101
- dict(opt="outputs_key", type=Options.T_STR, default=None, required=False, multi=True, hide=False, choice=None,
102
- discription_ja="showimg及びwebcap画面で表示する項目を指定します。省略した場合は全ての項目を表示します。",
103
- discription_en="Specify items to be displayed on the showimg and webcap screens. If omitted, all items are displayed."),
104
- dict(opt="doc_root", type=Options.T_DIR, default=None, required=False, multi=False, hide=False, choice=None,
105
- discription_ja="カスタムファイルのドキュメントルート. フォルダ指定のカスタムファイルのパスから、doc_rootのパスを除去したパスでURLマッピングします。",
106
- discription_en="Document root for custom files. URL mapping from the path of a folder-specified custom file with the path of doc_root removed."),
107
- dict(opt="gui_html", type=Options.T_FILE, default=None, required=False, multi=False, hide=False, choice=None,
108
- discription_ja="`gui.html` を指定します。省略時はcmdbox内蔵のHTMLファイルを使用します。",
109
- discription_en="Specify `gui.html`. If omitted, the cmdbox built-in HTML file is used."),
110
- dict(opt="filer_html", type=Options.T_FILE, default=None, required=False, multi=False, hide=False, choice=None,
111
- discription_ja="`filer.html` を指定します。省略時はcmdbox内蔵のHTMLファイルを使用します。",
112
- discription_en="Specify `filer.html`. If omitted, the cmdbox built-in HTML file is used."),
113
- dict(opt="result_html", type=Options.T_FILE, default=None, required=False, multi=False, hide=False, choice=None,
114
- discription_ja="`result.html` を指定します。省略時はcmdbox内蔵のHTMLファイルを使用します。",
115
- discription_en="Specify `result.html`. If omitted, the cmdbox built-in HTML file is used."),
116
- dict(opt="users_html", type=Options.T_FILE, default=None, required=False, multi=False, hide=False, choice=None,
117
- discription_ja="`users.html` を指定します。省略時はcmdbox内蔵のHTMLファイルを使用します。",
118
- discription_en="Specify `users.html`. If omitted, the cmdbox built-in HTML file is used."),
119
- dict(opt="assets", type=Options.T_FILE, default=None, required=False, multi=True, hide=False, choice=None,
120
- discription_ja="htmlファイルを使用する場合に必要なアセットファイルを指定します。",
121
- discription_en="Specify the asset file required when using html files."),
122
- dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
123
- discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
124
- discription_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
125
- dict(opt="signin_html", type=Options.T_FILE, default=None, required=False, multi=False, hide=False, choice=None,
126
- discription_ja="`signin.html` を指定します。省略時はcmdbox内蔵のHTMLファイルを使用します。",
127
- discription_en="Specify `signin.html`. If omitted, the cmdbox built-in HTML file is used."),
128
- dict(opt="capture_maxsize", type=Options.T_INT, default=self.DEFAULT_CAPTURE_MAXSIZE, required=False, multi=False, hide=True, choice=None,
129
- discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力の最大キャプチャーサイズを指定します。",
130
- discription_en="Available only in GUI mode. Specifies the maximum capture size of standard output when executing commands."),
131
- ]
132
- )
24
+ opt = super().get_option()
25
+ opt['use_agent'] = False
26
+ opt['discription_ja'] = "GUIモードを起動します。"
27
+ opt['discription_en'] = "Start GUI mode."
28
+ return opt
133
29
 
134
30
  def apprun(self, logger:logging.Logger, args:argparse.Namespace, tm:float, pf:List[Dict[str, float]]=[]) -> Tuple[int, Dict[str, Any], Any]:
135
31
  """
@@ -144,24 +40,5 @@ class GuiStart(feature.UnsupportEdgeFeature):
144
40
  Returns:
145
41
  Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
146
42
  """
147
- if args.data is None:
148
- msg = dict(warn=f"Please specify the --data option.")
149
- common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
150
- return 1, msg, None
151
-
152
- ssl_cert = None if args.ssl_cert is None else Path(args.ssl_cert)
153
- ssl_key = None if args.ssl_key is None else Path(args.ssl_key)
154
- ssl_ca_certs = None if args.ssl_ca_certs is None else Path(args.ssl_ca_certs)
155
- w = web.Web(logger, Path(args.data), appcls=self.appcls, ver=self.ver,
156
- redis_host=args.host, redis_port=args.port, redis_password=args.password, svname=args.svname,
157
- client_only=args.client_only, doc_root=args.doc_root, gui_html=args.gui_html, filer_html=args.filer_html,
158
- result_html=args.result_html, users_html=args.users_html,
159
- assets=args.assets, signin_html=args.signin_html, signin_file=args.signin_file, gui_mode=True)
160
- w.start(args.allow_host, args.listen_port, ssl_listen_port=args.ssl_listen_port,
161
- ssl_cert=ssl_cert, ssl_key=ssl_key, ssl_keypass=args.ssl_keypass, ssl_ca_certs=ssl_ca_certs,
162
- session_domain=args.session_domain, session_path=args.session_path,
163
- session_secure=args.session_secure, session_timeout=args.session_timeout,
164
- outputs_key=args.outputs_key)
165
- msg = dict(success="gui complate.")
166
- common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
167
- return 0, msg, None
43
+ args.gui_mode = True
44
+ return super().apprun(logger, args, tm, pf)
@@ -1,6 +1,4 @@
1
- from cmdbox.app import common
2
1
  from cmdbox.app.features.cli import cmdbox_web_stop
3
- from cmdbox.app.options import Options
4
2
  from typing import List, Union
5
3
 
6
4
 
@@ -30,22 +28,7 @@ class GuiStop(cmdbox_web_stop.WebStop):
30
28
  Returns:
31
29
  Dict[str, Any]: オプション
32
30
  """
33
- return dict(
34
- use_redis=self.USE_REDIS_FALSE, nouse_webmode=True,
35
- discription_ja="GUIモードを停止します。",
36
- discription_en="Stop GUI mode.",
37
- choice=[
38
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=False, choice=None,
39
- discription_ja="省略した時は f`$HONE/.{version.__appid__}` を使用します。",
40
- discription_en="When omitted, f`$HONE/.{version.__appid__}` is used."),
41
- dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
42
- discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
43
- discription_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
44
- dict(opt="capture_stdout", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
45
- discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をキャプチャーし、実行結果画面に表示します。",
46
- discription_en="Available only in GUI mode. Captures standard output during command execution and displays it on the execution result screen."),
47
- dict(opt="capture_maxsize", type=Options.T_INT, default=self.DEFAULT_CAPTURE_MAXSIZE, required=False, multi=False, hide=True, choice=None,
48
- discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力の最大キャプチャーサイズを指定します。",
49
- discription_en="Available only in GUI mode. Specifies the maximum capture size of standard output when executing commands."),
50
- ]
51
- )
31
+ opt = super().get_option()
32
+ opt['discription_ja'] = "GUIモードを停止します。"
33
+ opt['discription_en'] = "Stop GUI mode."
34
+ return opt
@@ -49,7 +49,7 @@ class ServerStart(feature.OneshotNotifyEdgeFeature):
49
49
  dict(opt="svname", type=Options.T_STR, default=self.default_svname, required=True, multi=False, hide=True, choice=None, web="readonly",
50
50
  discription_ja="サーバーのサービス名を指定します。省略時は `server` を使用します。",
51
51
  discription_en="Specify the service name of the inference server. If omitted, `server` is used."),
52
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=False, choice=None,
52
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=False, multi=False, hide=False, choice=None,
53
53
  discription_ja=f"省略した時は `$HONE/.{self.ver.__appid__}` を使用します。",
54
54
  discription_en=f"When omitted, `$HONE/.{self.ver.__appid__}` is used."),
55
55
  dict(opt="retry_count", type=Options.T_INT, default=20, required=False, multi=False, hide=True, choice=None,
@@ -49,7 +49,7 @@ class WebApikeyAdd(feature.UnsupportEdgeFeature):
49
49
  dict(opt="svname", type=Options.T_STR, default=self.default_svname, required=True, multi=False, hide=True, choice=None, web="readonly",
50
50
  discription_ja="サーバーのサービス名を指定します。省略時は `server` を使用します。",
51
51
  discription_en="Specify the service name of the inference server. If omitted, `server` is used."),
52
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=False, choice=None,
52
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=False, multi=False, hide=False, choice=None,
53
53
  discription_ja=f"省略した時は `$HONE/.{self.ver.__appid__}` を使用します。",
54
54
  discription_en=f"When omitted, `$HONE/.{self.ver.__appid__}` is used."),
55
55
  dict(opt="user_name", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
@@ -49,7 +49,7 @@ class WebApikeyDel(feature.UnsupportEdgeFeature):
49
49
  dict(opt="svname", type=Options.T_STR, default=self.default_svname, required=True, multi=False, hide=True, choice=None, web="readonly",
50
50
  discription_ja="サーバーのサービス名を指定します。省略時は `server` を使用します。",
51
51
  discription_en="Specify the service name of the inference server. If omitted, `server` is used."),
52
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=False, choice=None,
52
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=False, multi=False, hide=False, choice=None,
53
53
  discription_ja=f"省略した時は `$HONE/.{self.ver.__appid__}` を使用します。",
54
54
  discription_en=f"When omitted, `$HONE/.{self.ver.__appid__}` is used."),
55
55
  dict(opt="user_name", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
@@ -65,9 +65,6 @@ class WebGenpass(feature.OneshotResultEdgeFeature):
65
65
  dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
66
66
  discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
67
67
  discription_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
68
- dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
69
- discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
70
- discription_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
71
68
  dict(opt="capture_stdout", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
72
69
  discription_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をキャプチャーし、実行結果画面に表示します。",
73
70
  discription_en="Available only in GUI mode. Captures standard output during command execution and displays it on the execution result screen."),
@@ -49,7 +49,7 @@ class WebGroupAdd(feature.UnsupportEdgeFeature):
49
49
  dict(opt="svname", type=Options.T_STR, default=self.default_svname, required=True, multi=False, hide=True, choice=None, web="readonly",
50
50
  discription_ja="サーバーのサービス名を指定します。省略時は `server` を使用します。",
51
51
  discription_en="Specify the service name of the inference server. If omitted, `server` is used."),
52
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=False, choice=None,
52
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=False, multi=False, hide=False, choice=None,
53
53
  discription_ja=f"省略した時は `$HONE/.{self.ver.__appid__}` を使用します。",
54
54
  discription_en=f"When omitted, `$HONE/.{self.ver.__appid__}` is used."),
55
55
  dict(opt="group_id", type=Options.T_INT, default=None, required=True, multi=False, hide=False, choice=None,
@@ -49,7 +49,7 @@ class WebGroupDel(feature.UnsupportEdgeFeature):
49
49
  dict(opt="svname", type=Options.T_STR, default=self.default_svname, required=True, multi=False, hide=True, choice=None, web="readonly",
50
50
  discription_ja="サーバーのサービス名を指定します。省略時は `server` を使用します。",
51
51
  discription_en="Specify the service name of the inference server. If omitted, `server` is used."),
52
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=False, choice=None,
52
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=False, multi=False, hide=False, choice=None,
53
53
  discription_ja=f"省略した時は `$HONE/.{self.ver.__appid__}` を使用します。",
54
54
  discription_en=f"When omitted, `$HONE/.{self.ver.__appid__}` is used."),
55
55
  dict(opt="group_id", type=Options.T_INT, default=None, required=True, multi=False, hide=False, choice=None,
@@ -49,7 +49,7 @@ class WebGroupEdit(feature.UnsupportEdgeFeature):
49
49
  dict(opt="svname", type=Options.T_STR, default=self.default_svname, required=True, multi=False, hide=True, choice=None, web="readonly",
50
50
  discription_ja="サーバーのサービス名を指定します。省略時は `server` を使用します。",
51
51
  discription_en="Specify the service name of the inference server. If omitted, `server` is used."),
52
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=False, choice=None,
52
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=False, multi=False, hide=False, choice=None,
53
53
  discription_ja=f"省略した時は `$HONE/.{self.ver.__appid__}` を使用します。",
54
54
  discription_en=f"When omitted, `$HONE/.{self.ver.__appid__}` is used."),
55
55
  dict(opt="group_id", type=Options.T_INT, default=None, required=True, multi=False, hide=False, choice=None,
@@ -49,7 +49,7 @@ class WebGroupList(feature.OneshotResultEdgeFeature):
49
49
  dict(opt="svname", type=Options.T_STR, default=self.default_svname, required=True, multi=False, hide=True, choice=None, web="readonly",
50
50
  discription_ja="サーバーのサービス名を指定します。省略時は `server` を使用します。",
51
51
  discription_en="Specify the service name of the inference server. If omitted, `server` is used."),
52
- dict(opt="data", type=Options.T_FILE, default=common.HOME_DIR / f".{self.ver.__appid__}", required=False, multi=False, hide=False, choice=None,
52
+ dict(opt="data", type=Options.T_FILE, default=self.default_data, required=False, multi=False, hide=False, choice=None,
53
53
  discription_ja=f"省略した時は `$HONE/.{self.ver.__appid__}` を使用します。",
54
54
  discription_en=f"When omitted, `$HONE/.{self.ver.__appid__}` is used."),
55
55
  dict(opt="group_name", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,