cmdbox 0.6.2__py3-none-any.whl → 0.6.2.2__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 CHANGED
@@ -144,6 +144,13 @@ class CmdBoxApp:
144
144
  eloggerinittime = time.perf_counter()
145
145
  if logger.level == logging.DEBUG:
146
146
  logger.debug(f"args.mode={args.mode}, args.cmd={args.cmd}")
147
+ # 警告出力時にスタックを出力する
148
+ #import warnings
149
+ #def custom_warning_handler(message, category, filename, lineno, file=None, line=None):
150
+ # import traceback
151
+ # print(f"Warning: {message}, Category: {category}, File: {filename}, Line: {lineno}")
152
+ # traceback.print_stack()
153
+ #warnings.showwarning = custom_warning_handler
147
154
 
148
155
  #scmdexectime = time.perf_counter()
149
156
  feat = self.options.get_cmd_attr(args.mode, args.cmd, 'feature')
cmdbox/app/common.py CHANGED
@@ -172,11 +172,23 @@ def create_console(stderr:bool=False, file=None) -> Console:
172
172
  """
173
173
  #console = Console(soft_wrap=True, height=True, highlighter=loghandler.LogLevelHighlighter(), theme=loghandler.theme,
174
174
  # stderr=stderr, file=file)
175
- console = Console(height=True, highlighter=loghandler.LogLevelHighlighter(), theme=loghandler.theme,
176
- soft_wrap=True, stderr=stderr, file=file, log_time=True, log_path=False, log_time_format='[%Y-%m-%d %H:%M:%S]')
175
+ console = Console(height=False, highlighter=loghandler.LogLevelHighlighter(), theme=loghandler.theme,
176
+ soft_wrap=False, stderr=stderr, file=file, log_time=True, log_path=False, log_time_format='[%Y-%m-%d %H:%M:%S]')
177
177
  #console = Console(soft_wrap=True, stderr=stderr, file=file, log_time=True, log_path=False, log_time_format='[%Y-%m-%d %H:%M:%S]')
178
178
  return console
179
179
 
180
+ def console_log(console:Console, message:Any, **kwargs) -> None:
181
+ """
182
+ コンソールにログを出力します。
183
+
184
+ Args:
185
+ console (Console): コンソール
186
+ message (Any): 出力するメッセージ
187
+ **kwargs: その他のキーワード引数
188
+ """
189
+ dtstr = datetime.datetime.now().strftime('[%Y-%m-%d %H:%M:%S]')
190
+ console.print(f"{dtstr} {message}", highlight=True, **kwargs)
191
+
180
192
  def default_logger(debug:bool=False, ver=version, webcall:bool=False) -> logging.Logger:
181
193
  """
182
194
  デフォルトのロガーを生成します。
