cmdbox 0.6.2.4__tar.gz → 0.6.3.1__tar.gz

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 (393) hide show
  1. {cmdbox-0.6.2.4/cmdbox.egg-info → cmdbox-0.6.3.1}/PKG-INFO +1 -1
  2. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/app.py +9 -7
  3. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/common.py +41 -21
  4. cmdbox-0.6.3.1/cmdbox/app/features/cli/cmdbox_client_http.py +154 -0
  5. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_cmd_list.py +11 -7
  6. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_exec_cmd.py +3 -3
  7. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/mcp.py +222 -124
  8. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/options.py +2 -1
  9. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/web.py +2 -2
  10. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/features.yml +3 -0
  11. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/extensions/features.yml +3 -12
  12. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/version.py +2 -2
  13. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/view_result.js +2 -1
  14. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1/cmdbox.egg-info}/PKG-INFO +1 -1
  15. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox.egg-info/SOURCES.txt +1 -1
  16. cmdbox-0.6.2.4/cmdbox/config.yml +0 -3
  17. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/LICENSE +0 -0
  18. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/MANIFEST.in +0 -0
  19. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/README.md +0 -0
  20. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/__init__.py +0 -0
  21. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/__main__.py +0 -0
  22. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/__init__.py +0 -0
  23. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/auth/__init__.py +0 -0
  24. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/auth/azure_signin.py +0 -0
  25. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/auth/azure_signin_saml.py +0 -0
  26. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/auth/github_signin.py +0 -0
  27. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/auth/google_signin.py +0 -0
  28. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/auth/signin.py +0 -0
  29. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/auth/signin_saml.py +0 -0
  30. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/client.py +0 -0
  31. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/commons/convert.py +0 -0
  32. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/commons/loghandler.py +0 -0
  33. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/commons/module.py +0 -0
  34. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/commons/redis_client.py +0 -0
  35. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/edge.py +0 -0
  36. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/edge_tool.py +0 -0
  37. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/feature.py +0 -0
  38. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/agent_base.py +0 -0
  39. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/audit_base.py +0 -0
  40. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_audit_createdb.py +0 -0
  41. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_audit_delete.py +0 -0
  42. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_audit_search.py +0 -0
  43. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_audit_write.py +0 -0
  44. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_client_file_copy.py +0 -0
  45. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_client_file_download.py +0 -0
  46. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_client_file_list.py +0 -0
  47. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_client_file_mkdir.py +0 -0
  48. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_client_file_move.py +0 -0
  49. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_client_file_remove.py +0 -0
  50. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_client_file_rmdir.py +0 -0
  51. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_client_file_upload.py +0 -0
  52. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_client_server_info.py +0 -0
  53. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_cmd_load.py +0 -0
  54. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_edge_config.py +0 -0
  55. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_edge_start.py +0 -0
  56. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_gui_start.py +0 -0
  57. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_gui_stop.py +0 -0
  58. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_mcp_client.py +0 -0
  59. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_mcp_proxy.py +0 -0
  60. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_server_list.py +0 -0
  61. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_server_start.py +0 -0
  62. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_server_stop.py +0 -0
  63. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_apikey_add.py +0 -0
  64. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_apikey_del.py +0 -0
  65. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_gencert.py +0 -0
  66. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_genpass.py +0 -0
  67. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_group_add.py +0 -0
  68. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_group_del.py +0 -0
  69. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_group_edit.py +0 -0
  70. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_group_list.py +0 -0
  71. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_start.py +0 -0
  72. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_stop.py +0 -0
  73. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_user_add.py +0 -0
  74. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_user_del.py +0 -0
  75. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_user_edit.py +0 -0
  76. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/cli/cmdbox_web_user_list.py +0 -0
  77. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_agent.py +0 -0
  78. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_assets.py +0 -0
  79. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_audit.py +0 -0
  80. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_audit_metrics.py +0 -0
  81. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_bbforce_cmd.py +0 -0
  82. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_copyright.py +0 -0
  83. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_del_cmd.py +0 -0
  84. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_del_pipe.py +0 -0
  85. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_do_signin.py +0 -0
  86. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_do_signout.py +0 -0
  87. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_exec_pipe.py +0 -0
  88. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_filer download.py +0 -0
  89. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_filer.py +0 -0
  90. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_filer_upload.py +0 -0
  91. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_get_cmd_choices.py +0 -0
  92. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_get_cmds.py +0 -0
  93. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_get_modes.py +0 -0
  94. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_get_server_opt.py +0 -0
  95. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_gui.py +0 -0
  96. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_gui_callback.py +0 -0
  97. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_list_cmd.py +0 -0
  98. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_list_pipe.py +0 -0
  99. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_load_cmd.py +0 -0
  100. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_load_pipe.py +0 -0
  101. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_raw_cmd.py +0 -0
  102. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_raw_pipe.py +0 -0
  103. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_result.py +0 -0
  104. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_save_cmd.py +0 -0
  105. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_save_pipe.py +0 -0
  106. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_signin.py +0 -0
  107. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_user_data.py +0 -0
  108. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_users.py +0 -0
  109. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_usesignout.py +0 -0
  110. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_versions_cmdbox.py +0 -0
  111. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/features/web/cmdbox_web_versions_used.py +0 -0
  112. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/filer.py +0 -0
  113. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/app/server.py +0 -0
  114. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/autoload.py +0 -0
  115. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/.vscode/launch.json +0 -0
  116. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/requirements.txt +0 -0
  117. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/__init__.py +0 -0
  118. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/__main__.py +0 -0
  119. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/app/app.py +0 -0
  120. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/app/features/cli/__init__.py +0 -0
  121. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_client_time.py +0 -0
  122. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_server_time.py +0 -0
  123. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/app/features/web/__init__.py +0 -0
  124. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/extensions/user_list.yml +0 -0
  125. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/logconf_sample.yml +0 -0
  126. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/version.py +0 -0
  127. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/web/assets/sample/favicon.ico +0 -0
  128. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/sample_project/sample/web/assets/sample/icon.png +0 -0
  129. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/extensions/user_list.yml +0 -0
  130. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_Authlib_1_6_0_BSD_License.txt +0 -0
  131. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_Jinja2_3_1_6_BSD_License.txt +0 -0
  132. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_MarkupSafe_3_0_2_BSD_License.txt +0 -0
  133. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_PyJWT_2_10_1_MIT_License.txt +0 -0
  134. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_PyYAML_6_0_2_MIT_License.txt +0 -0
  135. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_Pygments_2_19_2_BSD_License.txt +0 -0
  136. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_SQLAlchemy_2_0_41_MIT.txt +0 -0
  137. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_Sphinx_8_2_3_UNKNOWN.txt +0 -0
  138. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_aiohappyeyeballs_2_6_1_Python_Software_Foundation_License.txt +0 -0
  139. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_aiohttp_3_12_13_Apache-2_0.txt +0 -0
  140. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_aiosignal_1_3_2_Apache_Software_License.txt +0 -0
  141. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_alabaster_1_0_0_BSD_License.txt +0 -0
  142. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_annotated-types_0_7_0_MIT_License.txt +0 -0
  143. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_anyio_4_9_0_MIT_License.txt +0 -0
  144. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_argcomplete_3_6_2_Apache_Software_License.txt +0 -0
  145. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_async-timeout_5_0_1_Apache_Software_License.txt +0 -0
  146. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_attrs_25_3_0_UNKNOWN.txt +0 -0
  147. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_babel_2_17_0_BSD_License.txt +0 -0
  148. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_backports_tarfile_1_2_0_MIT_License.txt +0 -0
  149. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_cachetools_5_5_2_MIT_License.txt +0 -0
  150. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_certifi_2025_6_15_Mozilla_Public_License_2_0-MPL_2_0.txt +0 -0
  151. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_cffi_1_17_1_MIT_License.txt +0 -0
  152. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_charset-normalizer_3_4_2_MIT_License.txt +0 -0
  153. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_click_8_2_1_UNKNOWN.txt +0 -0
  154. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_cloudpickle_3_1_1_BSD_License.txt +0 -0
  155. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_colorama_0_4_6_BSD_License.txt +0 -0
  156. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_cryptography_45_0_4_Apache-2_0_OR_BSD-3-Clause.txt +0 -0
  157. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_distro_1_9_0_Apache_Software_License.txt +0 -0
  158. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_dnspython_2_7_0_ISC_License-ISCL.txt +0 -0
  159. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_docstring_parser_0_16_MIT_License.txt +0 -0
  160. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_docutils_0_21_2_BSD_License-GNU_General_Public_License-GPL-Public_Domain-Python_Software_Foundation_License.txt +0 -0
  161. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_email_validator_2_2_0_The_Unlicense-Unlicense.txt +0 -0
  162. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_exceptiongroup_1_3_0_MIT_License.txt +0 -0
  163. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_fastapi_0_115_14_MIT_License.txt +0 -0
  164. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_fastmcp_2_10_1_Apache_Software_License.txt +0 -0
  165. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_filelock_3_18_0_The_Unlicense-Unlicense.txt +0 -0
  166. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_frozenlist_1_7_0_Apache-2_0.txt +0 -0
  167. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_fsspec_2025_5_1_BSD_License.txt +0 -0
  168. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_gevent_25_5_1_MIT.txt +0 -0
  169. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-adk_1_5_0_Apache_Software_License.txt +0 -0
  170. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-api-core_2_25_1_Apache_Software_License.txt +0 -0
  171. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-api-python-client_2_174_0_Apache_Software_License.txt +0 -0
  172. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-auth-httplib2_0_2_0_Apache_Software_License.txt +0 -0
  173. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-auth_2_40_3_Apache_Software_License.txt +0 -0
  174. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-aiplatform_1_100_0_Apache_2_0.txt +0 -0
  175. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-appengine-logging_1_6_2_Apache_Software_License.txt +0 -0
  176. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-audit-log_0_3_2_Apache_Software_License.txt +0 -0
  177. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-bigquery_3_34_0_Apache_Software_License.txt +0 -0
  178. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-core_2_4_3_Apache_Software_License.txt +0 -0
  179. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-logging_3_12_1_Apache_Software_License.txt +0 -0
  180. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-resource-manager_1_14_2_Apache_Software_License.txt +0 -0
  181. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-secret-manager_2_24_0_Apache_Software_License.txt +0 -0
  182. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-speech_2_33_0_Apache_Software_License.txt +0 -0
  183. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-storage_2_19_0_Apache_Software_License.txt +0 -0
  184. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-cloud-trace_1_16_2_Apache_Software_License.txt +0 -0
  185. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-crc32c_1_7_1_Apache_2_0.txt +0 -0
  186. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-genai_1_23_0_Apache_Software_License.txt +0 -0
  187. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_google-resumable-media_2_7_2_Apache_Software_License.txt +0 -0
  188. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_googleapis-common-protos_1_70_0_Apache_Software_License.txt +0 -0
  189. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_graphviz_0_21_UNKNOWN.txt +0 -0
  190. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_greenlet_3_2_3_MIT_AND_Python-2_0.txt +0 -0
  191. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_grpc-google-iam-v1_0_14_2_Apache_Software_License.txt +0 -0
  192. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_grpcio-status_1_73_1_Apache_Software_License.txt +0 -0
  193. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_grpcio_1_73_1_Apache_Software_License.txt +0 -0
  194. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_gunicorn_23_0_0_MIT_License.txt +0 -0
  195. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_h11_0_16_0_MIT_License.txt +0 -0
  196. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_httpcore_1_0_9_BSD_License.txt +0 -0
  197. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_httplib2_0_22_0_MIT_License.txt +0 -0
  198. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_httptools_0_6_4_MIT_License.txt +0 -0
  199. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_httpx-sse_0_4_1_MIT.txt +0 -0
  200. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_httpx_0_28_1_BSD_License.txt +0 -0
  201. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_huggingface-hub_0_33_1_Apache_Software_License.txt +0 -0
  202. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_id_1_5_0_Apache_Software_License.txt +0 -0
  203. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_idna_3_10_BSD_License.txt +0 -0
  204. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_imagesize_1_4_1_MIT_License.txt +0 -0
  205. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_importlib_metadata_8_7_0_Apache_Software_License.txt +0 -0
  206. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_itsdangerous_2_2_0_BSD_License.txt +0 -0
  207. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_jaraco_classes_3_4_0_MIT_License.txt +0 -0
  208. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_jaraco_context_6_0_1_MIT_License.txt +0 -0
  209. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_jaraco_functools_4_2_1_UNKNOWN.txt +0 -0
  210. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_jiter_0_10_0_MIT_License.txt +0 -0
  211. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_jsonschema-specifications_2025_4_1_UNKNOWN.txt +0 -0
  212. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_jsonschema_4_24_0_UNKNOWN.txt +0 -0
  213. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_keyring_25_6_0_MIT_License.txt +0 -0
  214. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_litellm_1_73_6_MIT_License.txt +0 -0
  215. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_markdown-it-py_3_0_0_MIT_License.txt +0 -0
  216. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_mcp_1_10_1_MIT_License.txt +0 -0
  217. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_mdurl_0_1_2_MIT_License.txt +0 -0
  218. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_more-itertools_10_7_0_MIT_License.txt +0 -0
  219. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_multidict_6_6_2_Apache_License_2_0.txt +0 -0
  220. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_nh3_0_2_21_MIT.txt +0 -0
  221. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_numpy_2_3_1_BSD_License.txt +0 -0
  222. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_openai_1_93_0_Apache_Software_License.txt +0 -0
  223. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_openapi-pydantic_0_5_1_MIT_License.txt +0 -0
  224. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_opentelemetry-api_1_34_1_Apache_Software_License.txt +0 -0
  225. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_opentelemetry-exporter-gcp-trace_1_9_0_Apache_Software_License.txt +0 -0
  226. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_opentelemetry-resourcedetector-gcp_1_9_0a0_Apache_Software_License.txt +0 -0
  227. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_opentelemetry-sdk_1_34_1_Apache_Software_License.txt +0 -0
  228. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_opentelemetry-semantic-conventions_0_55b1_Apache_Software_License.txt +0 -0
  229. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_packaging_25_0_Apache_Software_License-BSD_License.txt +0 -0
  230. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pillow_11_2_1_UNKNOWN.txt +0 -0
  231. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pip_24_0_MIT_License.txt +0 -0
  232. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_plyer_2_1_0_MIT_License.txt +0 -0
  233. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_prettytable_3_16_0_UNKNOWN.txt +0 -0
  234. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_prompt_toolkit_3_0_51_BSD_License.txt +0 -0
  235. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_propcache_0_3_2_Apache_Software_License.txt +0 -0
  236. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_proto-plus_1_26_1_Apache_Software_License.txt +0 -0
  237. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_protobuf_6_31_1_3-Clause_BSD_License.txt +0 -0
  238. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_psycopg-binary_3_2_9_GNU_Lesser_General_Public_License_v3-LGPLv3.txt +0 -0
  239. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_psycopg_3_2_9_GNU_Lesser_General_Public_License_v3-LGPLv3.txt +0 -0
  240. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pyasn1_0_6_1_BSD_License.txt +0 -0
  241. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pyasn1_modules_0_4_2_BSD_License.txt +0 -0
  242. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pycparser_2_22_BSD_License.txt +0 -0
  243. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pycryptodome_3_23_0_BSD_License-Public_Domain.txt +0 -0
  244. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pydantic-settings_2_10_1_MIT_License.txt +0 -0
  245. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pydantic_2_11_7_MIT_License.txt +0 -0
  246. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pydantic_core_2_33_2_MIT_License.txt +0 -0
  247. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pyparsing_3_2_3_MIT_License.txt +0 -0
  248. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pystray_0_19_5_GNU_Lesser_General_Public_License_v3-LGPLv3.txt +0 -0
  249. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_python-dateutil_2_9_0_post0_Apache_Software_License-BSD_License.txt +0 -0
  250. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_python-dotenv_1_1_1_BSD_License.txt +0 -0
  251. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_python-multipart_0_0_20_Apache_Software_License.txt +0 -0
  252. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_pywin32-ctypes_0_2_3_BSD-3-Clause.txt +0 -0
  253. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_questionary_2_1_0_MIT_License.txt +0 -0
  254. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_readme_renderer_44_0_Apache_Software_License.txt +0 -0
  255. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_redis_6_2_0_MIT_License.txt +0 -0
  256. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_referencing_0_36_2_UNKNOWN.txt +0 -0
  257. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_regex_2024_11_6_Apache_Software_License.txt +0 -0
  258. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_requests-toolbelt_1_0_0_Apache_Software_License.txt +0 -0
  259. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_requests_2_32_4_Apache_Software_License.txt +0 -0
  260. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_rfc3986_2_0_0_Apache_Software_License.txt +0 -0
  261. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_rich_14_0_0_MIT_License.txt +0 -0
  262. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_roman-numerals-py_3_1_0_CC0_1_0_Universal-CC0_1_0-Public_Domain_Dedication-Zero-Clause_BSD-0BSD.txt +0 -0
  263. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_rpds-py_0_25_1_MIT.txt +0 -0
  264. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_rsa_4_9_1_Apache_Software_License.txt +0 -0
  265. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_setuptools_65_5_0_MIT_License.txt +0 -0
  266. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_shapely_2_1_1_BSD_License.txt +0 -0
  267. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_shellingham_1_5_4_ISC_License-ISCL.txt +0 -0
  268. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_six_1_17_0_MIT_License.txt +0 -0
  269. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sniffio_1_3_1_Apache_Software_License-MIT_License.txt +0 -0
  270. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_snowballstemmer_3_0_1_BSD_License.txt +0 -0
  271. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinx-intl_2_3_1_BSD_License.txt +0 -0
  272. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinx-last-updated-by-git_0_3_8_BSD_License.txt +0 -0
  273. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinx-rtd-theme_3_0_2_MIT_License.txt +0 -0
  274. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinx-sitemap_2_7_2_UNKNOWN.txt +0 -0
  275. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinx_fontawesome_0_0_6_GNU_General_Public_License_v2-GPLv2.txt +0 -0
  276. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinxcontrib-applehelp_2_0_0_BSD_License.txt +0 -0
  277. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinxcontrib-devhelp_2_0_0_BSD_License.txt +0 -0
  278. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinxcontrib-htmlhelp_2_1_0_BSD_License.txt +0 -0
  279. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinxcontrib-jquery_4_1_BSD_License.txt +0 -0
  280. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinxcontrib-jsmath_1_0_1_BSD_License.txt +0 -0
  281. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinxcontrib-qthelp_2_0_0_BSD_License.txt +0 -0
  282. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sphinxcontrib-serializinghtml_2_0_0_BSD_License.txt +0 -0
  283. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_sse-starlette_2_3_6_BSD_License.txt +0 -0
  284. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_starlette_0_46_2_BSD_License.txt +0 -0
  285. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_tabulate_0_9_0_MIT_License.txt +0 -0
  286. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_tenacity_8_5_0_Apache_Software_License.txt +0 -0
  287. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_tiktoken_0_9_0_MIT_License-Copyright-c-2022_OpenAI-Shantanu_Jain-Permission_is_hereby_granted-free_of_charge-to_any_pers.txt +0 -0
  288. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_tokenizers_0_21_2_Apache_Software_License.txt +0 -0
  289. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_tomli_2_2_1_MIT_License.txt +0 -0
  290. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_tqdm_4_67_1_MIT_License-Mozilla_Public_License_2_0-MPL_2_0.txt +0 -0
  291. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_twine_6_1_0_Apache_Software_License.txt +0 -0
  292. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_typer_0_16_0_MIT_License.txt +0 -0
  293. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_typing-inspection_0_4_1_UNKNOWN.txt +0 -0
  294. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_typing_extensions_4_14_0_UNKNOWN.txt +0 -0
  295. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_tzdata_2025_2_Apache_Software_License.txt +0 -0
  296. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_tzlocal_5_3_1_MIT_License.txt +0 -0
  297. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_uritemplate_4_2_0_BSD_3-Clause_OR_Apache-2_0.txt +0 -0
  298. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_urllib3_2_5_0_UNKNOWN.txt +0 -0
  299. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_uvicorn_0_35_0_BSD_License.txt +0 -0
  300. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_watchfiles_1_1_0_MIT_License.txt +0 -0
  301. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_wcwidth_0_2_13_MIT_License.txt +0 -0
  302. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_websockets_15_0_1_BSD_License.txt +0 -0
  303. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_wheel_0_45_1_MIT_License.txt +0 -0
  304. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_yarl_1_20_1_Apache_Software_License.txt +0 -0
  305. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_zipp_3_23_0_UNKNOWN.txt +0 -0
  306. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_zope_event_5_1_Zope_Public_License.txt +0 -0
  307. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/LICENSE_zope_interface_7_2_Zope_Public_License.txt +0 -0
  308. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/licenses/files.txt +0 -0
  309. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/logconf_audit.yml +0 -0
  310. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/logconf_client.yml +0 -0
  311. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/logconf_cmdbox.yml +0 -0
  312. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/logconf_edge.yml +0 -0
  313. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/logconf_gui.yml +0 -0
  314. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/logconf_mcp.yml +0 -0
  315. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/logconf_server.yml +0 -0
  316. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/logconf_web.yml +0 -0
  317. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/agent.html +0 -0
  318. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/apexcharts/apexcharts.css +0 -0
  319. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/apexcharts/apexcharts.min.js +0 -0
  320. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/bootstrap/bootstrap.bundle.min.5.3.0.js +0 -0
  321. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/bootstrap/bootstrap.min.5.3.0.css +0 -0
  322. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/agent.js +0 -0
  323. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/audit.js +0 -0
  324. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/color_mode.css +0 -0
  325. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/common.js +0 -0
  326. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/favicon.ico +0 -0
  327. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/filer_modal.js +0 -0
  328. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/icon.png +0 -0
  329. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/list_cmd.js +0 -0
  330. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/list_pipe.js +0 -0
  331. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/main.js +0 -0
  332. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/open_capture.js +0 -0
  333. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/open_output_json.js +0 -0
  334. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/result.js +0 -0
  335. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/signin.js +0 -0
  336. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/svgicon.js +0 -0
  337. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/users.js +0 -0
  338. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/cmdbox/view_raw.js +0 -0
  339. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/encodingjs/LICENSE.txt +0 -0
  340. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/encodingjs/encoding.js +0 -0
  341. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/encodingjs/encoding.min.js +0 -0
  342. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/filer/filer.js +0 -0
  343. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/filer/main.css +0 -0
  344. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/filer/main.js +0 -0
  345. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/highlight/default.css +0 -0
  346. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/highlight/highlight.min.js +0 -0
  347. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/highlight/styles/tokyo-night-dark.min.css +0 -0
  348. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery/jquery.min.3.2.0.js +0 -0
  349. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-linedtextarea/README.md +0 -0
  350. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea-license.txt +0 -0
  351. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.css +0 -0
  352. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.html +0 -0
  353. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.js +0 -0
  354. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-resizable/jquery-resizable.min.js +0 -0
  355. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/AUTHORS.txt +0 -0
  356. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/LICENSE.txt +0 -0
  357. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/images/ui-icons_444444_256x240.png +0 -0
  358. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/images/ui-icons_555555_256x240.png +0 -0
  359. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/images/ui-icons_777620_256x240.png +0 -0
  360. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/images/ui-icons_777777_256x240.png +0 -0
  361. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/images/ui-icons_cc0000_256x240.png +0 -0
  362. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  363. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/jquery-ui.min.css +0 -0
  364. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/jquery-ui.min.js +0 -0
  365. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/jquery-ui.structure.min.css +0 -0
  366. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/jquery-ui.theme.min.css +0 -0
  367. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/jquery-ui/package.json +0 -0
  368. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/lightbox2/css/lightbox.min.css +0 -0
  369. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/lightbox2/images/close.png +0 -0
  370. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/lightbox2/images/loading.gif +0 -0
  371. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/lightbox2/images/next.png +0 -0
  372. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/lightbox2/images/prev.png +0 -0
  373. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/lightbox2/js/lightbox.min.js +0 -0
  374. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/split-pane/split-pane.css +0 -0
  375. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/split-pane/split-pane.js +0 -0
  376. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/tree-menu/css/tree-menu.css +0 -0
  377. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/tree-menu/image/file.png +0 -0
  378. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/tree-menu/image/folder-close.png +0 -0
  379. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/tree-menu/image/folder-open.png +0 -0
  380. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets/tree-menu/js/tree-menu.js +0 -0
  381. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/assets_license_list.txt +0 -0
  382. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/audit.html +0 -0
  383. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/filer.html +0 -0
  384. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/gui.html +0 -0
  385. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/result.html +0 -0
  386. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/signin.html +0 -0
  387. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox/web/users.html +0 -0
  388. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox.egg-info/dependency_links.txt +0 -0
  389. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox.egg-info/entry_points.txt +0 -0
  390. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox.egg-info/requires.txt +0 -0
  391. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/cmdbox.egg-info/top_level.txt +0 -0
  392. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/setup.cfg +0 -0
  393. {cmdbox-0.6.2.4 → cmdbox-0.6.3.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cmdbox
3
- Version: 0.6.2.4
3
+ Version: 0.6.3.1
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
@@ -18,7 +18,9 @@ class CmdBoxApp:
18
18
  @staticmethod
19
19
  def getInstance(appcls=None, ver=version, cli_features_packages:List[str]=None, cli_features_prefix:List[str]=None):
20
20
  if CmdBoxApp._instance is None:
21
- CmdBoxApp._instance = CmdBoxApp(appcls=appcls, ver=ver, cli_features_packages=cli_features_packages, cli_features_prefix=cli_features_prefix)
21
+ _self = appcls.__new__(appcls)
22
+ _self.__init__(appcls=appcls, ver=ver, cli_features_packages=cli_features_packages, cli_features_prefix=cli_features_prefix)
23
+ CmdBoxApp._instance = _self
22
24
  return CmdBoxApp._instance
23
25
 
24
26
  def __init__(self, appcls=None, ver=version, cli_features_packages:List[str]=None, cli_features_prefix:List[str]=None):
@@ -145,12 +147,12 @@ class CmdBoxApp:
145
147
  if logger.level == logging.DEBUG:
146
148
  logger.debug(f"args.mode={args.mode}, args.cmd={args.cmd}")
147
149
  # 警告出力時にスタックを出力する
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
150
+ import warnings
151
+ def custom_warning_handler(message, category, filename, lineno, file=None, line=None):
152
+ import traceback
153
+ logger.warning(f"Warning: {message}, Category: {category}, File: {filename}, Line: {lineno}", exc_info=True)
154
+ traceback.print_stack()
155
+ warnings.showwarning = custom_warning_handler
154
156
 
155
157
  #scmdexectime = time.perf_counter()
156
158
  feat = self.options.get_cmd_attr(args.mode, args.cmd, 'feature')
@@ -3,9 +3,8 @@ from cmdbox.app import feature, options
3
3
  from cmdbox.app.commons import convert, module, loghandler
4
4
  from cryptography.fernet import Fernet
5
5
  from pathlib import Path
6
- from pkg_resources import resource_string
7
- from rich.logging import RichHandler
8
6
  from rich.console import Console
7
+ from rich.logging import RichHandler
9
8
  from tabulate import tabulate
10
9
  from typing import List, Tuple, Dict, Any
11
10
  import argparse
@@ -13,6 +12,7 @@ import asyncio
13
12
  import datetime
14
13
  import logging
15
14
  import logging.config
15
+ import locale
16
16
  import hashlib
17
17
  import inspect
18
18
  import json
@@ -132,10 +132,11 @@ def reset_logger(name:str, stderr:bool=False, fmt:str='[%(asctime)s] %(levelname
132
132
  level (int, optional): ログレベル. Defaults to logging.INFO.
133
133
  """
134
134
  logger = logging.getLogger(name)
135
+ #colorful = [h for h in logger.handlers if isinstance(h, loghandler.ColorfulStreamHandler) or isinstance(h, RichHandler)]
135
136
  logger.handlers.clear()
136
137
  logger.propagate = False
137
138
  logger.setLevel(level)
138
- logger.addHandler(create_log_handler(stderr, fmt, datefmt, level))
139
+ logger.addHandler(create_log_handler(stderr, fmt, datefmt, level, colorful=True))
139
140
  if get_common_value('webcall', False):
140
141
  # webcallの場合はStreamHandlerを削除
141
142
  for handler in logger.handlers:
@@ -143,7 +144,7 @@ def reset_logger(name:str, stderr:bool=False, fmt:str='[%(asctime)s] %(levelname
143
144
  if issubclass(hc, logging.StreamHandler) and not issubclass(hc, logging.FileHandler):
144
145
  logger.removeHandler(handler)
145
146
 
146
- def create_log_handler(stderr:bool=False, fmt:str='[%(asctime)s] %(levelname)s - %(message)s', datefmt:str='%Y-%m-%d %H:%M:%S', level:int=logging.INFO) -> logging.Handler:
147
+ def create_log_handler(stderr:bool=False, fmt:str='[%(asctime)s] %(levelname)s - %(message)s', datefmt:str='%Y-%m-%d %H:%M:%S', level:int=logging.INFO, colorful:bool=True) -> logging.Handler:
147
148
  """
148
149
  ログハンドラを生成します。
149
150
 
@@ -151,13 +152,18 @@ def create_log_handler(stderr:bool=False, fmt:str='[%(asctime)s] %(levelname)s -
151
152
  stderr (bool, optional): 標準エラー出力を使用するかどうか. Defaults to False.
152
153
  fmt (str, optional): ログフォーマット. Defaults to '[%(asctime)s] %(levelname)s - %(message)s'.
153
154
  datefmt (str, optional): 日時フォーマット. Defaults to '%Y-%m-%d %H:%M:%S'.
155
+ level (int, optional): ログレベル. Defaults to logging.INFO.
156
+ colorful (bool, optional): カラフルなログを使用するかどうか. Defaults to True.
154
157
  Returns:
155
158
  logging.Handler: ログハンドラ
156
159
  """
157
160
  formatter = logging.Formatter(fmt, datefmt)
158
161
  #handler = RichHandler(console=Console(stderr=stderr), show_path=False, omit_repeated_times=False,
159
162
  # tracebacks_word_wrap=False, log_time_format='[%Y-%m-%d %H:%M]')
160
- handler = loghandler.ColorfulStreamHandler(sys.stdout if not stderr else sys.stderr)
163
+ if colorful:
164
+ handler = loghandler.ColorfulStreamHandler(sys.stdout if not stderr else sys.stderr)
165
+ else:
166
+ handler = logging.StreamHandler(sys.stdout if not stderr else sys.stderr)
161
167
  handler.setFormatter(formatter)
162
168
  handler.setLevel(level)
163
169
  return handler
@@ -179,7 +185,7 @@ def create_console(stderr:bool=False, file=None) -> Console:
179
185
  #console = Console(soft_wrap=True, stderr=stderr, file=file, log_time=True, log_path=False, log_time_format='[%Y-%m-%d %H:%M:%S]')
180
186
  return console
181
187
 
182
- def console_log(console:Console, message:Any, **kwargs) -> None:
188
+ def console_log(console:Console, message:Any, highlight:bool=True, **kwargs) -> None:
183
189
  """
184
190
  コンソールにログを出力します。
185
191
 
@@ -189,7 +195,7 @@ def console_log(console:Console, message:Any, **kwargs) -> None:
189
195
  **kwargs: その他のキーワード引数
190
196
  """
191
197
  dtstr = datetime.datetime.now().strftime('[%Y-%m-%d %H:%M:%S]')
192
- console.print(f"{dtstr} {message}", highlight=True, **kwargs)
198
+ console.print(f"{dtstr} {message}", highlight=highlight, **kwargs)
193
199
 
194
200
  def default_logger(debug:bool=False, ver=version, webcall:bool=False) -> logging.Logger:
195
201
  """
@@ -268,8 +274,7 @@ def load_config(mode:str, debug:bool=False, data=HOME_DIR, webcall:bool=False, v
268
274
  logging.config.dictConfig(log_config)
269
275
  logger = logging.getLogger(log_name)
270
276
  set_debug(logger, debug)
271
- config = yaml.safe_load(resource_string(version.__appid__, "config.yml"))
272
- return logger, config
277
+ return logger, {}
273
278
 
274
279
  def set_debug(logger:logging.Logger, debug:bool=False) -> None:
275
280
  """
@@ -498,19 +503,23 @@ def print_format(data:dict, format:bool, tm:float, output_json:str=None, output_
498
503
  Returns:
499
504
  str: 生成された文字列
500
505
  """
501
- if type(data) is dict and "success" in data and type(data["success"]) is dict and "performance" in data["success"] and type(data["success"]["performance"]) is list and pf is not None:
506
+ is_data_dict = isinstance(data, dict)
507
+ in_data_success = is_data_dict and 'success' in data
508
+ is_success_dict = in_data_success and isinstance(data['success'], dict)
509
+ is_data_list = isinstance(data, list)
510
+ if is_success_dict and "performance" in data["success"] and isinstance(data["success"]["performance"], list) and pf is not None:
502
511
  data["success"]["performance"] += pf
503
512
  txt = ''
504
513
  if format:
505
- if 'success' in data and type(data["success"]) is dict:
506
- data = data['success']['data'] if 'data' in data['success'] else data['success']
507
- if type(data) == list:
508
- txt = tabulate(data, headers='keys', tablefmt=tablefmt)
509
- elif type(data) == dict:
510
- txt = tabulate([data], headers='keys', tablefmt=tablefmt)
514
+ if is_success_dict:
515
+ _data = data['success']['data'] if 'data' in data['success'] else data['success']
516
+ if isinstance(_data, list):
517
+ txt = tabulate(_data, headers='keys', tablefmt=tablefmt)
518
+ elif isinstance(_data, dict):
519
+ txt = tabulate([_data], headers='keys', tablefmt=tablefmt)
511
520
  else:
512
- txt = str(data)
513
- elif type(data) == list:
521
+ txt = str(_data)
522
+ elif is_data_list:
514
523
  txt = tabulate(data, headers='keys', tablefmt=tablefmt)
515
524
  else:
516
525
  txt = tabulate([data], headers='keys', tablefmt=tablefmt)
@@ -521,13 +530,13 @@ def print_format(data:dict, format:bool, tm:float, output_json:str=None, output_
521
530
  except BrokenPipeError:
522
531
  pass
523
532
  else:
524
- if 'success' in data and type(data['success']) is dict:
533
+ if is_success_dict:
525
534
  if "performance" not in data["success"]:
526
535
  data["success"]["performance"] = []
527
536
  performance = data["success"]["performance"]
528
537
  performance.append(dict(key="app_proc", val=f"{time.perf_counter() - tm:.03f}s"))
529
538
  try:
530
- if type(data) == dict:
539
+ if is_data_dict:
531
540
  txt = json.dumps(data, default=default_json_enc, ensure_ascii=False)
532
541
  else:
533
542
  txt = data
@@ -685,6 +694,17 @@ def chopdq(target:str):
685
694
  return target
686
695
  return target[1:-1] if target.startswith('"') and target.endswith('"') else target
687
696
 
697
+ def is_japan() -> bool:
698
+ """
699
+ 日本語環境かどうかを判定します
700
+
701
+ Returns:
702
+ bool: 日本語環境ならTrue、そうでなければFalse
703
+ """
704
+ language, _ = locale.getlocale()
705
+ is_japan = language.find('Japan') >= 0 or language.find('ja_JP') >= 0
706
+ return is_japan
707
+
688
708
  def is_event_loop_running() -> bool:
689
709
  """
690
710
  イベントループが実行中かどうかを取得します。
@@ -721,7 +741,7 @@ def exec_sync(apprun, logger:logging.Logger, args:argparse.Namespace, tm:float,
721
741
  th.start()
722
742
  th.join()
723
743
  result = ctx[0] if ctx else None
724
- return 0, result, None
744
+ return result
725
745
  return asyncio.run(apprun(logger, args, tm, pf))
726
746
  return apprun(logger, args, tm, pf)
727
747
 
@@ -0,0 +1,154 @@
1
+ from cmdbox.app import common, client, feature, filer
2
+ from cmdbox.app.commons import convert, redis_client
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 logging
8
+ import requests
9
+ import urllib.parse
10
+
11
+
12
+ class ClientHttp(feature.ResultEdgeFeature):
13
+ def get_mode(self) -> Union[str, List[str]]:
14
+ """
15
+ この機能のモードを返します
16
+
17
+ Returns:
18
+ Union[str, List[str]]: モード
19
+ """
20
+ return 'client'
21
+
22
+ def get_cmd(self):
23
+ """
24
+ この機能のコマンドを返します
25
+
26
+ Returns:
27
+ str: コマンド
28
+ """
29
+ return 'http'
30
+
31
+ def get_option(self):
32
+ """
33
+ この機能のオプションを返します
34
+
35
+ Returns:
36
+ Dict[str, Any]: オプション
37
+ """
38
+ return dict(
39
+ use_redis=self.USE_REDIS_MEIGHT, nouse_webmode=False,
40
+ description_ja="HTTPサーバーに対してリクエストを送信し、レスポンスを取得します。",
41
+ description_en="Sends a request to the HTTP server and gets a response.",
42
+ choice=[
43
+ dict(opt="url", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
44
+ description_ja="リクエスト先URLを指定します。",
45
+ description_en="Specify the URL to request."),
46
+ dict(opt="proxy", type=Options.T_STR, default="no", required=False, multi=False, hide=False, choice=['no', 'yes'],
47
+ choice_show=dict(no=["send_method", "send_content_type", "send_apikey", "send_header",],
48
+ yes=[]),
49
+ description_ja="webモードで呼び出された場合、受信したリクエストパラメータをリクエスト先URLに送信するかどうかを指定します。",
50
+ description_en="Specifies whether or not to send the received request parameters to the destination URL when invoked in web mode."),
51
+ dict(opt="send_method", type=Options.T_STR, default="GET", required=True, multi=False, hide=False,
52
+ choice=['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'],
53
+ description_ja="リクエストメソッドを指定します。",
54
+ description_en="Specifies the request method."),
55
+ dict(opt="send_content_type", type=Options.T_STR, default=None, required=False, multi=False, hide=False,
56
+ choice=['', 'application/octet-stream', 'application/json', 'multipart/form-data'],
57
+ choice_show={'application/octet-stream':["send_param", "send_data",],
58
+ 'application/json':["send_data",],
59
+ 'multipart/form-data':["send_param",],},
60
+ description_ja="送信するデータのContent-Typeを指定します。",
61
+ description_en="Specifies the Content-Type of the data to be sent."),
62
+ dict(opt="send_apikey", type=Options.T_TEXT, default=None, required=False, multi=False, hide=False, choice=None,
63
+ description_ja="リクエスト先の認証で使用するAPIキーを指定します。",
64
+ description_en="Specify the API key to be used for authentication of the request destination."),
65
+ dict(opt="send_header", type=Options.T_DICT, default=None, required=False, multi=True, hide=False, choice=None,
66
+ description_ja="リクエストヘッダーを指定します。",
67
+ description_en="Specifies the request header."),
68
+ dict(opt="send_param", type=Options.T_DICT, default=None, required=False, multi=True, hide=False, choice=None,
69
+ description_ja="送信するパラメータを指定します。",
70
+ description_en="Specifies parameters to be sent."),
71
+ dict(opt="send_data", type=Options.T_TEXT, default=None, required=False, multi=False, hide=False, choice=None,
72
+ description_ja="送信するデータを指定します。",
73
+ description_en="Specifies the data to be sent."),
74
+ dict(opt="send_verify", type=Options.T_BOOL, default=False, required=False, multi=False, hide=True, choice=[False, True],
75
+ description_ja="レスポンスを受け取るまでのタイムアウトを指定します。",
76
+ description_en="Specifies the timeout before a response is received."),
77
+ dict(opt="send_timeout", type=Options.T_INT, default=30, required=False, multi=False, hide=True, choice=None,
78
+ description_ja="レスポンスを受け取るまでのタイムアウトを指定します。",
79
+ description_en="Specifies the timeout before a response is received."),
80
+ dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
81
+ description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をConsole logに出力します。",
82
+ description_en="Available only in GUI mode. Outputs standard output during command execution to Console log."),
83
+ dict(opt="capture_stdout", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
84
+ description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力をキャプチャーし、実行結果画面に表示します。",
85
+ description_en="Available only in GUI mode. Captures standard output during command execution and displays it on the execution result screen."),
86
+ dict(opt="capture_maxsize", type=Options.T_INT, default=self.DEFAULT_CAPTURE_MAXSIZE, required=False, multi=False, hide=True, choice=None,
87
+ description_ja="GUIモードでのみ使用可能です。コマンド実行時の標準出力の最大キャプチャーサイズを指定します。",
88
+ description_en="Available only in GUI mode. Specifies the maximum capture size of standard output when executing commands."),
89
+ ]
90
+ )
91
+
92
+ async def apprun(self, logger:logging.Logger, args:argparse.Namespace, tm:float, pf:List[Dict[str, float]]=[]) -> Tuple[int, Dict[str, Any], Any]:
93
+ """
94
+ この機能の実行を行います
95
+
96
+ Args:
97
+ logger (logging.Logger): ロガー
98
+ args (argparse.Namespace): 引数
99
+ tm (float): 実行開始時間
100
+ pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
101
+
102
+ Returns:
103
+ Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
104
+ """
105
+ if args.url is None:
106
+ msg = dict(warn=f"Please specify the --url option.")
107
+ common.print_format(msg, args.format, tm, None, False, pf=pf)
108
+ return 1, msg, None
109
+ query_param = {}
110
+ if args.proxy == 'yes':
111
+ from cmdbox.app.auth import signin
112
+ from fastapi import Request
113
+ scope = signin.get_request_scope()
114
+ if scope is None:
115
+ msg = dict(warn=f"Request scope is not set. Please set the request scope.")
116
+ common.print_format(msg, args.format, tm, None, False, pf=pf)
117
+ return 1, msg, None
118
+ req:Request = scope['req']
119
+ args.send_method = req.method
120
+ args.send_content_type = req.headers.get('Content-Type', None)
121
+ args.send_apikey = req.headers.get('Authorization', '').replace('Bearer ', '')
122
+ args.send_header = {k:v for k, v in req.headers.items() \
123
+ if k.lower() not in ['connection', 'proxy-authorization', 'proxy-connection', 'keep-alive',
124
+ 'transfer-encoding', 'te', 'trailer', 'upgrade', 'content-length']}
125
+ query_param = {k:v for k, v in req.query_params.items()}
126
+ args.send_data = await req.body()
127
+
128
+ url = urllib.parse.urlparse(args.url)
129
+ query = urllib.parse.parse_qs(url.query)
130
+ query = {**query, **query_param} if query else query_param
131
+ args.url = urllib.parse.urlunparse((url.scheme, url.netloc, url.path, url.params, urllib.parse.urlencode(query), url.fragment))
132
+ args.send_header = {**args.send_header, 'Authorization':f'Bearer {args.send_apikey}'} if args.send_apikey else args.send_header
133
+ res = requests.request(method=args.send_method, url=args.url, headers=args.send_header,
134
+ verify=args.send_verify, timeout=args.send_timeout, allow_redirects=True,
135
+ data=args.send_data, params=args.send_param)
136
+ if res.status_code != 200:
137
+ msg = dict(error=f"Request failed with status code {res.status_code}.")
138
+ common.print_format(msg, False, tm, None, False, pf=pf)
139
+ return 1, msg, None
140
+ content_type = res.headers.get('Content-Type', '')
141
+ if content_type.startswith('application/json'):
142
+ try:
143
+ msg = res.json()
144
+ except ValueError as e:
145
+ msg = res.text
146
+ common.print_format(msg, False, tm, None, False, pf=pf)
147
+ return 0, msg, None
148
+ elif content_type.startswith('text/'):
149
+ msg = res.text
150
+ common.print_format(msg, False, tm, None, False, pf=pf)
151
+ return 0, msg, None
152
+ common.print_format(res.content, False, tm, None, False, pf=pf)
153
+
154
+ return 0, res.content, None
@@ -1,4 +1,4 @@
1
- from cmdbox.app import common, feature
1
+ from cmdbox.app import common, feature, options
2
2
  from cmdbox.app.auth import signin
3
3
  from cmdbox.app.options import Options
4
4
  from pathlib import Path
@@ -45,10 +45,10 @@ class CmdList(feature.OneshotResultEdgeFeature):
45
45
  dict(opt="kwd", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
46
46
  description_ja=f"検索したいコマンド名を指定します。中間マッチで検索します。",
47
47
  description_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=f".{self.ver.__appid__}/user_list.yml", required=False, multi=False, hide=True, choice=None, fileio="in",
48
+ dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=False, multi=False, hide=False, choice=None, fileio="in",
49
49
  description_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。",
50
50
  description_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,
51
+ dict(opt="groups", type=Options.T_STR, default=None, required=False, multi=True, hide=False, choice=None,
52
52
  description_ja="`signin_file` を指定した場合に、このユーザーグループに許可されているコマンドリストを返すように指定します。",
53
53
  description_en="Specifies that `signin_file`, if specified, should return the list of commands allowed for this user group."),
54
54
  dict(opt="output_json", short="o", type=Options.T_FILE, default=None, required=False, multi=False, hide=True, choice=None, fileio="out",
@@ -92,11 +92,15 @@ class CmdList(feature.OneshotResultEdgeFeature):
92
92
  if not hasattr(self, 'signin_file_data') or self.signin_file_data is None:
93
93
  self.signin_file_data = signin.Signin.load_signin_file(args.signin_file, None, self=self)
94
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',''), description=r.get('description',''), tag=r.get('tag','')) for r in ret \
95
+ cmd_list = [common.loadopt(path, True) for path in paths]
96
+ cmd_list = sorted(cmd_list, key=lambda cmd: cmd["title"])
97
+ is_japan = common.is_japan()
98
+ options = Options.getInstance()
99
+ cmd_list = [dict(title=r.get('title',''), mode=r['mode'], cmd=r['cmd'],
100
+ description=r.get('description','') + options.get_cmd_attr(r['mode'], r['cmd'], 'description_ja' if is_japan else 'description_en'),
101
+ tag=r.get('tag','')) for r in cmd_list \
98
102
  if signin.Signin._check_cmd(self.signin_file_data, args.groups, r['mode'], r['cmd'], logger)]
99
- ret = dict(success=ret)
103
+ ret = dict(success=cmd_list)
100
104
 
101
105
  common.print_format(ret, args.format, tm, args.output_json, args.output_json_append, pf=pf)
102
106
 
@@ -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
- common.console_log(console, f'EXEC - {opt_list}\n'[:logsize])
185
+ common.console_log(console, message=f'EXEC - {opt_list}\n'[:logsize], highlight=(len(opt_list)<logsize-10))
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
@@ -209,11 +209,11 @@ class ExecCmd(cmdbox_web_load_cmd.LoadCmd):
209
209
  output = [dict(warn=f'The captured stdout was discarded because its size was larger than {capture_maxsize} bytes.')]
210
210
  else:
211
211
  output = [dict(warn='capture_stdout is off.')]
212
- old_stdout.write(f'EXEC OUTPUT => {output}'[:logsize]) # コマンド実行時のアウトプットはカラーリングしない
212
+ old_stdout.write(f'EXEC OUTPUT => {output}'[:logsize]+'\n') # コマンド実行時のアウトプットはカラーリングしない
213
213
  except Exception as e:
214
214
  web.logger.disabled = False # ログ出力を有効にする
215
215
  msg = f'exec_cmd error. {traceback.format_exc()}'
216
- common.console_log(console, f'EXEC - {msg}'[:logsize])
216
+ common.console_log(console, message=f'EXEC - {msg}'[:logsize], highlight=(len(msg)<logsize-10))
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