cmdbox 0.6.4.2__py3-none-any.whl → 0.6.6__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.
- cmdbox/app/app.py +7 -0
- cmdbox/app/client.py +384 -383
- cmdbox/app/common.py +85 -7
- cmdbox/app/commons/convert.py +3 -1
- cmdbox/app/edge.py +12 -12
- cmdbox/app/feature.py +1 -1
- cmdbox/app/features/cli/{cmdbox_vision_install.py → _cmdbox_vision_install.py} +2 -10
- cmdbox/app/features/cli/_cmdbox_vision_predict.py +487 -0
- cmdbox/app/features/cli/{cmdbox_vision_start.py → _cmdbox_vision_start.py} +5 -1
- cmdbox/app/features/cli/cmdbox_audit_createdb.py +1 -11
- cmdbox/app/features/cli/cmdbox_audit_delete.py +0 -9
- cmdbox/app/features/cli/cmdbox_audit_search.py +0 -9
- cmdbox/app/features/cli/cmdbox_audit_write.py +0 -9
- cmdbox/app/features/cli/cmdbox_cmd_list.py +3 -3
- cmdbox/app/features/cli/cmdbox_cmd_load.py +3 -3
- cmdbox/app/features/cli/cmdbox_excel_cell_details.py +436 -0
- cmdbox/app/features/cli/cmdbox_excel_cell_search.py +276 -0
- cmdbox/app/features/cli/cmdbox_excel_cell_values.py +258 -0
- cmdbox/app/features/cli/cmdbox_excel_sheet_list.py +159 -0
- cmdbox/app/features/cli/cmdbox_tts_install.py +4 -11
- cmdbox/app/features/cli/cmdbox_tts_say.py +2 -10
- cmdbox/app/features/cli/cmdbox_tts_start.py +0 -9
- cmdbox/app/features/cli/cmdbox_tts_stop.py +0 -9
- cmdbox/app/features/cli/cmdbox_web_apikey_add.py +3 -3
- cmdbox/app/features/cli/cmdbox_web_apikey_del.py +3 -3
- cmdbox/app/features/cli/cmdbox_web_group_add.py +3 -3
- cmdbox/app/features/cli/cmdbox_web_group_del.py +3 -3
- cmdbox/app/features/cli/cmdbox_web_group_edit.py +3 -3
- cmdbox/app/features/cli/cmdbox_web_group_list.py +3 -3
- cmdbox/app/features/cli/cmdbox_web_start.py +10 -10
- cmdbox/app/features/cli/cmdbox_web_user_add.py +3 -3
- cmdbox/app/features/cli/cmdbox_web_user_del.py +3 -3
- cmdbox/app/features/cli/cmdbox_web_user_edit.py +3 -3
- cmdbox/app/features/cli/cmdbox_web_user_list.py +3 -3
- cmdbox/app/features/cli/excel_base.py +301 -0
- cmdbox/app/features/web/cmdbox_web_exec_cmd.py +12 -14
- cmdbox/app/filer.py +5 -2
- cmdbox/app/mcp.py +4 -3
- cmdbox/app/options.py +8 -0
- cmdbox/app/web.py +58 -39
- cmdbox/extensions/features.yml +3 -0
- cmdbox/extensions/sample_project/sample/app/features/cli/sample_server_time.py +0 -9
- cmdbox/licenses/LICENSE_Mako_1_3_10_MIT_License.txt +19 -0
- cmdbox/licenses/LICENSE_alembic_1_16_5_UNKNOWN.txt +19 -0
- cmdbox/licenses/{LICENSE_cffi_1_17_1_MIT_License.txt → LICENSE_cffi_2_0_0_UNKNOWN.txt} +2 -5
- cmdbox/licenses/LICENSE_debugpy_1_8_17_MIT_License.txt +24 -0
- cmdbox/licenses/LICENSE_et_xmlfile_2_0_0_MIT_License.txt +298 -0
- cmdbox/licenses/LICENSE_fastuuid_0_13_5_BSD_License.txt +29 -0
- cmdbox/licenses/LICENSE_google-cloud-monitoring_2_27_2_Apache_Software_License.txt +202 -0
- cmdbox/licenses/LICENSE_google-cloud-spanner_3_58_0_Apache_Software_License.txt +202 -0
- cmdbox/licenses/LICENSE_google-genai_1_40_0_Apache_Software_License.txt +202 -0
- cmdbox/licenses/LICENSE_grpc-interceptor_0_15_4_MIT_License.txt +21 -0
- cmdbox/licenses/{LICENSE_lazy-object-proxy_1_11_0_BSD_License.txt → LICENSE_lazy-object-proxy_1_12_0_UNKNOWN.txt} +1 -1
- cmdbox/licenses/LICENSE_openpyxl_3_1_5_MIT_License.txt +23 -0
- cmdbox/licenses/LICENSE_opentelemetry-exporter-otlp-proto-common_1_37_0_UNKNOWN.txt +201 -0
- cmdbox/licenses/LICENSE_opentelemetry-exporter-otlp-proto-http_1_37_0_UNKNOWN.txt +201 -0
- cmdbox/licenses/LICENSE_opentelemetry-proto_1_37_0_UNKNOWN.txt +201 -0
- cmdbox/licenses/LICENSE_opentelemetry-sdk_1_37_0_UNKNOWN.txt +201 -0
- cmdbox/licenses/LICENSE_opentelemetry-semantic-conventions_0_58b0_UNKNOWN.txt +201 -0
- cmdbox/licenses/LICENSE_sqlalchemy-spanner_1_16_0_Apache_Software_License.txt +202 -0
- cmdbox/licenses/LICENSE_sqlparse_0_5_3_BSD_License.txt +25 -0
- cmdbox/licenses/{LICENSE_uvicorn_0_35_0_BSD_License.txt → LICENSE_uvicorn_0_37_0_BSD_License.txt} +2 -1
- cmdbox/licenses/files.txt +82 -71
- cmdbox/version.py +2 -2
- cmdbox/web/assets/cmdbox/svgicon.js +9 -0
- {cmdbox-0.6.4.2.dist-info → cmdbox-0.6.6.dist-info}/METADATA +29 -29
- {cmdbox-0.6.4.2.dist-info → cmdbox-0.6.6.dist-info}/RECORD +133 -117
- cmdbox/app/features/cli/cmdbox_vision_predict.py +0 -192
- cmdbox/licenses/LICENSE_APScheduler_3_11_0_MIT_License.txt +0 -19
- cmdbox/licenses/LICENSE_backoff_2_2_1_MIT_License.txt +0 -21
- cmdbox/licenses/LICENSE_fastapi-sso_0_18_0_MIT_License.txt +0 -21
- cmdbox/licenses/LICENSE_litellm-enterprise_0_1_19_UNKNOWN.txt +0 -37
- cmdbox/licenses/LICENSE_oauthlib_3_3_1_BSD-3-Clause.txt +0 -27
- cmdbox/licenses/LICENSE_orjson_3_11_1_Apache_Software_License-MIT_License.txt +0 -201
- /cmdbox/licenses/{LICENSE_Authlib_1_6_1_BSD_License.txt → LICENSE_Authlib_1_6_5_BSD_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_MarkupSafe_3_0_2_BSD_License.txt → LICENSE_MarkupSafe_3_0_3_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_PyYAML_6_0_2_MIT_License.txt → LICENSE_PyYAML_6_0_3_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_anyio_4_10_0_UNKNOWN.txt → LICENSE_anyio_4_11_0_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_cachetools_5_5_2_MIT_License.txt → LICENSE_cachetools_6_2_0_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_click_8_2_1_UNKNOWN.txt → LICENSE_click_8_3_0_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_cryptography_45_0_6_Apache-2_0_OR_BSD-3-Clause.txt → LICENSE_cryptography_46_0_2_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_cyclopts_3_22_5_Apache_Software_License.txt → LICENSE_cyclopts_3_24_0_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_dnspython_2_7_0_ISC_License-ISCL.txt → LICENSE_dnspython_2_8_0_ISC_License-ISCL.txt} +0 -0
- /cmdbox/licenses/{LICENSE_email_validator_2_2_0_The_Unlicense-Unlicense.txt → LICENSE_email-validator_2_3_0_The_Unlicense-Unlicense.txt} +0 -0
- /cmdbox/licenses/{LICENSE_fastapi_0_116_1_MIT_License.txt → LICENSE_fastapi_0_118_0_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_fastmcp_2_11_3_Apache_Software_License.txt → LICENSE_fastmcp_2_12_4_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_filelock_3_18_0_The_Unlicense-Unlicense.txt → LICENSE_filelock_3_19_1_The_Unlicense-Unlicense.txt} +0 -0
- /cmdbox/licenses/{LICENSE_fsspec_2025_7_0_BSD_License.txt → LICENSE_fsspec_2025_9_0_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_gevent_25_5_1_MIT.txt → LICENSE_gevent_25_9_1_MIT.txt} +0 -0
- /cmdbox/licenses/{LICENSE_google-adk_1_10_0_Apache_Software_License.txt → LICENSE_google-adk_1_15_1_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_google-api-core_2_25_1_Apache_Software_License.txt → LICENSE_google-api-core_2_25_2_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_google-api-python-client_2_178_0_Apache_Software_License.txt → LICENSE_google-api-python-client_2_184_0_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_google-auth_2_40_3_Apache_Software_License.txt → LICENSE_google-auth_2_41_1_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_google-cloud-aiplatform_1_108_0_Apache_2_0.txt → LICENSE_google-cloud-aiplatform_1_119_0_Apache_2_0.txt} +0 -0
- /cmdbox/licenses/{LICENSE_google-cloud-bigquery_3_35_1_Apache_Software_License.txt → LICENSE_google-cloud-bigquery_3_38_0_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_google-genai_1_29_0_Apache_Software_License.txt → LICENSE_google-cloud-bigtable_2_32_0_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_grpcio-status_1_74_0_Apache_Software_License.txt → LICENSE_grpcio-status_1_75_1_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_grpcio_1_74_0_Apache_Software_License.txt → LICENSE_grpcio_1_75_1_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_httplib2_0_22_0_MIT_License.txt → LICENSE_httplib2_0_31_0_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_huggingface-hub_0_34_4_Apache_Software_License.txt → LICENSE_huggingface-hub_0_35_3_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_jaraco_functools_4_2_1_UNKNOWN.txt → LICENSE_jaraco_functools_4_3_0_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_jiter_0_10_0_MIT_License.txt → LICENSE_jiter_0_11_0_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_jsonschema-specifications_2025_4_1_UNKNOWN.txt → LICENSE_jsonschema-specifications_2025_9_1_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_jsonschema_4_25_0_UNKNOWN.txt → LICENSE_jsonschema_4_25_1_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_litellm_1_75_5_post1_MIT_License.txt → LICENSE_litellm_1_77_5_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_mcp_1_12_4_MIT_License.txt → LICENSE_mcp_1_16_0_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_more-itertools_10_7_0_MIT_License.txt → LICENSE_more-itertools_10_8_0_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_numpy_2_3_2_BSD_License.txt → LICENSE_numpy_2_3_3_BSD_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_openai_1_99_9_Apache_Software_License.txt → LICENSE_openai_2_1_0_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_opentelemetry-api_1_36_0_UNKNOWN.txt → LICENSE_opentelemetry-api_1_37_0_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_opentelemetry-sdk_1_36_0_UNKNOWN.txt → LICENSE_opentelemetry-exporter-gcp-logging_1_9_0a0_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_opentelemetry-semantic-conventions_0_57b0_UNKNOWN.txt → LICENSE_opentelemetry-exporter-gcp-monitoring_1_9_0a0_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_prompt_toolkit_3_0_51_BSD_License.txt → LICENSE_prompt_toolkit_3_0_52_BSD_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_protobuf_6_31_1_3-Clause_BSD_License.txt → LICENSE_protobuf_6_32_1_3-Clause_BSD_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_psycopg-binary_3_2_9_GNU_Lesser_General_Public_License_v3-LGPLv3.txt → LICENSE_psycopg-binary_3_2_10_GNU_Lesser_General_Public_License_v3-LGPLv3.txt} +0 -0
- /cmdbox/licenses/{LICENSE_psycopg_3_2_9_GNU_Lesser_General_Public_License_v3-LGPLv3.txt → LICENSE_psycopg_3_2_10_GNU_Lesser_General_Public_License_v3-LGPLv3.txt} +0 -0
- /cmdbox/licenses/{LICENSE_pycparser_2_22_BSD_License.txt → LICENSE_pycparser_2_23_BSD_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_pydantic-settings_2_10_1_MIT_License.txt → LICENSE_pydantic-settings_2_11_0_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_pydantic_2_11_7_MIT_License.txt → LICENSE_pydantic_2_11_10_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_pyparsing_3_2_3_MIT_License.txt → LICENSE_pyparsing_3_2_5_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_pyperclip_1_9_0_BSD_License.txt → LICENSE_pyperclip_1_11_0_BSD_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_questionary_2_1_0_MIT_License.txt → LICENSE_questionary_2_1_1_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_regex_2025_7_34_UNKNOWN.txt → LICENSE_regex_2025_9_18_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_requests_2_32_4_Apache_Software_License.txt → LICENSE_requests_2_32_5_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_rpds-py_0_27_0_UNKNOWN.txt → LICENSE_rpds-py_0_27_1_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_shapely_2_1_1_BSD_License.txt → LICENSE_shapely_2_1_2_BSD_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_sphinx-sitemap_2_7_2_UNKNOWN.txt → LICENSE_sphinx-sitemap_2_8_0_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_starlette_0_47_2_BSD_License.txt → LICENSE_starlette_0_48_0_BSD_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_tenacity_9_1_2_Apache_Software_License.txt → LICENSE_tenacity_8_5_0_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_tokenizers_0_21_4_Apache_Software_License.txt → LICENSE_tokenizers_0_22_1_Apache_Software_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_twine_6_1_0_Apache_Software_License.txt → LICENSE_twine_6_2_0_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_typing-inspection_0_4_1_UNKNOWN.txt → LICENSE_typing-inspection_0_4_2_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_typing_extensions_4_14_1_UNKNOWN.txt → LICENSE_typing_extensions_4_15_0_UNKNOWN.txt} +0 -0
- /cmdbox/licenses/{LICENSE_wcwidth_0_2_13_MIT_License.txt → LICENSE_wcwidth_0_2_14_MIT_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_zope_event_5_1_1_Zope_Public_License.txt → LICENSE_zope_event_6_0_Zope_Public_License.txt} +0 -0
- /cmdbox/licenses/{LICENSE_zope_interface_7_2_Zope_Public_License.txt → LICENSE_zope_interface_8_0_1_Zope_Public_License.txt} +0 -0
- {cmdbox-0.6.4.2.dist-info → cmdbox-0.6.6.dist-info}/WHEEL +0 -0
- {cmdbox-0.6.4.2.dist-info → cmdbox-0.6.6.dist-info}/entry_points.txt +0 -0
- {cmdbox-0.6.4.2.dist-info → cmdbox-0.6.6.dist-info}/licenses/LICENSE +0 -0
- {cmdbox-0.6.4.2.dist-info → cmdbox-0.6.6.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
from cmdbox.app import common, filer
|
|
2
|
+
from cmdbox.app.commons import convert, redis_client
|
|
3
|
+
from cmdbox.app.features.cli import excel_base
|
|
4
|
+
from cmdbox.app.options import Options
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import Dict, Any, List, Tuple
|
|
7
|
+
import argparse
|
|
8
|
+
import logging
|
|
9
|
+
import json
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ExcelSheetList(excel_base.ExcelBase):
|
|
13
|
+
def get_cmd(self):
|
|
14
|
+
"""
|
|
15
|
+
この機能のコマンドを返します
|
|
16
|
+
|
|
17
|
+
Returns:
|
|
18
|
+
str: コマンド
|
|
19
|
+
"""
|
|
20
|
+
return 'sheet_list'
|
|
21
|
+
|
|
22
|
+
def get_option(self):
|
|
23
|
+
"""
|
|
24
|
+
この機能のオプションを返します
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
Dict[str, Any]: オプション
|
|
28
|
+
"""
|
|
29
|
+
opt = super().get_option()
|
|
30
|
+
opt['description_ja'] = "データフォルダ配下のExcelファイルのシート一覧を取得します。"
|
|
31
|
+
opt['description_en'] = "Retrieves the list of sheets in an Excel file located within the data folder."
|
|
32
|
+
return opt
|
|
33
|
+
|
|
34
|
+
def chk_args(self, args:argparse.Namespace, tm:float, pf:List[Dict[str, float]]=[]) -> Tuple[bool, str, Any]:
|
|
35
|
+
"""
|
|
36
|
+
引数のチェックを行います
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
args (argparse.Namespace): 引数
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
Tuple[bool, str]: チェック結果, メッセージ
|
|
43
|
+
"""
|
|
44
|
+
if args.svname is None:
|
|
45
|
+
msg = dict(warn=f"Please specify the --svname option.")
|
|
46
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
47
|
+
return self.RESP_WARN, msg, None
|
|
48
|
+
if args.scope is None:
|
|
49
|
+
msg = dict(warn=f"Please specify the --scope option.")
|
|
50
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
51
|
+
return self.RESP_WARN, msg, None
|
|
52
|
+
if args.svpath is None:
|
|
53
|
+
msg = dict(warn=f"Please specify the --svpath option.")
|
|
54
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
55
|
+
return self.RESP_WARN, msg, None
|
|
56
|
+
return self.RESP_SUCCESS, None, None
|
|
57
|
+
|
|
58
|
+
def excel_proc(self, abspath:Path, args:argparse.Namespace, logger:logging.Logger, tm:float, pf:List[Dict[str, float]]=[]) -> Dict[str, Any]:
|
|
59
|
+
"""
|
|
60
|
+
Excel処理のベース
|
|
61
|
+
|
|
62
|
+
Args:
|
|
63
|
+
abspath (Path): Excelファイルの絶対パス
|
|
64
|
+
args (argparse.Namespace): 引数
|
|
65
|
+
logger (logging.Logger): ロガー
|
|
66
|
+
tm (float): 処理時間
|
|
67
|
+
pf (List[Dict[str, float]]): パフォーマンス情報
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
Dict[str, Any]: 結果
|
|
71
|
+
"""
|
|
72
|
+
res_json = self.sheet_list(abspath, logger)
|
|
73
|
+
return res_json
|
|
74
|
+
|
|
75
|
+
def get_svparam(self, args:argparse.Namespace) -> List[str]:
|
|
76
|
+
"""
|
|
77
|
+
サーバーに送信するパラメーターを返します
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
args (argparse.Namespace): 引数
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
List[str]: サーバーに送信するパラメーター
|
|
84
|
+
"""
|
|
85
|
+
ret = [convert.str2b64str(str(args.svpath))]
|
|
86
|
+
return ret
|
|
87
|
+
|
|
88
|
+
def is_cluster_redirect(self):
|
|
89
|
+
"""
|
|
90
|
+
クラスター宛のメッセージの場合、メッセージを転送するかどうかを返します
|
|
91
|
+
|
|
92
|
+
Returns:
|
|
93
|
+
bool: メッセージを転送する場合はTrue
|
|
94
|
+
"""
|
|
95
|
+
return False
|
|
96
|
+
|
|
97
|
+
def svrun(self, data_dir:Path, logger:logging.Logger, redis_cli:redis_client.RedisClient, msg:List[str],
|
|
98
|
+
sessions:Dict[str, Dict[str, Any]]) -> int:
|
|
99
|
+
"""
|
|
100
|
+
この機能のサーバー側の実行を行います
|
|
101
|
+
|
|
102
|
+
Args:
|
|
103
|
+
data_dir (Path): データディレクトリ
|
|
104
|
+
logger (logging.Logger): ロガー
|
|
105
|
+
redis_cli (redis_client.RedisClient): Redisクライアント
|
|
106
|
+
msg (List[str]): 受信メッセージ
|
|
107
|
+
sessions (Dict[str, Dict[str, Any]]): セッション情報
|
|
108
|
+
|
|
109
|
+
Returns:
|
|
110
|
+
int: 終了コード
|
|
111
|
+
"""
|
|
112
|
+
svpath = convert.b64str2str(msg[2])
|
|
113
|
+
|
|
114
|
+
try:
|
|
115
|
+
f = filer.Filer(data_dir, logger)
|
|
116
|
+
chk, abspath, res = f._file_exists(svpath)
|
|
117
|
+
if not chk:
|
|
118
|
+
logger.warning(f"File not found. {svpath}")
|
|
119
|
+
redis_cli.rpush(msg[1], res)
|
|
120
|
+
return self.RESP_WARN
|
|
121
|
+
res = self.sheet_list(abspath, logger)
|
|
122
|
+
redis_cli.rpush(msg[1], res)
|
|
123
|
+
except Exception as e:
|
|
124
|
+
logger.warning(f"Failed to sheet list: {e}", exc_info=True)
|
|
125
|
+
redis_cli.rpush(msg[1], dict(warn=f"Failed to sheet list: {e}"))
|
|
126
|
+
return self.RESP_WARN
|
|
127
|
+
return self.RESP_SUCCESS
|
|
128
|
+
|
|
129
|
+
def sheet_list(self, filepath:str, logger:logging.Logger) -> Dict[str, Any]:
|
|
130
|
+
"""
|
|
131
|
+
指定したワークブックのシート一覧を取得します。
|
|
132
|
+
|
|
133
|
+
Args:
|
|
134
|
+
filepath (str): ワークブックのパス
|
|
135
|
+
logger (logging.Logger): ロガー
|
|
136
|
+
Returns:
|
|
137
|
+
dict: シートの情報
|
|
138
|
+
"""
|
|
139
|
+
wb:Workbook = None
|
|
140
|
+
try:
|
|
141
|
+
from openpyxl.cell import Cell
|
|
142
|
+
from openpyxl.workbook.workbook import Workbook
|
|
143
|
+
from openpyxl.worksheet.worksheet import Worksheet
|
|
144
|
+
import openpyxl
|
|
145
|
+
|
|
146
|
+
wb:Workbook = openpyxl.load_workbook(filename=filepath, read_only=True)
|
|
147
|
+
sheetinfo = {}
|
|
148
|
+
for sheet in wb.worksheets:
|
|
149
|
+
sheetinfo[sheet.title] = dict(max_row=sheet.max_row, max_column=sheet.max_column, sheet_state=sheet.sheet_state)
|
|
150
|
+
|
|
151
|
+
res = dict(success=sheetinfo)
|
|
152
|
+
return res
|
|
153
|
+
except Exception as e:
|
|
154
|
+
msg = dict(warn=f"Failed to sheet list: {e}")
|
|
155
|
+
logger.warning(f"Failed to sheet list: {e}", exc_info=True)
|
|
156
|
+
return msg
|
|
157
|
+
finally:
|
|
158
|
+
if wb is not None:
|
|
159
|
+
wb.close()
|
|
@@ -98,15 +98,6 @@ class TtsInstall(feature.UnsupportEdgeFeature):
|
|
|
98
98
|
description_en="Specify the wheel file for the TTS engine."),
|
|
99
99
|
]
|
|
100
100
|
)
|
|
101
|
-
|
|
102
|
-
def get_svcmd(self):
|
|
103
|
-
"""
|
|
104
|
-
この機能のサーバー側のコマンドを返します
|
|
105
|
-
|
|
106
|
-
Returns:
|
|
107
|
-
str: サーバー側のコマンド
|
|
108
|
-
"""
|
|
109
|
-
return 'tts_install'
|
|
110
101
|
|
|
111
102
|
def apprun(self, logger:logging.Logger, args:argparse.Namespace, tm:float, pf:List[Dict[str, float]]=[]) -> Tuple[int, Dict[str, Any], Any]:
|
|
112
103
|
"""
|
|
@@ -254,8 +245,9 @@ class TtsInstall(feature.UnsupportEdgeFeature):
|
|
|
254
245
|
_msg = f"Failed to download VoiceVox core: {responce.status_code} {responce.reason}. {downloader_url}"
|
|
255
246
|
logger.error(_msg, exc_info=True)
|
|
256
247
|
return dict(warn=_msg)
|
|
257
|
-
|
|
248
|
+
def _wd(f):
|
|
258
249
|
f.write(responce.content)
|
|
250
|
+
common.save_file(dlfile, _wd, mode='wb')
|
|
259
251
|
# ダウンローダーの実行権限を付与
|
|
260
252
|
if voicevox_os != 'windows':
|
|
261
253
|
dlfile.chmod(dlfile.stat().st_mode | 0o111)
|
|
@@ -296,8 +288,9 @@ class TtsInstall(feature.UnsupportEdgeFeature):
|
|
|
296
288
|
_msg = f"Failed to download VoiceVox whl: {responce.status_code} {responce.reason}. {whl_url}"
|
|
297
289
|
logger.error(_msg, exc_info=True)
|
|
298
290
|
return dict(warn=_msg)
|
|
299
|
-
|
|
291
|
+
def _ww(f):
|
|
300
292
|
f.write(responce.content)
|
|
293
|
+
common.save_file(voicevox_whl, _ww, mode='wb')
|
|
301
294
|
# whlファイルをpipでインストール
|
|
302
295
|
if logger.level == logging.DEBUG:
|
|
303
296
|
logger.debug(f"pip install {voicevox_whl}")
|
|
@@ -81,23 +81,15 @@ class TtsSay(cmdbox_tts_start.TtsStart):
|
|
|
81
81
|
if 'success' in ret and 'data' in ret['success']:
|
|
82
82
|
wav_b64 = ret['success']['data']
|
|
83
83
|
wav_data = convert.b64str2bytes(wav_b64)
|
|
84
|
-
|
|
84
|
+
def _w(f):
|
|
85
85
|
f.write(wav_data)
|
|
86
|
+
common.save_file(args.tts_output, _w, mode='wb')
|
|
86
87
|
del ret['success']['data'] # 音声データは削除
|
|
87
88
|
common.print_format(ret, False, tm, None, False, pf=pf)
|
|
88
89
|
if 'success' not in ret:
|
|
89
90
|
return self.RESP_WARN, ret, cl
|
|
90
91
|
return self.RESP_SUCCESS, ret, cl
|
|
91
92
|
|
|
92
|
-
def get_svcmd(self):
|
|
93
|
-
"""
|
|
94
|
-
この機能のサーバー側のコマンドを返します
|
|
95
|
-
|
|
96
|
-
Returns:
|
|
97
|
-
str: サーバー側のコマンド
|
|
98
|
-
"""
|
|
99
|
-
return 'tts_say'
|
|
100
|
-
|
|
101
93
|
def is_cluster_redirect(self):
|
|
102
94
|
"""
|
|
103
95
|
クラスター宛のメッセージの場合、メッセージを転送するかどうかを返します
|
|
@@ -190,15 +190,6 @@ class TtsStart(feature.UnsupportEdgeFeature):
|
|
|
190
190
|
description_en="Specify the model of the TTS engine to use."),
|
|
191
191
|
]
|
|
192
192
|
)
|
|
193
|
-
|
|
194
|
-
def get_svcmd(self):
|
|
195
|
-
"""
|
|
196
|
-
この機能のサーバー側のコマンドを返します
|
|
197
|
-
|
|
198
|
-
Returns:
|
|
199
|
-
str: サーバー側のコマンド
|
|
200
|
-
"""
|
|
201
|
-
return 'tts_start'
|
|
202
193
|
|
|
203
194
|
def apprun(self, logger:logging.Logger, args:argparse.Namespace, tm:float, pf:List[Dict[str, float]]=[]) -> Tuple[int, Dict[str, Any], Any]:
|
|
204
195
|
"""
|
|
@@ -28,15 +28,6 @@ class TtsStop(cmdbox_tts_start.TtsStart):
|
|
|
28
28
|
opt['description_en'] = "Stops the Text-to-Speech (TTS) engine."
|
|
29
29
|
return opt
|
|
30
30
|
|
|
31
|
-
def get_svcmd(self):
|
|
32
|
-
"""
|
|
33
|
-
この機能のサーバー側のコマンドを返します
|
|
34
|
-
|
|
35
|
-
Returns:
|
|
36
|
-
str: サーバー側のコマンド
|
|
37
|
-
"""
|
|
38
|
-
return 'tts_stop'
|
|
39
|
-
|
|
40
31
|
def svrun(self, data_dir:Path, logger:logging.Logger, redis_cli:redis_client.RedisClient, msg:List[str],
|
|
41
32
|
sessions:Dict[str, Dict[str, Any]]) -> int:
|
|
42
33
|
"""
|
|
@@ -43,9 +43,9 @@ class WebApikeyAdd(feature.UnsupportEdgeFeature):
|
|
|
43
43
|
dict(opt="apikey_name", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
|
|
44
44
|
description_ja="このユーザーのApiKey名を指定します。",
|
|
45
45
|
description_en="Specify the ApiKey name for this user."),
|
|
46
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
47
|
-
description_ja="
|
|
48
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
46
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=True, multi=False, hide=False, choice=None, fileio="in",
|
|
47
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
48
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
49
49
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
50
50
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
51
51
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|
|
@@ -43,9 +43,9 @@ class WebApikeyDel(feature.UnsupportEdgeFeature):
|
|
|
43
43
|
dict(opt="apikey_name", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
|
|
44
44
|
description_ja="このユーザーのApiKey名を指定します。",
|
|
45
45
|
description_en="Specify the ApiKey name for this user."),
|
|
46
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
47
|
-
description_ja="
|
|
48
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
46
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None, fileio="in",
|
|
47
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
48
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
49
49
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
50
50
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
51
51
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|
|
@@ -46,9 +46,9 @@ class WebGroupAdd(feature.UnsupportEdgeFeature):
|
|
|
46
46
|
dict(opt="group_parent", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
47
47
|
description_ja="親グループ名を指定します。",
|
|
48
48
|
description_en="Specifies the parent group name."),
|
|
49
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
50
|
-
description_ja="
|
|
51
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
49
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=True, multi=False, hide=False, choice=None, fileio="in",
|
|
50
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
51
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
52
52
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
53
53
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
54
54
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|
|
@@ -40,9 +40,9 @@ class WebGroupDel(feature.UnsupportEdgeFeature):
|
|
|
40
40
|
dict(opt="group_id", type=Options.T_INT, default=None, required=True, multi=False, hide=False, choice=None,
|
|
41
41
|
description_ja="グループIDを指定します。",
|
|
42
42
|
description_en="Specify the group ID. Do not duplicate other groups."),
|
|
43
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
44
|
-
description_ja="
|
|
45
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
43
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=True, multi=False, hide=False, choice=None, fileio="in",
|
|
44
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
45
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
46
46
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
47
47
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
48
48
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|
|
@@ -46,9 +46,9 @@ class WebGroupEdit(feature.UnsupportEdgeFeature):
|
|
|
46
46
|
dict(opt="group_parent", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
47
47
|
description_ja="親グループ名を指定します。",
|
|
48
48
|
description_en="Specifies the parent group name."),
|
|
49
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
50
|
-
description_ja="
|
|
51
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
49
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=True, multi=False, hide=False, choice=None, fileio="in",
|
|
50
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
51
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
52
52
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
53
53
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
54
54
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|
|
@@ -40,9 +40,9 @@ class WebGroupList(feature.UnsupportEdgeFeature):
|
|
|
40
40
|
dict(opt="group_name", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
41
41
|
description_ja="グループ名を指定して取得します。省略した時は全てのグループを取得します。",
|
|
42
42
|
description_en="Retrieved by specifying a group name. If omitted, all groups are retrieved."),
|
|
43
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
44
|
-
description_ja="
|
|
45
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
43
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=True, multi=False, hide=False, choice=None, fileio="in",
|
|
44
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
45
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
46
46
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
47
47
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
48
48
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|
|
@@ -78,9 +78,9 @@ class WebStart(feature.UnsupportEdgeFeature, agent_base.AgentBase):
|
|
|
78
78
|
dict(opt="ssl_ca_certs", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None, fileio="in",
|
|
79
79
|
description_ja="SSLサーバーCA証明書ファイルを指定します。",
|
|
80
80
|
description_en="Specify the SSL server CA certificate file."),
|
|
81
|
-
dict(opt="signin_file", type=Options.T_FILE, default=None, required=False, multi=False, hide=
|
|
82
|
-
description_ja="
|
|
83
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
81
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=False, multi=False, hide=False, choice=None, fileio="in",
|
|
82
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
83
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
84
84
|
dict(opt="session_domain", type=Options.T_STR, default=None, required=False, multi=False, hide=True, choice=None,
|
|
85
85
|
description_ja="サインインしたユーザーのセッションが有効なドメインを指定します。",
|
|
86
86
|
description_en="Specify the domain for which the signed-in user's session is valid."),
|
|
@@ -93,12 +93,12 @@ class WebStart(feature.UnsupportEdgeFeature, agent_base.AgentBase):
|
|
|
93
93
|
dict(opt="session_timeout", type=Options.T_INT, default="900", required=False, multi=False, hide=True, choice=None,
|
|
94
94
|
description_ja="サインインしたユーザーのセッションタイムアウトの時間を秒で指定します。",
|
|
95
95
|
description_en="Specify the session timeout in seconds for signed-in users."),
|
|
96
|
-
dict(opt="
|
|
97
|
-
description_ja="
|
|
98
|
-
description_en="Specifies the number of
|
|
99
|
-
dict(opt="
|
|
100
|
-
description_ja="
|
|
101
|
-
description_en="Specify the timeout duration of the
|
|
96
|
+
dict(opt="gunicorn_workers", type=Options.T_INT, default=multiprocessing.cpu_count()*2, required=False, multi=False, hide=True, choice=None,
|
|
97
|
+
description_ja="gunicornワーカー数を指定します。Linux環境でのみ有効です。-1又は未指定の場合はCPU数の2倍を使用します。",
|
|
98
|
+
description_en="Specifies the number of gunicorn workers, valid only in Linux environment. If -1 or unspecified, twice the number of CPUs is used."),
|
|
99
|
+
dict(opt="gunicorn_timeout", type=Options.T_INT, default=30, required=False, multi=False, hide=True, choice=None,
|
|
100
|
+
description_ja="gunicornワーカーのタイムアウトの時間を秒で指定します。",
|
|
101
|
+
description_en="Specify the timeout duration of the gunicorn worker in seconds."),
|
|
102
102
|
dict(opt="client_only", type=Options.T_BOOL, default=False, required=False, multi=False, hide=True, choice=[True, False],
|
|
103
103
|
description_ja="サーバーへの接続を行わないようにします。",
|
|
104
104
|
description_en="Do not make connections to the server."),
|
|
@@ -232,5 +232,5 @@ class WebStart(feature.UnsupportEdgeFeature, agent_base.AgentBase):
|
|
|
232
232
|
ssl_cert=args.ssl_cert, ssl_key=args.ssl_key, ssl_keypass=args.ssl_keypass, ssl_ca_certs=args.ssl_ca_certs,
|
|
233
233
|
session_domain=args.session_domain, session_path=args.session_path,
|
|
234
234
|
session_secure=args.session_secure, session_timeout=args.session_timeout,
|
|
235
|
-
outputs_key=args.outputs_key,
|
|
235
|
+
outputs_key=args.outputs_key, gunicorn_workers=args.gunicorn_workers, gunicorn_timeout=args.gunicorn_timeout,
|
|
236
236
|
agent_runner=agent_runner, mcp=mcp,)
|
|
@@ -55,9 +55,9 @@ class WebUserAdd(feature.UnsupportEdgeFeature):
|
|
|
55
55
|
dict(opt="user_group", type=Options.T_STR, default=None, required=True, multi=True, hide=False, choice=None,
|
|
56
56
|
description_ja="ユーザーが所属するグループを指定します。",
|
|
57
57
|
description_en="Specifies the groups to which the user belongs."),
|
|
58
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
59
|
-
description_ja="
|
|
60
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
58
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=True, multi=False, hide=False, choice=None, fileio="in",
|
|
59
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
60
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
61
61
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
62
62
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
63
63
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|
|
@@ -40,9 +40,9 @@ class WebUserDel(feature.UnsupportEdgeFeature):
|
|
|
40
40
|
dict(opt="user_id", type=Options.T_INT, default=None, required=True, multi=False, hide=False, choice=None,
|
|
41
41
|
description_ja="ユーザーIDを指定します。",
|
|
42
42
|
description_en="Specify the user ID."),
|
|
43
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
44
|
-
description_ja="
|
|
45
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
43
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=True, multi=False, hide=False, choice=None, fileio="in",
|
|
44
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
45
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
46
46
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
47
47
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
48
48
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|
|
@@ -55,9 +55,9 @@ class WebUserEdit(feature.UnsupportEdgeFeature):
|
|
|
55
55
|
dict(opt="user_group", type=Options.T_STR, default=None, required=True, multi=True, hide=False, choice=None,
|
|
56
56
|
description_ja="ユーザーが所属するグループを指定します。",
|
|
57
57
|
description_en="Specifies the groups to which the user belongs."),
|
|
58
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
59
|
-
description_ja="
|
|
60
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
58
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=True, multi=False, hide=False, choice=None, fileio="in",
|
|
59
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
60
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
61
61
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
62
62
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
63
63
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|
|
@@ -40,9 +40,9 @@ class WebUserList(feature.UnsupportEdgeFeature):
|
|
|
40
40
|
dict(opt="user_name", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
41
41
|
description_ja="ユーザー名を指定して取得します。省略した時は全てのユーザーを取得します。",
|
|
42
42
|
description_en="Retrieved by specifying a user name. If omitted, all users are retrieved."),
|
|
43
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
44
|
-
description_ja="
|
|
45
|
-
description_en="Specify a file containing users and passwords with which they can signin.
|
|
43
|
+
dict(opt="signin_file", type=Options.T_FILE, default=None, required=True, multi=False, hide=False, choice=None, fileio="in",
|
|
44
|
+
description_ja=f"サインイン可能なユーザーとパスワードを記載したファイルを指定します。通常 '.{self.ver.__appid__}/user_list.yml' を指定します。",
|
|
45
|
+
description_en=f"Specify a file containing users and passwords with which they can signin.Typically, specify '.{self.ver.__appid__}/user_list.yml'."),
|
|
46
46
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
47
47
|
description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
|
|
48
48
|
description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
|