@@ -105,13 +105,13 @@ theme=Theme({
105
105
  class LogLevelHighlighter(highlighter.ReprHighlighter):
106
106
  def __init__(self):
107
107
  #self.highlights = []
108
- self.highlights.append(r"(?P<log_debug>DEBUG)")
108
+ self.highlights.append(r"(?P<log_debug>DEBUG|EXEC)")
109
109
  self.highlights.append(r"(?P<log_info>INFO)")
110
110
  self.highlights.append(r"(?P<log_warn>WARN|WARNING|WARN|CAUTION|NOTICE|STOP|DISCONNECTED|DENY)")
111
111
  self.highlights.append(r"(?P<log_error>ERROR|ALERT|ABORT|FAILED)")
112
112
  self.highlights.append(r"(?P<log_fatal>FATAL|CRITICAL)")
113
113
  self.highlights.append(r"(?P<log_product>CMDBOX|IINFER|USOUND|GAIAN|GAIC|WITSHAPE)")
114
- self.highlights.append(r"(?P<log_success>SUCCESS|OK|PASSED|DONE|COMPLETE|START|FINISH|OPEN|CONNECTED|ALLOW|EXEC)")
114
+ self.highlights.append(r"(?P<log_success>SUCCESS|OK|PASSED|DONE|COMPLETE|START|FINISH|OPEN|CONNECTED|ALLOW)")
115
115
  """
116
116
  self.highlights.append(r"(?P<tag_start><)(?P<tag_name>[-\w.:|]*)(?P<tag_contents>[\w\W]*)(?P<tag_end>>)")
117
117
  self.highlights.append(r'(?P<attrib_name>[\w_]{1,50})=(?P<attrib_value>"?[\w_]+"?)?')
cmdbox/app/feature.py CHANGED
@@ -123,6 +123,15 @@ class Feature(object):
123
123
  status, res = tool.exec_cmd(opt, logger, timeout, prevres)
124
124
  yield status, res
125
125
 
126
+ def audited_by(self) -> bool:
127
+ """
128
+ この機能が監査ログを記録する対象かどうかを返します
129
+
130
+ Returns:
131
+ bool: 監査ログを記録する場合はTrue
132
+ """
133
+ return True
134
+
126
135
  class OneshotEdgeFeature(Feature):
127
136
  """
128
137
  一度だけ実行するエッジ機能の基底クラス
@@ -182,7 +182,7 @@ class ExecCmd(cmdbox_web_load_cmd.LoadCmd):
182
182
  console = common.create_console(file=old_stdout)
183
183
 
184
184
  try:
185
- console.log(f'EXEC - {opt_list}\n'[:logsize])
185
+ common.console_log(console, f'EXEC - {opt_list}\n'[:logsize])
186
186
  status, ret_main, obj = cmdbox_app.main(args_list=[common.chopdq(o) for o in opt_list], file_dict=file_dict, webcall=True)
187
187
  if isinstance(obj, server.Server):
188
188
  cmdbox_app.sv = obj
@@ -213,7 +213,7 @@ class ExecCmd(cmdbox_web_load_cmd.LoadCmd):
213
213
  except Exception as e:
214
214
  web.logger.disabled = False # ログ出力を有効にする
215
215
  msg = f'exec_cmd error. {traceback.format_exc()}'
216
- console.log(f'EXEC - {msg}'[:logsize])
216
+ common.console_log(console, f'EXEC - {msg}'[:logsize])
217
217
  web.logger.warning(msg)
218
218
  output = [dict(warn=f'<pre>{html.escape(traceback.format_exc())}</pre>')]
219
219
  sys.stdout = old_stdout
cmdbox/app/options.py CHANGED
@@ -809,6 +809,7 @@ class Options:
809
809
  logger = self.default_logger
810
810
  clmsg_body = body.copy() if body is not None else dict()
811
811
  func_feature = None
812
+ audited_by = True
812
813
  for arg in list(args) + list(kwargs.values()):
813
814
  if isinstance(arg, logging.Logger): logger = arg
814
815
  elif isinstance(arg, argparse.Namespace):
@@ -842,6 +843,7 @@ class Options:
842
843
  elif isinstance(arg, feature.Feature):
843
844
  func_feature = arg
844
845
  opt['clmsg_src'] = func_feature.__class__.__name__
846
+ audited_by = arg.audited_by()
845
847
  elif isinstance(arg, Request) or isinstance(arg, WebSocket):
846
848
  if 'signin' in arg.session and arg.session['signin'] is not None and 'name' in arg.session['signin']:
847
849
  opt['clmsg_user'] = arg.session['signin']['name']
@@ -856,5 +858,6 @@ class Options:
856
858
  opt['clmsg_src'] = src
857
859
  if title is not None and title != "":
858
860
  opt['clmsg_title'] = title
859
- audit_write_args = argparse.Namespace(**{k:common.chopdq(v) for k,v in opt.items()})
860
- self.audit_write.apprun(logger, audit_write_args, tm=0.0, pf=[])
861
+ if audited_by:
862
+ audit_write_args = argparse.Namespace(**{k:common.chopdq(v) for k,v in opt.items()})
863
+ self.audit_write.apprun(logger, audit_write_args, tm=0.0, pf=[])
cmdbox/app/web.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from cmdbox.app import common, options
2
2
  from cmdbox.app.commons import module
3
- from fastapi import FastAPI, Request, Response, WebSocket
3
+ from fastapi import FastAPI, Request, Response
4
4
  from pathlib import Path
5
5
  from starlette.applications import Starlette
6
6
  from starlette.middleware.sessions import SessionMiddleware
cmdbox/version.py CHANGED
@@ -1,9 +1,9 @@
1
1
  import datetime
2
2
 
3
- dt_now = datetime.datetime(2025, 7, 8)
3
+ dt_now = datetime.datetime(2025, 7, 10)
4
4
  __appid__ = 'cmdbox'
5
5
  __title__ = 'cmdbox (Command Development Application)'
6
- __version__ = '0.6.2'
6
+ __version__ = '0.6.2.2'
7
7
  __copyright__ = f'Copyright © 2023-{dt_now.strftime("%Y")} hamacom2004jp'
8
8
  __pypiurl__ = 'https://pypi.org/project/cmdbox/'
9
9
  __srcurl__ = 'https://github.com/hamacom2004jp/cmdbox'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cmdbox
3
- Version: 0.6.2
3
+ Version: 0.6.2.2
4
4
  Summary: cmdbox: It is a command line application with a plugin mechanism.
5
5
  Home-page: https://github.com/hamacom2004jp/cmdbox
6
6
  Download-URL: https://github.com/hamacom2004jp/cmdbox
@@ -10,19 +10,19 @@ cmdbox/logconf_gui.yml,sha256=-95vyd0q-aB1gsabdk8rg9dJ2zRKAZc8hRxyhNOQboU,1076
10
10
  cmdbox/logconf_mcp.yml,sha256=pED0i1iKP8UoyXE0amFMA5kjV7Qc6_eJCUDVen3L4AU,1069
11
11
  cmdbox/logconf_server.yml,sha256=n3c5-KVzjUzcUX5BQ6uE-PN9rp81yXaJql3whyCcSDQ,1091
12
12
  cmdbox/logconf_web.yml,sha256=pPbdAwckbK0cgduxcVkx2mbk-Ymz5hVzR4guIsfApMQ,1076
13
- cmdbox/version.py,sha256=CU9vyfjkq4wbR29wBC0k-aktQQXujfCW5jgc5SWE7t0,2029
13
+ cmdbox/version.py,sha256=Lt2VTw6A_Uk9DynzH9QCA0V20lI2YyR3x581-Rx171M,2032
14
14
  cmdbox/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- cmdbox/app/app.py,sha256=rWjvGF09Vtwhysf6F0pOGdSa0_pch32W88lWmNdA-ys,9186
15
+ cmdbox/app/app.py,sha256=_UJqSTs3LStGSu3vLMTqOKmpL4x7NQAQb2hUMbEFcg4,9639
16
16
  cmdbox/app/client.py,sha256=n986lXeV7hhaki4iyyvsfhNptmCXDFphxlNoNe2XhKg,19542
17
- cmdbox/app/common.py,sha256=z3YyZcX8f7Jahe9QG3yaW5ojFQTT_3WEBq3Yy4ozrqs,26818
17
+ cmdbox/app/common.py,sha256=0QVDEQDXksDuN5lHuJCD2fTYutSknPFP6hlKp4gr00k,27255
18
18
  cmdbox/app/edge.py,sha256=2Aav7n4skhP0FUvG6_3JKijHHozA-WcwALgEwNB0DUI,41439
19
19
  cmdbox/app/edge_tool.py,sha256=HXxr4Or8QaZ5ueYIN3huv8GnXSnV28RZCmZBUEfiIk0,8062
20
- cmdbox/app/feature.py,sha256=O3MTyQFinKXONeCvSRAt81HqZWgXV-je_-nUZi0cdCE,9910
20
+ cmdbox/app/feature.py,sha256=2qwYdOqMjKNC7vjPQkPSgmdIfHtNWSzOvAuDrmlIRUo,10159
21
21
  cmdbox/app/filer.py,sha256=L_DSMTvnbN_ffr3JIt0obbOmVoTHEfVm2cAVz3rLH-Q,16059
22
22
  cmdbox/app/mcp.py,sha256=eLPGd_fWohPalW4ss7UApAfSys40bWknkjdvSI0zyGo,30001
23
- cmdbox/app/options.py,sha256=ClGjMRrNtNTn0yaXEp0khsTtSmp2YMDL8UVQGQKdGEI,46073
23
+ cmdbox/app/options.py,sha256=nNNDJiVYmn7GPyG1aZaLAByk4wfuWj5DxQpQZnOd4FE,46179
24
24
  cmdbox/app/server.py,sha256=woOmIk901ONn5a_2yz_b3I1JpLYIF8g42uQRd0_MRuQ,10417
25
- cmdbox/app/web.py,sha256=EWePZ3_fQlrNf_wEX2QlCAxboKACsPenoviPIVvysdU,53570
25
+ cmdbox/app/web.py,sha256=5eUtb60Vb_6RK62IWbJDPFNvAVsf1THw7knp3uGmMGg,53559
26
26
  cmdbox/app/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  cmdbox/app/auth/azure_signin.py,sha256=jJlIZJIGLZCngnJgoxBajaD2s8nM7QoszuN6-FT-5h8,1953
28
28
  cmdbox/app/auth/azure_signin_saml.py,sha256=oM2buGTK4t6-OsUuiUXTlZk0YXZL01khuPYVB84dMDU,472
@@ -31,7 +31,7 @@ cmdbox/app/auth/google_signin.py,sha256=LErFkKniumKgfE5jlY9_lAneKlqD6BfLHxg2lZgv
31
31
  cmdbox/app/auth/signin.py,sha256=dYkDQ7D3Gr346tA1PHeaD1vq69VAAbPGGQPhiMLBvD0,59939
32
32
  cmdbox/app/auth/signin_saml.py,sha256=MUM_hqCEjT-8xXNMHa-iH2j24SdBls4SU3k4BopRd48,2457
33
33
  cmdbox/app/commons/convert.py,sha256=mkXPNQtX_pEH4L5DzonOY6Dh38SzJ5JQma_EY7UDBqU,7078
34
- cmdbox/app/commons/loghandler.py,sha256=go5Ui1c4AKqRSnxLzwrtPakYSjRHguXk4dGat1jD738,6323
34
+ cmdbox/app/commons/loghandler.py,sha256=bcKTDqSlUcVpO-6vYGijZcLdJlXn7ewx9MT_N7RhgAY,6323
35
35
  cmdbox/app/commons/module.py,sha256=w63zqz5c6gLy-BZJ9dh4Q4C5PZyqM2Iqat5Zr9swJCI,4993
36
36
  cmdbox/app/commons/redis_client.py,sha256=cOHshqAGI3CRWLcc2IMhk6MtXsVKlQq6HwcdqYsoA-0,14821
37
37
  cmdbox/app/features/cli/agent_base.py,sha256=alXnkpMKrTX9KK5YBJeKQ3ISMmGedYevW7mMb_3ZCp8,7669
@@ -83,7 +83,7 @@ cmdbox/app/features/web/cmdbox_web_del_cmd.py,sha256=3Bx2tuXJXc63yip9gWH2bXBydD4
83
83
  cmdbox/app/features/web/cmdbox_web_del_pipe.py,sha256=tPLvuLqk-MQjkh5WZfw9gL3ujR_W18raEwX_EKddNZw,1193
84
84
  cmdbox/app/features/web/cmdbox_web_do_signin.py,sha256=Je9pYIdihmagP2eaIfyz6zIBbLc7_wHKxewjAQrt3IA,20787
85
85
  cmdbox/app/features/web/cmdbox_web_do_signout.py,sha256=b64XcmioyuyEL6VFymcs5kFIt4zviqhqJbFUWRCdMo0,1109
86
- cmdbox/app/features/web/cmdbox_web_exec_cmd.py,sha256=SUuaapl7Q7eTyrn45sTyjRtsVtZ3nAHXACffiQbcNCM,13174
86
+ cmdbox/app/features/web/cmdbox_web_exec_cmd.py,sha256=qfa6YzYkW0TxO-UCk1w88gzCF0BtJRAtz5cS7dn6CAA,13206
87
87
  cmdbox/app/features/web/cmdbox_web_exec_pipe.py,sha256=W9jd_9MTzC9GzgEd8X5C9Jwsn8pt6-_TFxyrHfO4iWk,10581
88
88
  cmdbox/app/features/web/cmdbox_web_filer download.py,sha256=CVRDv0TZAEd87nzlquIO2O3rSm_tpc3i88H27FgNW4Y,2344
89
89
  cmdbox/app/features/web/cmdbox_web_filer.py,sha256=2BdkOQFvaMMxtSoRz07RjercnfG51yChZiVrQGRDRTQ,1871
@@ -377,9 +377,9 @@ cmdbox/web/assets/tree-menu/image/file.png,sha256=Uw4zYkHyuoZ_kSVkesHAeSeA_g9_LP
377
377
  cmdbox/web/assets/tree-menu/image/folder-close.png,sha256=TcgsKTBBF2ejgzekOEDBFBxsJf-Z5u0x9IZVi4GBR-I,284
378
378
  cmdbox/web/assets/tree-menu/image/folder-open.png,sha256=DT7y1GRK4oXJkFvqTN_oSGM5ZYARzPvjoCGL6wqkoo0,301
379
379
  cmdbox/web/assets/tree-menu/js/tree-menu.js,sha256=-GkZxI7xzHuXXHYQBHAVTcuKX4TtoiMuyIms6Xc3pxk,1029
380
- cmdbox-0.6.2.dist-info/LICENSE,sha256=sBzzPc5v-5LBuIFi2V4olsnoVg-3EBI0zRX5r19SOxE,1117
381
- cmdbox-0.6.2.dist-info/METADATA,sha256=Ktmc6kkBD0U9DWjCsivevd4JuS7WkYu-DLjzNdLiooE,33522
382
- cmdbox-0.6.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
383
- cmdbox-0.6.2.dist-info/entry_points.txt,sha256=1LdoMUjTD_YdxlsAiAiJ1cREcXFG8-Xg2xQTNYoNpT4,47
384
- cmdbox-0.6.2.dist-info/top_level.txt,sha256=eMEkD5jn8_0PkCAL8h5xJu4qAzF2O8Wf3vegFkKUXR4,7
385
- cmdbox-0.6.2.dist-info/RECORD,,
380
+ cmdbox-0.6.2.2.dist-info/LICENSE,sha256=sBzzPc5v-5LBuIFi2V4olsnoVg-3EBI0zRX5r19SOxE,1117
381
+ cmdbox-0.6.2.2.dist-info/METADATA,sha256=njzL1orul6e60KFNIzqFUluYUZWqnxBgME9AmyOxksk,33524
382
+ cmdbox-0.6.2.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
383
+ cmdbox-0.6.2.2.dist-info/entry_points.txt,sha256=1LdoMUjTD_YdxlsAiAiJ1cREcXFG8-Xg2xQTNYoNpT4,47
384
+ cmdbox-0.6.2.2.dist-info/top_level.txt,sha256=eMEkD5jn8_0PkCAL8h5xJu4qAzF2O8Wf3vegFkKUXR4,7
385
+ cmdbox-0.6.2.2.dist-info/RECORD,,