frogml-cli 0.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. frogml_cli/__init__.py +10 -0
  2. frogml_cli/cli.py +40 -0
  3. frogml_cli/commands/__init__.py +0 -0
  4. frogml_cli/commands/_logic/__init__.py +0 -0
  5. frogml_cli/commands/_logic/tools.py +6 -0
  6. frogml_cli/commands/alerts/__init__.py +0 -0
  7. frogml_cli/commands/alerts/alerts_commnad_group.py +18 -0
  8. frogml_cli/commands/alerts/delete/__init__.py +0 -0
  9. frogml_cli/commands/alerts/delete/_logic.py +5 -0
  10. frogml_cli/commands/alerts/delete/ui.py +10 -0
  11. frogml_cli/commands/alerts/list/__init__.py +0 -0
  12. frogml_cli/commands/alerts/list/_logic.py +23 -0
  13. frogml_cli/commands/alerts/list/ui.py +17 -0
  14. frogml_cli/commands/alerts/register/__init__.py +0 -0
  15. frogml_cli/commands/alerts/register/_logic.py +72 -0
  16. frogml_cli/commands/alerts/register/ui.py +30 -0
  17. frogml_cli/commands/audience/__init__.py +0 -0
  18. frogml_cli/commands/audience/_logic/__init__.py +0 -0
  19. frogml_cli/commands/audience/_logic/config/__init__.py +0 -0
  20. frogml_cli/commands/audience/_logic/config/config_base.py +15 -0
  21. frogml_cli/commands/audience/_logic/config/parser.py +30 -0
  22. frogml_cli/commands/audience/_logic/config/v1/__init__.py +0 -0
  23. frogml_cli/commands/audience/_logic/config/v1/audience_config.py +25 -0
  24. frogml_cli/commands/audience/_logic/config/v1/conditions_config.py +59 -0
  25. frogml_cli/commands/audience/_logic/config/v1/config_v1.py +23 -0
  26. frogml_cli/commands/audience/_logic/config/v1/route_config.py +15 -0
  27. frogml_cli/commands/audience/_logic/config/v1/spec.py +9 -0
  28. frogml_cli/commands/audience/audience_api_dump.py +86 -0
  29. frogml_cli/commands/audience/audience_commands_group.py +30 -0
  30. frogml_cli/commands/audience/create/__init__.py +0 -0
  31. frogml_cli/commands/audience/create/logic.py +41 -0
  32. frogml_cli/commands/audience/create/ui.py +21 -0
  33. frogml_cli/commands/audience/delete/__init__.py +0 -0
  34. frogml_cli/commands/audience/delete/logic.py +13 -0
  35. frogml_cli/commands/audience/delete/ui.py +17 -0
  36. frogml_cli/commands/audience/get/__init__.py +0 -0
  37. frogml_cli/commands/audience/get/logic.py +14 -0
  38. frogml_cli/commands/audience/get/ui.py +25 -0
  39. frogml_cli/commands/audience/list/__init__.py +0 -0
  40. frogml_cli/commands/audience/list/logic.py +16 -0
  41. frogml_cli/commands/audience/list/ui.py +26 -0
  42. frogml_cli/commands/audience/update/__init__.py +0 -0
  43. frogml_cli/commands/audience/update/logic.py +37 -0
  44. frogml_cli/commands/audience/update/ui.py +26 -0
  45. frogml_cli/commands/auto_scalling/__init__.py +0 -0
  46. frogml_cli/commands/auto_scalling/_logic/__init__.py +0 -0
  47. frogml_cli/commands/auto_scalling/_logic/config/__init__.py +3 -0
  48. frogml_cli/commands/auto_scalling/_logic/config/config.py +152 -0
  49. frogml_cli/commands/auto_scalling/_logic/config/parser.py +21 -0
  50. frogml_cli/commands/auto_scalling/attach/__init__.py +0 -0
  51. frogml_cli/commands/auto_scalling/attach/_logic.py +43 -0
  52. frogml_cli/commands/auto_scalling/attach/ui.py +21 -0
  53. frogml_cli/commands/auto_scalling/autoscaling_commands_group.py +15 -0
  54. frogml_cli/commands/automations/__init__.py +0 -0
  55. frogml_cli/commands/automations/automations_commands_group.py +30 -0
  56. frogml_cli/commands/automations/delete/__init__.py +0 -0
  57. frogml_cli/commands/automations/delete/_logic.py +6 -0
  58. frogml_cli/commands/automations/delete/ui.py +23 -0
  59. frogml_cli/commands/automations/executions/__init__.py +0 -0
  60. frogml_cli/commands/automations/executions/executions_commands_group.py +14 -0
  61. frogml_cli/commands/automations/executions/list/__init__.py +0 -0
  62. frogml_cli/commands/automations/executions/list/_logic.py +8 -0
  63. frogml_cli/commands/automations/executions/list/ui.py +27 -0
  64. frogml_cli/commands/automations/list/__init__.py +0 -0
  65. frogml_cli/commands/automations/list/_logic.py +36 -0
  66. frogml_cli/commands/automations/list/ui.py +21 -0
  67. frogml_cli/commands/automations/register/__init__.py +0 -0
  68. frogml_cli/commands/automations/register/_logic.py +43 -0
  69. frogml_cli/commands/automations/register/ui.py +44 -0
  70. frogml_cli/commands/config/__init__.py +0 -0
  71. frogml_cli/commands/config/add/__init__.py +0 -0
  72. frogml_cli/commands/config/add/ui.py +62 -0
  73. frogml_cli/commands/config/config_commands_group.py +11 -0
  74. frogml_cli/commands/feature_store/__init__.py +0 -0
  75. frogml_cli/commands/feature_store/backfill/__init__.py +0 -0
  76. frogml_cli/commands/feature_store/backfill/_logic.py +140 -0
  77. frogml_cli/commands/feature_store/backfill/ui.py +129 -0
  78. frogml_cli/commands/feature_store/delete/__init__.py +0 -0
  79. frogml_cli/commands/feature_store/delete/_logic.py +107 -0
  80. frogml_cli/commands/feature_store/delete/ui.py +40 -0
  81. frogml_cli/commands/feature_store/execution/__init__.py +0 -0
  82. frogml_cli/commands/feature_store/execution/ui.py +19 -0
  83. frogml_cli/commands/feature_store/feature_store_command_group.py +29 -0
  84. frogml_cli/commands/feature_store/list/__init__.py +0 -0
  85. frogml_cli/commands/feature_store/list/ui.py +140 -0
  86. frogml_cli/commands/feature_store/pause/__init__.py +0 -0
  87. frogml_cli/commands/feature_store/pause/ui.py +18 -0
  88. frogml_cli/commands/feature_store/register/__init__.py +0 -0
  89. frogml_cli/commands/feature_store/register/_logic.py +369 -0
  90. frogml_cli/commands/feature_store/register/ui.py +111 -0
  91. frogml_cli/commands/feature_store/resume/__init__.py +0 -0
  92. frogml_cli/commands/feature_store/resume/ui.py +18 -0
  93. frogml_cli/commands/feature_store/trigger/__init__.py +0 -0
  94. frogml_cli/commands/feature_store/trigger/ui.py +39 -0
  95. frogml_cli/commands/models/__init__.py +0 -0
  96. frogml_cli/commands/models/build/__init__.py +0 -0
  97. frogml_cli/commands/models/build/_logic/__init__.py +0 -0
  98. frogml_cli/commands/models/build/_logic/build_steps.py +42 -0
  99. frogml_cli/commands/models/build/_logic/client_logs/__init__.py +0 -0
  100. frogml_cli/commands/models/build/_logic/client_logs/cli_phase_run_handler.py +123 -0
  101. frogml_cli/commands/models/build/_logic/client_logs/cli_trigger_build_logger.py +19 -0
  102. frogml_cli/commands/models/build/_logic/client_logs/logger.py +88 -0
  103. frogml_cli/commands/models/build/_logic/client_logs/messages.py +36 -0
  104. frogml_cli/commands/models/build/_logic/client_logs/spinner.py +14 -0
  105. frogml_cli/commands/models/build/_logic/client_logs/trigger_build_logger.py +54 -0
  106. frogml_cli/commands/models/build/_logic/client_logs/utils.py +12 -0
  107. frogml_cli/commands/models/build/_logic/phase/__init__.py +0 -0
  108. frogml_cli/commands/models/build/_logic/phase/a_fetch_model_code/__init__.py +20 -0
  109. frogml_cli/commands/models/build/_logic/phase/a_fetch_model_code/get_sdk_version_step.py +15 -0
  110. frogml_cli/commands/models/build/_logic/phase/b_remote_register_frogml_build/__init__.py +16 -0
  111. frogml_cli/commands/models/build/_logic/phase/c_deploy/__init__.py +6 -0
  112. frogml_cli/commands/models/build/_logic/phase/c_deploy/build_polling_status.py +55 -0
  113. frogml_cli/commands/models/build/_logic/phase/c_deploy/deploy_build.py +61 -0
  114. frogml_cli/commands/models/build/_logic/util/__init__.py +0 -0
  115. frogml_cli/commands/models/build/_logic/util/protobuf_factory.py +45 -0
  116. frogml_cli/commands/models/build/_logic/util/step_decorator.py +60 -0
  117. frogml_cli/commands/models/build/_logic/util/text.py +9 -0
  118. frogml_cli/commands/models/build/_logic/wait_until_finished.py +27 -0
  119. frogml_cli/commands/models/build/ui.py +337 -0
  120. frogml_cli/commands/models/builds/__init__.py +0 -0
  121. frogml_cli/commands/models/builds/builds_commands_group.py +16 -0
  122. frogml_cli/commands/models/builds/cancel/__init__.py +0 -0
  123. frogml_cli/commands/models/builds/cancel/_logic.py +5 -0
  124. frogml_cli/commands/models/builds/cancel/ui.py +15 -0
  125. frogml_cli/commands/models/builds/logs/__init__.py +0 -0
  126. frogml_cli/commands/models/builds/logs/ui.py +35 -0
  127. frogml_cli/commands/models/builds/status/__init__.py +0 -0
  128. frogml_cli/commands/models/builds/status/_logic.py +6 -0
  129. frogml_cli/commands/models/builds/status/ui.py +39 -0
  130. frogml_cli/commands/models/create/__init__.py +0 -0
  131. frogml_cli/commands/models/create/_logic.py +40 -0
  132. frogml_cli/commands/models/create/ui.py +46 -0
  133. frogml_cli/commands/models/delete/__init__.py +0 -0
  134. frogml_cli/commands/models/delete/_logic.py +18 -0
  135. frogml_cli/commands/models/delete/ui.py +25 -0
  136. frogml_cli/commands/models/deployments/__init__.py +0 -0
  137. frogml_cli/commands/models/deployments/deploy/__init__.py +0 -0
  138. frogml_cli/commands/models/deployments/deploy/_logic/__init__.py +0 -0
  139. frogml_cli/commands/models/deployments/deploy/_logic/advance_deployment_options_handler.py +31 -0
  140. frogml_cli/commands/models/deployments/deploy/_logic/base_deploy_executor.py +70 -0
  141. frogml_cli/commands/models/deployments/deploy/_logic/deploy_config.py +261 -0
  142. frogml_cli/commands/models/deployments/deploy/_logic/deployment.py +407 -0
  143. frogml_cli/commands/models/deployments/deploy/_logic/deployment_message_helpers.py +116 -0
  144. frogml_cli/commands/models/deployments/deploy/_logic/deployment_response_handler.py +156 -0
  145. frogml_cli/commands/models/deployments/deploy/_logic/deployment_size_mapper.py +98 -0
  146. frogml_cli/commands/models/deployments/deploy/_logic/get_latest_successful_build.py +28 -0
  147. frogml_cli/commands/models/deployments/deploy/_logic/local_deployment.py +193 -0
  148. frogml_cli/commands/models/deployments/deploy/batch/__init__.py +0 -0
  149. frogml_cli/commands/models/deployments/deploy/batch/_logic/__init__.py +0 -0
  150. frogml_cli/commands/models/deployments/deploy/batch/_logic/advanced_deployment_mapper.py +15 -0
  151. frogml_cli/commands/models/deployments/deploy/batch/_logic/deploy_executor.py +24 -0
  152. frogml_cli/commands/models/deployments/deploy/batch/ui.py +119 -0
  153. frogml_cli/commands/models/deployments/deploy/deploy_commands_group.py +19 -0
  154. frogml_cli/commands/models/deployments/deploy/realtime/__init__.py +0 -0
  155. frogml_cli/commands/models/deployments/deploy/realtime/_logic/__init__.py +0 -0
  156. frogml_cli/commands/models/deployments/deploy/realtime/_logic/advanced_deployment_mapper.py +21 -0
  157. frogml_cli/commands/models/deployments/deploy/realtime/_logic/deploy_executor.py +24 -0
  158. frogml_cli/commands/models/deployments/deploy/realtime/_logic/serving_strategy_mapper.py +75 -0
  159. frogml_cli/commands/models/deployments/deploy/realtime/ui.py +202 -0
  160. frogml_cli/commands/models/deployments/deploy/streaming/__init__.py +0 -0
  161. frogml_cli/commands/models/deployments/deploy/streaming/_logic/__init__.py +0 -0
  162. frogml_cli/commands/models/deployments/deploy/streaming/_logic/deploy_executor.py +24 -0
  163. frogml_cli/commands/models/deployments/deploy/streaming/_logic/serving_strategy_mapper.py +38 -0
  164. frogml_cli/commands/models/deployments/deploy/streaming/ui.py +206 -0
  165. frogml_cli/commands/models/deployments/undeploy/__init__.py +0 -0
  166. frogml_cli/commands/models/deployments/undeploy/_logic/__init__.py +0 -0
  167. frogml_cli/commands/models/deployments/undeploy/_logic/request_undeploy.py +249 -0
  168. frogml_cli/commands/models/deployments/undeploy/ui.py +61 -0
  169. frogml_cli/commands/models/describe/__init__.py +0 -0
  170. frogml_cli/commands/models/describe/_logic.py +169 -0
  171. frogml_cli/commands/models/describe/ui.py +35 -0
  172. frogml_cli/commands/models/executions/__init__.py +0 -0
  173. frogml_cli/commands/models/executions/cancel/__init__.py +0 -0
  174. frogml_cli/commands/models/executions/cancel/_logic.py +9 -0
  175. frogml_cli/commands/models/executions/cancel/ui.py +27 -0
  176. frogml_cli/commands/models/executions/execution_commands_group.py +24 -0
  177. frogml_cli/commands/models/executions/report/__init__.py +0 -0
  178. frogml_cli/commands/models/executions/report/_logic.py +14 -0
  179. frogml_cli/commands/models/executions/report/ui.py +43 -0
  180. frogml_cli/commands/models/executions/start/__init__.py +0 -0
  181. frogml_cli/commands/models/executions/start/_logic.py +83 -0
  182. frogml_cli/commands/models/executions/start/ui.py +208 -0
  183. frogml_cli/commands/models/executions/status/__init__.py +0 -0
  184. frogml_cli/commands/models/executions/status/_logic.py +13 -0
  185. frogml_cli/commands/models/executions/status/ui.py +27 -0
  186. frogml_cli/commands/models/init/__init__.py +0 -0
  187. frogml_cli/commands/models/init/_logic/__init__.py +0 -0
  188. frogml_cli/commands/models/init/_logic/initialize_model_structure.py +40 -0
  189. frogml_cli/commands/models/init/_logic/template/__init__.py +0 -0
  190. frogml_cli/commands/models/init/_logic/template/churn/__init__.py +0 -0
  191. frogml_cli/commands/models/init/_logic/template/churn/cookiecutter.json +3 -0
  192. frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/__init__.py +0 -0
  193. frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/__init__.py +5 -0
  194. frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/conda.yml +10 -0
  195. frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/data.csv +1001 -0
  196. frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/model.py +99 -0
  197. frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests/__init__.py +0 -0
  198. frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests/it/__init__.py +0 -0
  199. frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests/it/test_churn.py +32 -0
  200. frogml_cli/commands/models/init/_logic/template/credit_risk/__init__.py +0 -0
  201. frogml_cli/commands/models/init/_logic/template/credit_risk/cookiecutter.json +3 -0
  202. frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/__init__.py +0 -0
  203. frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/__init__.py +5 -0
  204. frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/conda.yml +11 -0
  205. frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/data.csv +1001 -0
  206. frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/model.py +108 -0
  207. frogml_cli/commands/models/init/_logic/template/general/__init__.py +0 -0
  208. frogml_cli/commands/models/init/_logic/template/general/cookiecutter.json +6 -0
  209. frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/__init__.py +0 -0
  210. frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.main_directory}}/__init__.py +5 -0
  211. frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.main_directory}}/conda.yml +8 -0
  212. frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.main_directory}}/model.py +66 -0
  213. frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.test_directory}}/__init__.py +0 -0
  214. frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.test_directory}}/test_qwak_model.py +5 -0
  215. frogml_cli/commands/models/init/_logic/template/titanic/__init__.py +0 -0
  216. frogml_cli/commands/models/init/_logic/template/titanic/cookiecutter.json +3 -0
  217. frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/__init__.py +0 -0
  218. frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/main/__init__.py +5 -0
  219. frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/main/conda.yml +11 -0
  220. frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/main/model.py +98 -0
  221. frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests/__init__.py +0 -0
  222. frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests/it/__init__.py +0 -0
  223. frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests/it/test_titanic.py +24 -0
  224. frogml_cli/commands/models/init/_logic/template/titanic_poetry/__init__.py +0 -0
  225. frogml_cli/commands/models/init/_logic/template/titanic_poetry/cookiecutter.json +3 -0
  226. frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/__init__.py +0 -0
  227. frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/main/__init__.py +5 -0
  228. frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/main/model.py +98 -0
  229. frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/main/pyproject.toml +20 -0
  230. frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests/__init__.py +0 -0
  231. frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests/it/__init__.py +0 -0
  232. frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests/it/test_titanic.py +25 -0
  233. frogml_cli/commands/models/init/ui.py +61 -0
  234. frogml_cli/commands/models/list/__init__.py +0 -0
  235. frogml_cli/commands/models/list/_logic.py +5 -0
  236. frogml_cli/commands/models/list/ui.py +41 -0
  237. frogml_cli/commands/models/list_models/__init__.py +0 -0
  238. frogml_cli/commands/models/list_models/_logic.py +11 -0
  239. frogml_cli/commands/models/list_models/ui.py +60 -0
  240. frogml_cli/commands/models/metadata/__init__.py +0 -0
  241. frogml_cli/commands/models/metadata/_logic.py +12 -0
  242. frogml_cli/commands/models/metadata/ui.py +60 -0
  243. frogml_cli/commands/models/models_command_group.py +44 -0
  244. frogml_cli/commands/models/runtime/__init__.py +0 -0
  245. frogml_cli/commands/models/runtime/logs/__init__.py +0 -0
  246. frogml_cli/commands/models/runtime/logs/ui.py +63 -0
  247. frogml_cli/commands/models/runtime/runtime_commands_group.py +17 -0
  248. frogml_cli/commands/models/runtime/update/__init__.py +0 -0
  249. frogml_cli/commands/models/runtime/update/_logic.py +9 -0
  250. frogml_cli/commands/models/runtime/update/ui.py +17 -0
  251. frogml_cli/commands/secrets/__init__.py +0 -0
  252. frogml_cli/commands/secrets/delete/__init__.py +0 -0
  253. frogml_cli/commands/secrets/delete/_logic.py +5 -0
  254. frogml_cli/commands/secrets/delete/ui.py +21 -0
  255. frogml_cli/commands/secrets/get/__init__.py +0 -0
  256. frogml_cli/commands/secrets/get/_logic.py +5 -0
  257. frogml_cli/commands/secrets/get/ui.py +17 -0
  258. frogml_cli/commands/secrets/secrets_commands_group.py +19 -0
  259. frogml_cli/commands/secrets/set/__init__.py +0 -0
  260. frogml_cli/commands/secrets/set/_logic.py +5 -0
  261. frogml_cli/commands/secrets/set/ui.py +16 -0
  262. frogml_cli/commands/ui_tools.py +18 -0
  263. frogml_cli/exceptions/__init__.py +14 -0
  264. frogml_cli/exceptions/frogml_command_exception.py +2 -0
  265. frogml_cli/exceptions/frogml_deploy_new_build_failed.py +5 -0
  266. frogml_cli/exceptions/frogml_resource_not_found.py +2 -0
  267. frogml_cli/inner/__init__.py +0 -0
  268. frogml_cli/inner/file_registry.py +98 -0
  269. frogml_cli/inner/tools/__init__.py +0 -0
  270. frogml_cli/inner/tools/cli_tools.py +179 -0
  271. frogml_cli/inner/tools/config_handler.py +29 -0
  272. frogml_cli/inner/tools/dataclasses_utils.py +21 -0
  273. frogml_cli/inner/tools/logger/__init__.py +3 -0
  274. frogml_cli/inner/tools/logger/logger.py +278 -0
  275. frogml_cli/inner/tools/logger/logging.yml +79 -0
  276. frogml_cli/inner/tools/tracking.py +47 -0
  277. frogml_cli/main.py +9 -0
  278. frogml_cli/tools/__init__.py +0 -0
  279. frogml_cli/tools/colors.py +13 -0
  280. frogml_cli/tools/const.py +3 -0
  281. frogml_cli/tools/files.py +63 -0
  282. frogml_cli/tools/log_handling.py +159 -0
  283. frogml_cli/tools/utils.py +45 -0
  284. frogml_cli-0.0.1.dist-info/METADATA +51 -0
  285. frogml_cli-0.0.1.dist-info/RECORD +287 -0
  286. frogml_cli-0.0.1.dist-info/WHEEL +4 -0
  287. frogml_cli-0.0.1.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,63 @@
1
+ import os
2
+ import shutil
3
+
4
+
5
+ def copytree(
6
+ src,
7
+ dst,
8
+ symlinks=False,
9
+ ignore=None,
10
+ ignore_dangling_symlinks=False,
11
+ dirs_exist_ok=False,
12
+ ):
13
+ names = os.listdir(src)
14
+ if ignore is not None:
15
+ ignored_names = ignore(src, names)
16
+ else:
17
+ ignored_names = set()
18
+
19
+ os.makedirs(dst, exist_ok=dirs_exist_ok)
20
+ errors = []
21
+ for name in names:
22
+ if name in ignored_names:
23
+ continue
24
+ srcname = os.path.join(src, name)
25
+ dstname = os.path.join(dst, name)
26
+ try:
27
+ if os.path.islink(srcname):
28
+ linkto = os.readlink(srcname)
29
+ if symlinks:
30
+ # We can't just leave it to `copy_function` because legacy
31
+ # code with a custom `copy_function` may rely on copytree
32
+ # doing the right thing.
33
+ os.symlink(linkto, dstname)
34
+ shutil.copystat(srcname, dstname, follow_symlinks=not symlinks)
35
+ else:
36
+ # ignore dangling symlink if the flag is on
37
+ if not os.path.exists(linkto) and ignore_dangling_symlinks:
38
+ continue
39
+ # otherwise let the copy occurs. copy2 will raise an error
40
+ if os.path.isdir(srcname):
41
+ copytree(srcname, dstname, symlinks, ignore)
42
+ else:
43
+ shutil.copy2(srcname, dstname)
44
+ elif os.path.isdir(srcname):
45
+ copytree(srcname, dstname, symlinks, ignore)
46
+ else:
47
+ # Will raise a SpecialFileError for unsupported file types
48
+ shutil.copy2(srcname, dstname)
49
+ # catch the Error from the recursive copytree so that we can
50
+ # continue with other files
51
+ except shutil.Error as err:
52
+ errors.extend(err.args[0])
53
+ except OSError as why:
54
+ errors.append((srcname, dstname, str(why)))
55
+ try:
56
+ shutil.copystat(src, dst)
57
+ except OSError as why:
58
+ # Copying file access times may fail on Windows
59
+ if getattr(why, "winerror", None) is None:
60
+ errors.append((src, dst, str(why)))
61
+ if errors:
62
+ raise shutil.Error(errors)
63
+ return dst
@@ -0,0 +1,159 @@
1
+ import time
2
+ from datetime import datetime, timedelta, timezone
3
+
4
+ from frogml._proto.qwak.builds.builds_pb2 import BuildStatus
5
+ from frogml.core.clients.build_orchestrator import BuildOrchestratorClient
6
+ from frogml.core.clients.logging_client import LoggingClient
7
+ from frogml.core.exceptions import FrogmlException
8
+
9
+ from frogml_cli.tools.colors import Color
10
+
11
+ INGESTED_TIMESTAMP_FORMAT = "%Y-%m-%dT%H:%M:%S.%f"
12
+ # Ingested timestamp arrives with format "1900-01-01T00:00:00.000000000Z" but python doesn't support
13
+ # nanoseconds or Zulu
14
+ INGESTED_TIMESTAMP_MAXSIZE = 26
15
+ # Because the source of the timestamp truncates trailing zeros, we need to
16
+ # support two formats for the timestamp that is exactly on the second
17
+ ALTERNATIVE_INGESTED_TIMESTAMP_FORMAT_WITHOUT_DECIMALS = "%Y-%m-%dT%H:%M:%S"
18
+
19
+
20
+ class FrogmlLogHandling:
21
+ TIME_UNITS = ["seconds", "minutes", "hours", "days"]
22
+ FOLLOW_SLEEP_IF_NO_RESULTS_SECS = 5
23
+ TIME_FORMAT = "%Y-%m-%dT%H:%M:%S"
24
+ BUILD_PENDING_STATUS = ["IN_PROGRESS", "REMOTE_BUILD_INITIALIZING"]
25
+ BUILD_FINISHED_STATUS = [
26
+ "INVALID",
27
+ "SUCCESSFUL",
28
+ "FAILED",
29
+ "REMOTE_BUILD_CANCELLED",
30
+ "REMOTE_BUILD_TIMED_OUT",
31
+ "REMOTE_BUILD_UNKNOWN",
32
+ ]
33
+
34
+ def __init__(self):
35
+ self.log_formatter = self.LogFormatting()
36
+
37
+ @staticmethod
38
+ def get_build_status_name(build_client, build_id: str):
39
+ return BuildStatus.Name(build_client.get_build(build_id).build.build_status)
40
+
41
+ def get_logs(
42
+ self, follow, since, number_of_results, grep, source_params, source_name
43
+ ):
44
+ after = self.parse_since(since)
45
+ after = after.strftime(self.TIME_FORMAT) if after is not None else after
46
+
47
+ logging_client = LoggingClient()
48
+ if source_name == "build":
49
+ build_client = BuildOrchestratorClient()
50
+ while True:
51
+ params = {
52
+ **source_params,
53
+ "before_offset": None,
54
+ "after_offset": after,
55
+ "max_number_of_results": number_of_results,
56
+ "log_text_filter": grep,
57
+ }
58
+ if source_name == "runtime_model":
59
+ response = logging_client.read_model_runtime_logs(**params)
60
+ elif source_name == "build":
61
+ response = logging_client.read_build_logs(**params)
62
+ else:
63
+ raise FrogmlException(
64
+ f"Provided a non existing source name [{source_name}]"
65
+ )
66
+
67
+ if response.log_line:
68
+ formatted_log_lines = self.log_formatter.format_logs(
69
+ response.log_line, without_instance_id=True
70
+ )
71
+ print("\n".join(formatted_log_lines), end="")
72
+ after = response.last_offset
73
+ elif follow:
74
+ if source_name == "build":
75
+ build_status = self.get_build_status_name(
76
+ build_client, source_params["build_id"]
77
+ )
78
+ if build_status in self.BUILD_FINISHED_STATUS:
79
+ break
80
+ time.sleep(self.FOLLOW_SLEEP_IF_NO_RESULTS_SECS)
81
+ else:
82
+ print("No logs returned")
83
+ return
84
+
85
+ if not follow:
86
+ break
87
+
88
+ def parse_since(self, since_sentence):
89
+ if since_sentence is None:
90
+ return None
91
+
92
+ timedelta_params = {}
93
+ split_line = since_sentence.split(" ")
94
+
95
+ for base_index in range(0, len(split_line) - 1, 2):
96
+ amount_string = split_line[base_index]
97
+ if not amount_string.isdigit():
98
+ raise FrogmlException(
99
+ "First word of [--since] must be a number representing "
100
+ "the amount of the time unit. (i.e. 3 minutes ago)"
101
+ )
102
+ time_unit = split_line[base_index + 1].lower()
103
+ if time_unit not in self.TIME_UNITS:
104
+ raise FrogmlException(
105
+ f"Must provide one of: {self.TIME_UNITS} to [--since] paramater. (i.e. 2 hours ago)"
106
+ )
107
+ timedelta_params[time_unit] = int(amount_string)
108
+
109
+ return datetime.now(timezone.utc) - timedelta(**timedelta_params)
110
+
111
+ class LogFormatting:
112
+ def __init__(self):
113
+ self.instance_color_map = {}
114
+ self.colors = [
115
+ Color.PURPLE,
116
+ Color.CYAN,
117
+ Color.DARKCYAN,
118
+ Color.BLUE,
119
+ Color.GREEN,
120
+ Color.YELLOW,
121
+ Color.WHITE,
122
+ Color.GREY,
123
+ ]
124
+
125
+ def __format_datetime(self, timestamp_string):
126
+ if timestamp_string.endswith("Z"):
127
+ timestamp_string = timestamp_string[:-1]
128
+ try:
129
+ return f"{datetime.strptime(timestamp_string[:INGESTED_TIMESTAMP_MAXSIZE], INGESTED_TIMESTAMP_FORMAT)}\t"
130
+ except ValueError:
131
+ return f"{datetime.strptime(timestamp_string, ALTERNATIVE_INGESTED_TIMESTAMP_FORMAT_WITHOUT_DECIMALS)}\t"
132
+
133
+ def format_logs(self, log_lines, without_instance_id: bool = False):
134
+ colors_lines = []
135
+
136
+ for line in log_lines:
137
+ if line.source_instance_id not in self.instance_color_map:
138
+ source_id = len(self.instance_color_map) + 1
139
+ self.instance_color_map[line.source_instance_id] = {
140
+ "id": source_id,
141
+ "color": self.colors[source_id % len(self.colors)],
142
+ }
143
+
144
+ instance_params = self.instance_color_map[line.source_instance_id]
145
+ datetime_prefix = self.__format_datetime(line.ingested_iso_timestamp)
146
+ prefix = ""
147
+ if "level" in line.metadata:
148
+ prefix = f"{prefix}{line.metadata['level']} - "
149
+
150
+ if "phase" in line.metadata:
151
+ prefix = f"{prefix}{line.metadata['phase']} - "
152
+
153
+ if without_instance_id:
154
+ formatted_line = f'{instance_params["color"]}{datetime_prefix}{prefix}{line.text}{Color.END}'
155
+ else:
156
+ formatted_line = f'{datetime_prefix}{instance_params["id"]} - {instance_params["color"]}{prefix}{line.text}{Color.END}'
157
+ colors_lines.append(formatted_line)
158
+
159
+ return colors_lines
@@ -0,0 +1,45 @@
1
+ import logging
2
+ import sys
3
+ from contextlib import contextmanager
4
+ from typing import Callable, Optional
5
+
6
+ from frogml.core.tools.logger.logger import (
7
+ get_frogml_logger,
8
+ get_frogml_logger_verbosity_level,
9
+ )
10
+ from yaspin import yaspin
11
+
12
+ logger = get_frogml_logger()
13
+
14
+
15
+ @contextmanager
16
+ def frogml_spinner(
17
+ begin_text: Optional[str],
18
+ end_text: Optional[str] = "",
19
+ print_callback: Callable[[str], None] = logger.info,
20
+ ):
21
+ """FrogML spinner.
22
+
23
+ Args:
24
+ begin_text: Text to shown when spinner starts.
25
+ end_text: Text to shown when spinner ends.
26
+ print_callback: Callback used to print the output.
27
+ """
28
+ if (
29
+ logging.getLevelName(get_frogml_logger_verbosity_level()) < logging.WARNING
30
+ if print_callback != print
31
+ else False
32
+ ) or not sys.stdout.isatty():
33
+ print_callback(begin_text)
34
+ yield
35
+ print_callback(end_text)
36
+ else:
37
+ with yaspin(text=begin_text, color="blue", timer=True) as sp:
38
+ try:
39
+ yield sp
40
+ except Exception as e:
41
+ sp.fail("💥")
42
+ raise e
43
+ if end_text:
44
+ sp.text = end_text
45
+ sp.ok("✅")
@@ -0,0 +1,51 @@
1
+ Metadata-Version: 2.3
2
+ Name: frogml-cli
3
+ Version: 0.0.1
4
+ Summary: Frogml CLI for frogml models
5
+ License: Apache-2.0
6
+ Keywords: mlops,ml,deployment,serving,model,jfrog
7
+ Author: JFrog Ltd.
8
+ Author-email: contact@jfrog.com
9
+ Requires-Python: >=3.9,<3.12
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.7
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: Implementation :: CPython
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Provides-Extra: batch
21
+ Provides-Extra: feature-store
22
+ Provides-Extra: feedback
23
+ Provides-Extra: local-deployment
24
+ Requires-Dist: boto3 (>=1.24.116,<2.0.0) ; extra == "batch" or extra == "feedback" or extra == "local-deployment"
25
+ Requires-Dist: catboost (>=1.1.11)
26
+ Requires-Dist: click (==8.1.8)
27
+ Requires-Dist: cloudpickle (==2.2.1) ; extra == "feature-store"
28
+ Requires-Dist: cookiecutter
29
+ Requires-Dist: croniter (==1.4.1)
30
+ Requires-Dist: frogml (>=1.1.24)
31
+ Requires-Dist: frogml-inference (>=0.0.1,<0.0.2)
32
+ Requires-Dist: gitpython (>=2.1.0)
33
+ Requires-Dist: joblib (>=1.1.0,<2.0.0) ; extra == "batch" or extra == "feedback"
34
+ Requires-Dist: numpy (<2.0.0)
35
+ Requires-Dist: pandas (>=2.3.0,<3.0.0) ; extra == "batch" or extra == "feedback" or extra == "feature-store"
36
+ Requires-Dist: pyarrow (>=6.0.0) ; extra == "batch" or extra == "feature-store"
37
+ Requires-Dist: pyathena (>=2.2.0,!=2.18.0) ; extra == "feature-store"
38
+ Requires-Dist: pyspark (==3.4.2) ; extra == "feature-store"
39
+ Requires-Dist: python-json-logger (>=3.2.1,<4.0.0)
40
+ Requires-Dist: rich (>=13.0.0)
41
+ Requires-Dist: tabulate (>=0.8.0)
42
+ Requires-Dist: yaspin (>=2.0.0)
43
+ Project-URL: Home page, https://www.jfrog.com/
44
+ Description-Content-Type: text/markdown
45
+
46
+ # Frogml cli
47
+
48
+ Frogml cli is an end-to-end production ML platform designed to allow data scientists to build, deploy, and monitor their models in production with minimal engineering friction.
49
+
50
+ ### Frogml cli
51
+
@@ -0,0 +1,287 @@
1
+ frogml_cli/__init__.py,sha256=--BSCElfRpYapX7RjsaLuPosIsEKX_n43lfCZw2BI7s,157
2
+ frogml_cli/cli.py,sha256=Gh-KPvBf_X243Cz2TGx_mWd4K4NgXcSmpBxZfrFQSkc,1585
3
+ frogml_cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ frogml_cli/commands/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ frogml_cli/commands/_logic/tools.py,sha256=uJOSfpifONXjFJjaHvm_7ivTs8K0PO56YoxhU0dktPU,239
6
+ frogml_cli/commands/alerts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ frogml_cli/commands/alerts/alerts_commnad_group.py,sha256=zXQIJUMqUv4EpPCRXfELw-_h4Kq7EfaKP5cPNBJSMt8,500
8
+ frogml_cli/commands/alerts/delete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ frogml_cli/commands/alerts/delete/_logic.py,sha256=x-5YnepcLjC-SgdZ6vtq4TAaZqfg2JRj5uI9Xpg2zUE,186
10
+ frogml_cli/commands/alerts/delete/ui.py,sha256=v1HrRbr-QnLah84lkgNjBvxXS0MnPKjdB6RwUkQbsZE,321
11
+ frogml_cli/commands/alerts/list/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ frogml_cli/commands/alerts/list/_logic.py,sha256=8g6hj2Sr9Gm3ZiizROta23j4dXyt_9xub0qfTl3bf9Q,853
13
+ frogml_cli/commands/alerts/list/ui.py,sha256=idcJ1GRY7PfhfEooc3e7qpdX_1kH-XIFAoUlyNxKIbM,498
14
+ frogml_cli/commands/alerts/register/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ frogml_cli/commands/alerts/register/_logic.py,sha256=XqPJ484b-wMpJ3USTNkzafMM5mAQfmxm4JN95iwV9gk,2532
16
+ frogml_cli/commands/alerts/register/ui.py,sha256=ajAeQB-5kI9YVstKD-fuD9LPc_3q8-XPMzn6FPWZ250,743
17
+ frogml_cli/commands/audience/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ frogml_cli/commands/audience/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ frogml_cli/commands/audience/_logic/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ frogml_cli/commands/audience/_logic/config/config_base.py,sha256=d1i5tKV96OibjhlCTFDLvsGk0CXD8VYpOBcoHksdzus,337
21
+ frogml_cli/commands/audience/_logic/config/parser.py,sha256=-_luJYGTkff9SkIk7-5-dbyPLzuTGYI9Nh4mG6k-bdM,994
22
+ frogml_cli/commands/audience/_logic/config/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ frogml_cli/commands/audience/_logic/config/v1/audience_config.py,sha256=w65jBLyC9iVDipwvM02EziZj7hLR2rWmUJLN6pOH7d0,860
24
+ frogml_cli/commands/audience/_logic/config/v1/conditions_config.py,sha256=-tk_h02jHQ367tUAex1RP6WEvylm3E3Mn8t5P1JlRwo,1606
25
+ frogml_cli/commands/audience/_logic/config/v1/config_v1.py,sha256=rYhDuVp7xJb7IXKrtnNoSXPx049X-SFDX7qR7y4ab74,791
26
+ frogml_cli/commands/audience/_logic/config/v1/route_config.py,sha256=3JN6LniQH5ofwUPzua1a6gJvgekAjZIz2Gp4cJE_vL8,334
27
+ frogml_cli/commands/audience/_logic/config/v1/spec.py,sha256=Ecr676RXUqGAnq9wLciBDzSOZfl0Wg1ScxUfIOy6Wts,246
28
+ frogml_cli/commands/audience/audience_api_dump.py,sha256=O9KLH8WnKgb9TT1QMTtyyOtr24EUiAc8OJUZij12snE,2635
29
+ frogml_cli/commands/audience/audience_commands_group.py,sha256=NJaJ5JEwMwQA1uCnTQv6TuTxHv1BjG40OKK0_1buMqw,963
30
+ frogml_cli/commands/audience/create/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ frogml_cli/commands/audience/create/logic.py,sha256=Y_VHgFyKgtoqvs7TrwcPFbn-GioI774mrmr3bYnr9qs,1222
32
+ frogml_cli/commands/audience/create/ui.py,sha256=1GvBKZHMBtpsFTvCW-r3QiFehv__P3lZ2uX3Rz1h7pY,854
33
+ frogml_cli/commands/audience/delete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ frogml_cli/commands/audience/delete/logic.py,sha256=p8kRyYJx2kJ2zJo_6qszPSDQhYkbjgmcposNbJbE44c,477
35
+ frogml_cli/commands/audience/delete/ui.py,sha256=Y1OUms-Bhr3IlEEkDGcFHGSVPxx5RJe_qAHj_qT0SC0,681
36
+ frogml_cli/commands/audience/get/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ frogml_cli/commands/audience/get/logic.py,sha256=hGFpOrzAWWaXYy0Bap3iZcgytZXmO0eAouDZQR5YDb8,547
38
+ frogml_cli/commands/audience/get/ui.py,sha256=L20LHvo2XQ9Fyyu4suqtghVQiHmkaGeyqTvtC3mVfCw,953
39
+ frogml_cli/commands/audience/list/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ frogml_cli/commands/audience/list/logic.py,sha256=smAuv98nXfXpmtC3Yu4A2AS8HE4L0__8oIorSH-h7_A,551
41
+ frogml_cli/commands/audience/list/ui.py,sha256=3dPn_oSDHREER0_WoVPde1KQ6SR3oURLsklSRoqrMS4,1022
42
+ frogml_cli/commands/audience/update/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
+ frogml_cli/commands/audience/update/logic.py,sha256=jrKCzKLLlEpVUmhj1VYigpzu63TSSnnXxV46nzSTv5A,1350
44
+ frogml_cli/commands/audience/update/ui.py,sha256=ehesTIhraKHFfqLXXilWU7YyYYVhI-6SMAlDLUfScA4,970
45
+ frogml_cli/commands/auto_scalling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ frogml_cli/commands/auto_scalling/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ frogml_cli/commands/auto_scalling/_logic/config/__init__.py,sha256=XtEX4zx1KhshBzM-pOs9G7fUlrk6Fl15ejmvOetdf40,49
48
+ frogml_cli/commands/auto_scalling/_logic/config/config.py,sha256=VnV5NW_mxcM0Ty3JDCCz5_iQgEVzlUKAFDy4Dzkgjs0,5268
49
+ frogml_cli/commands/auto_scalling/_logic/config/parser.py,sha256=6_mWEDw3nBiikHz3PqUkFMgC7fpCTU0KqPqh8YiEn7w,700
50
+ frogml_cli/commands/auto_scalling/attach/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ frogml_cli/commands/auto_scalling/attach/_logic.py,sha256=SogY4cBC17EEfU_6vAjJJC0qkIGCNnbA7hnYVD8g3VA,1376
52
+ frogml_cli/commands/auto_scalling/attach/ui.py,sha256=34Qa8Rl4jYt3127cxAPEda336iTK2UyQxj0RJzrh3I0,963
53
+ frogml_cli/commands/auto_scalling/autoscaling_commands_group.py,sha256=iHlqGMObxYK-0l20dtivXMSdsksczGwYDltdZ7MQ2_s,279
54
+ frogml_cli/commands/automations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
+ frogml_cli/commands/automations/automations_commands_group.py,sha256=YEq2ZB5l3DVzvoekSBGn8x4QOSXnxzWB3FZCgGN2tQk,865
56
+ frogml_cli/commands/automations/delete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ frogml_cli/commands/automations/delete/_logic.py,sha256=QqY_SFJyVVsL0ra0toOKt7ub-tzp3EnBGh9U_E9ImIc,242
58
+ frogml_cli/commands/automations/delete/ui.py,sha256=8ukOWeEgEET6PUzoNzF-8IR8EIOhgMdcg4osVzUvh8E,612
59
+ frogml_cli/commands/automations/executions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ frogml_cli/commands/automations/executions/executions_commands_group.py,sha256=2f1GGPQeQ728oztTdsRCVBawa74o4x0X1yjefaDgvtU,348
61
+ frogml_cli/commands/automations/executions/list/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ frogml_cli/commands/automations/executions/list/_logic.py,sha256=mKhIcCUo0CmNaLQEl3ASeUOnIqEMINUq-voiKBW0JuQ,344
63
+ frogml_cli/commands/automations/executions/list/ui.py,sha256=FS8e9ISVOEYm7gT8L5_we2hgWWMmEKAKnCePyoyYNRI,686
64
+ frogml_cli/commands/automations/list/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ frogml_cli/commands/automations/list/_logic.py,sha256=MOzWWgJ59Rxf5xGzFiJ3pyFGlw2VxmxnDmLHfpgwAjk,1175
66
+ frogml_cli/commands/automations/list/ui.py,sha256=MGybaBRCUz5RZBZeE_3gJNsiM4lRDmwQZmSjG97lbpE,523
67
+ frogml_cli/commands/automations/register/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ frogml_cli/commands/automations/register/_logic.py,sha256=EvlOp0I--0HyZuyL2lZ-ApBol_sX2pE4QutXE6lAMhE,1648
69
+ frogml_cli/commands/automations/register/ui.py,sha256=qNpQU_h3yJ_vzhtI0uYRWEyusLJxNnyo5SBsUl1dpEk,1353
70
+ frogml_cli/commands/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
+ frogml_cli/commands/config/add/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ frogml_cli/commands/config/add/ui.py,sha256=XJhzj5c6pd3GSds_pVbY4aRgtWwCQpxVMI14ZXl7Hcc,1785
73
+ frogml_cli/commands/config/config_commands_group.py,sha256=Ztv2RruzbOT2xLiIaUnFZSl5v3hwOB75-FOpjnpZ5qE,228
74
+ frogml_cli/commands/feature_store/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ frogml_cli/commands/feature_store/backfill/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ frogml_cli/commands/feature_store/backfill/_logic.py,sha256=kAAzMMaBgD6hPHfLzeIoOP1-I6AvFwhHDQc_OpjOzY0,5349
77
+ frogml_cli/commands/feature_store/backfill/ui.py,sha256=ke71pPBAw3VBipXLORRV1tWEVOAuJZZCwqFZzyJF0kQ,3953
78
+ frogml_cli/commands/feature_store/delete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
+ frogml_cli/commands/feature_store/delete/_logic.py,sha256=SzS1i9sE28MC5h_WnXrrMzJTLkhmACLuACdgClcAKg0,3769
80
+ frogml_cli/commands/feature_store/delete/ui.py,sha256=mwqlOzKlQzadzZC-kL2-7JVJ61Re1MAZllnDZArPhIc,1054
81
+ frogml_cli/commands/feature_store/execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
+ frogml_cli/commands/feature_store/execution/ui.py,sha256=LU75Dqud2TTTyJwKTy63p7vU9M9cPJPSq9qS01OV-sM,575
83
+ frogml_cli/commands/feature_store/feature_store_command_group.py,sha256=8PWgzW8DUqg4exhXupR8iwoKhqTRRDyTLNeG0O_nppc,1267
84
+ frogml_cli/commands/feature_store/list/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
+ frogml_cli/commands/feature_store/list/ui.py,sha256=_feg_x5aqvO2nQWHsgiAQjHlkJzX8GkrOl_r2xPt7-k,4162
86
+ frogml_cli/commands/feature_store/pause/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
+ frogml_cli/commands/feature_store/pause/ui.py,sha256=15hiiYLilShNdV7B04UVPKBk8vncwKpRPQghQIA1cRw,721
88
+ frogml_cli/commands/feature_store/register/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
+ frogml_cli/commands/feature_store/register/_logic.py,sha256=kW8dH1TuAhP1WdxF4r9YpV10v-dQIlD-kn3Yytuv0Tc,13563
90
+ frogml_cli/commands/feature_store/register/ui.py,sha256=OWZDl12nkPuilhOfATVRwHXMQMuu4l5eTjqLPx_WzJc,3028
91
+ frogml_cli/commands/feature_store/resume/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
+ frogml_cli/commands/feature_store/resume/ui.py,sha256=RFWY9vYHudMoUBdnwkMsfm0LSJLN4LrOt629fnwQBJY,726
93
+ frogml_cli/commands/feature_store/trigger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
+ frogml_cli/commands/feature_store/trigger/ui.py,sha256=rDdLWN94G2syXXn4-6281PJe6K8Qs_EyU4zUPc9RA9g,1326
95
+ frogml_cli/commands/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
+ frogml_cli/commands/models/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
+ frogml_cli/commands/models/build/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
+ frogml_cli/commands/models/build/_logic/build_steps.py,sha256=-4fI7f0i6VnewCo2VyH9EMqoQUFf1g0E2bX3haBuuSY,1569
99
+ frogml_cli/commands/models/build/_logic/client_logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
+ frogml_cli/commands/models/build/_logic/client_logs/cli_phase_run_handler.py,sha256=WjAL6bydy9CJw6cyQJr9TSQQrEbtfwyhc3_CBFFcuAQ,4712
101
+ frogml_cli/commands/models/build/_logic/client_logs/cli_trigger_build_logger.py,sha256=L69_KKRzae1iaX0dgjbdUpzIstMN6Tte_hZWUr0MO6Y,733
102
+ frogml_cli/commands/models/build/_logic/client_logs/logger.py,sha256=HWM0Z9fp5E8BbLEzF3lJB2u3yVOWbiQeE8Y94Va0iXo,2933
103
+ frogml_cli/commands/models/build/_logic/client_logs/messages.py,sha256=_3f1TPmfmYyxZPD3mlZWTY2MKdgaINDzi70njVJOwOA,1048
104
+ frogml_cli/commands/models/build/_logic/client_logs/spinner.py,sha256=iph1eVC7QtSzNobNP2j_x0DC2k7bbka9eT8rcBpZGeQ,359
105
+ frogml_cli/commands/models/build/_logic/client_logs/trigger_build_logger.py,sha256=BpRbMdvPLsVOyp7t6eSRcAhS7GyIv4W8VN3Uts5jU20,1635
106
+ frogml_cli/commands/models/build/_logic/client_logs/utils.py,sha256=0VcMlmWHtOR1fR4JUDQTDqeQmi3tH3cG8pBZf5Hfusc,311
107
+ frogml_cli/commands/models/build/_logic/phase/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
+ frogml_cli/commands/models/build/_logic/phase/a_fetch_model_code/__init__.py,sha256=HkjDGi0i4N_66Lr5MmuYOznG7HvjU6HmIVDLmk6jDN0,895
109
+ frogml_cli/commands/models/build/_logic/phase/a_fetch_model_code/get_sdk_version_step.py,sha256=AXHfMV8d67NDFtKNd2K2H0MlTURZ4Rp0rzDftok6ppw,474
110
+ frogml_cli/commands/models/build/_logic/phase/b_remote_register_frogml_build/__init__.py,sha256=2Pfaggjd885TbNgA8SVP2XSj3wI6v2mETB9EFHkSS4c,621
111
+ frogml_cli/commands/models/build/_logic/phase/c_deploy/__init__.py,sha256=Ak5f901KsQIA9BIXgtSCAaf7Es_IiCb0gRjPCeY1g_c,182
112
+ frogml_cli/commands/models/build/_logic/phase/c_deploy/build_polling_status.py,sha256=tHctBHxTGhgt3L0LNPXEAto3dJjh2eF03DqSvNAicRw,2221
113
+ frogml_cli/commands/models/build/_logic/phase/c_deploy/deploy_build.py,sha256=rCj4WqzjdUTbz34EVxmxgSZ0Fget8zVFTKy9PNUr6wk,2319
114
+ frogml_cli/commands/models/build/_logic/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
+ frogml_cli/commands/models/build/_logic/util/protobuf_factory.py,sha256=gO9LgChpt0Qyc_3UXt2RhdRJ4jqf_9NkkH6t13bmREE,1699
116
+ frogml_cli/commands/models/build/_logic/util/step_decorator.py,sha256=T-vKF824iNGSg0kHrwXFtMHpmLfYLNje3gsuo4i4BL8,1934
117
+ frogml_cli/commands/models/build/_logic/util/text.py,sha256=tH-v19Mt8l90sMVxku5XRtrderT0qdRqJ-jLijqannA,188
118
+ frogml_cli/commands/models/build/_logic/wait_until_finished.py,sha256=hhIFrY2onNvuwOvek06Zpj9RhuCj2sChLfY83BaQkgY,1229
119
+ frogml_cli/commands/models/build/ui.py,sha256=NPI0Act9k46WEI1fAj2629JCnD6vKWzoptA5ali91Dg,9976
120
+ frogml_cli/commands/models/builds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
+ frogml_cli/commands/models/builds/builds_commands_group.py,sha256=OxgluVZUxFV-SmoaRWjaZv9QnsMpMcfpfMHWE63qffg,497
122
+ frogml_cli/commands/models/builds/cancel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
+ frogml_cli/commands/models/builds/cancel/_logic.py,sha256=9kGCp1OTAvF9dVdu0vkOMf7V3lDmiVaBEW1zn7Wb8qA,188
124
+ frogml_cli/commands/models/builds/cancel/ui.py,sha256=DErGYS5A61VnQyP46K103YER6zXl5n47pJRn4VC2AzA,537
125
+ frogml_cli/commands/models/builds/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
+ frogml_cli/commands/models/builds/logs/ui.py,sha256=5AHlDnc-LkTJKxQb-RuY029Do-Kznp-kKScBE_Jtyu4,1068
127
+ frogml_cli/commands/models/builds/status/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
+ frogml_cli/commands/models/builds/status/_logic.py,sha256=8rv1M8mlrH0oAa4SIVAIRjrn0tECpnBTa4PYR5xPmOA,269
129
+ frogml_cli/commands/models/builds/status/ui.py,sha256=DrImQXGBqZ4B5l6o6x8KqEXT_6eD2BTOl0jI27KHtl0,1230
130
+ frogml_cli/commands/models/create/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
+ frogml_cli/commands/models/create/_logic.py,sha256=_vsAgVGF1mcKSDtB7RRP_Wu_tY0HemG_IHh41RDDX1w,1480
132
+ frogml_cli/commands/models/create/ui.py,sha256=h5XrSS8BEA798kGYytbmj2uFa5J6lvJxHiE5P6l8HtE,1255
133
+ frogml_cli/commands/models/delete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
+ frogml_cli/commands/models/delete/_logic.py,sha256=wtuFIkoOqBeBkCX6ezb6WoJzpOgeZEppQdB2eBvDzV0,809
135
+ frogml_cli/commands/models/delete/ui.py,sha256=ijBZY7jx13GV0rGTVhFWl3iFyFcYvXkPfRoPt9Z7PgE,914
136
+ frogml_cli/commands/models/deployments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
+ frogml_cli/commands/models/deployments/deploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
+ frogml_cli/commands/models/deployments/deploy/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
+ frogml_cli/commands/models/deployments/deploy/_logic/advance_deployment_options_handler.py,sha256=NT-j2FZsbN6I0uaTJX7NKV1R219S8jn6NHqPz31r8Zg,1268
140
+ frogml_cli/commands/models/deployments/deploy/_logic/base_deploy_executor.py,sha256=5u6hL9LaYFWkzH33MHCuA3cbaKZcqjbtKOJnSJfUYcA,2749
141
+ frogml_cli/commands/models/deployments/deploy/_logic/deploy_config.py,sha256=lVplbcKiCtN-CuUsAxXjmsNNO34gBCXuy7GBNL0NHWU,8980
142
+ frogml_cli/commands/models/deployments/deploy/_logic/deployment.py,sha256=oADXoDtooGEmZM8DuCUm4sy5BQTlgyKfndpvugKkOf4,13244
143
+ frogml_cli/commands/models/deployments/deploy/_logic/deployment_message_helpers.py,sha256=-xy5SavKo8eAWBjL12-btJK-mKSUNWyLwocSM4Wbx4U,4656
144
+ frogml_cli/commands/models/deployments/deploy/_logic/deployment_response_handler.py,sha256=7uNy9aoWJzTBYIcX7fPdmcvtQS2TBL4c3BdEXPv0D1I,5888
145
+ frogml_cli/commands/models/deployments/deploy/_logic/deployment_size_mapper.py,sha256=Xz4yd4cJzUT_R_PXfZEYVo9xG9Qxw68PhgYUo0HlDZc,3711
146
+ frogml_cli/commands/models/deployments/deploy/_logic/get_latest_successful_build.py,sha256=MnDB92MCVuF1_F3lcBk6-16KnHsBOpU3_wXJmjxxTHE,1007
147
+ frogml_cli/commands/models/deployments/deploy/_logic/local_deployment.py,sha256=L38LQ7yhfaa611JaZqa48RW28WfuKm3XBr2hi2PzEmA,6321
148
+ frogml_cli/commands/models/deployments/deploy/batch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
+ frogml_cli/commands/models/deployments/deploy/batch/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
+ frogml_cli/commands/models/deployments/deploy/batch/_logic/advanced_deployment_mapper.py,sha256=O9X7ywSXaEu2T8fNe2ckefX4j_EXKrYA4mRDkn7YXks,603
151
+ frogml_cli/commands/models/deployments/deploy/batch/_logic/deploy_executor.py,sha256=r5wTL6jGfqZx5TiiCozZaKWR5LruZ7iVAGmxnP304Ms,922
152
+ frogml_cli/commands/models/deployments/deploy/batch/ui.py,sha256=AMPo0t5FyeZ_kaT7BYdVcxzTVfreYbasrg7iX70y_R4,3374
153
+ frogml_cli/commands/models/deployments/deploy/deploy_commands_group.py,sha256=MNuW5Z4Dn_1u0yfD-8BQRTrPBm6exvE153EzomACMMU,506
154
+ frogml_cli/commands/models/deployments/deploy/realtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
+ frogml_cli/commands/models/deployments/deploy/realtime/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
+ frogml_cli/commands/models/deployments/deploy/realtime/_logic/advanced_deployment_mapper.py,sha256=LS73ZdZJsvhF7EKdvRvRVHlyCIsGu-vPcjHyNMgQOJY,1010
157
+ frogml_cli/commands/models/deployments/deploy/realtime/_logic/deploy_executor.py,sha256=WhOrH0g6RBvwKMJJtmTki4f8w3fpCLXdNhLIkR9rn8s,926
158
+ frogml_cli/commands/models/deployments/deploy/realtime/_logic/serving_strategy_mapper.py,sha256=GvPcK96tFe8PyBEdjCxwjY2iR9ZpWMtn5bNJJ3BLYoU,2603
159
+ frogml_cli/commands/models/deployments/deploy/realtime/ui.py,sha256=RQe366Pq7Kn97LgJGgX-XPMBJnshYDDwM2EhybPLV9A,5347
160
+ frogml_cli/commands/models/deployments/deploy/streaming/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
+ frogml_cli/commands/models/deployments/deploy/streaming/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
+ frogml_cli/commands/models/deployments/deploy/streaming/_logic/deploy_executor.py,sha256=nnk3OOXLVmpUh3Zp_sumpLKGo0ALTBNMKraX0fuvwI0,924
163
+ frogml_cli/commands/models/deployments/deploy/streaming/_logic/serving_strategy_mapper.py,sha256=uQ4QWW_n8AlVuQ2hVtoYeXeQ4RH3Q917p4D4uOBaahE,1504
164
+ frogml_cli/commands/models/deployments/deploy/streaming/ui.py,sha256=0zQvX5_drp4h12QGPrMFvJH4Np76Y80fa22ekfyB8zo,5644
165
+ frogml_cli/commands/models/deployments/undeploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
+ frogml_cli/commands/models/deployments/undeploy/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
+ frogml_cli/commands/models/deployments/undeploy/_logic/request_undeploy.py,sha256=tdUeyInR2cSJY93fC0mX82EwymkZa3KQGGn76c4KsZs,8681
168
+ frogml_cli/commands/models/deployments/undeploy/ui.py,sha256=_iZWzOjW4RGzgydiNzRxY-frp2-Ph1liL6BcLtyg5p8,1752
169
+ frogml_cli/commands/models/describe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
+ frogml_cli/commands/models/describe/_logic.py,sha256=wE56HO2o3kuc36MdFKqhlKQipIBrJLxzUzlKb7goB7E,5614
171
+ frogml_cli/commands/models/describe/ui.py,sha256=YWv9di2AO8iiiLbKX-SLAG00VwXe6GYyf098obHwo1E,976
172
+ frogml_cli/commands/models/executions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
+ frogml_cli/commands/models/executions/cancel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
+ frogml_cli/commands/models/executions/cancel/_logic.py,sha256=e2p-M8Ha-qY4lTdKljGXh6LGKl5tEcPAEc4RIA0_pKQ,423
175
+ frogml_cli/commands/models/executions/cancel/ui.py,sha256=gQlbBPuhNdZicLmbopGKz4jtF1H53onjQA4uTXvPO3w,858
176
+ frogml_cli/commands/models/executions/execution_commands_group.py,sha256=N_Yf701j9apHGtPvq7KX6yNEZftcOFyJKouvNYd37hw,808
177
+ frogml_cli/commands/models/executions/report/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
+ frogml_cli/commands/models/executions/report/_logic.py,sha256=snj3azkcnXbZUcIRfOpjJ16HyAcCdlN-7vJ9v4i3rzA,547
179
+ frogml_cli/commands/models/executions/report/ui.py,sha256=9vEJve8-pX_dftle_WDR0lShjVkjihlogmDPvtMIQs4,1467
180
+ frogml_cli/commands/models/executions/start/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
+ frogml_cli/commands/models/executions/start/_logic.py,sha256=yVNUwGL1uYlK1JUUf-GfYdwyarI7UtPie5hgMvlBQR8,2918
182
+ frogml_cli/commands/models/executions/start/ui.py,sha256=MGUXkhHcOzRH4wukWi_9zMw1ghSxFH8LxDFGYQqVbdY,6043
183
+ frogml_cli/commands/models/executions/status/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
+ frogml_cli/commands/models/executions/status/_logic.py,sha256=YXbkRU2hmeE7rt9g4ZmmYdU78Gwn2vQ5bo77DKlx7SU,494
185
+ frogml_cli/commands/models/executions/status/ui.py,sha256=9wgCLQgjr6p-IOgOm9br_Zp1x86r1HIjUWHFrEZYTo4,850
186
+ frogml_cli/commands/models/init/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
187
+ frogml_cli/commands/models/init/_logic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
+ frogml_cli/commands/models/init/_logic/initialize_model_structure.py,sha256=LLEUut_QXdOYqjjooPPrxBhwLVOuuKfjiRfczljmDVY,1388
189
+ frogml_cli/commands/models/init/_logic/template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
+ frogml_cli/commands/models/init/_logic/template/churn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
191
+ frogml_cli/commands/models/init/_logic/template/churn/cookiecutter.json,sha256=ThfWcNqSFiz1A70dN6hOZpxUyHLDCWew7bXPtGqEzb0,35
192
+ frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
+ frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/__init__.py,sha256=PTVgJv_FSe4Si8X1Q9hrIQuRyx8iKn8Btp5PXAPnYJM,84
194
+ frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/conda.yml,sha256=xgCPhmSCTObW8AeWYbr1xaJPnEWI6FuTzPjTBJQ0_00,166
195
+ frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/data.csv,sha256=gJR19QiL8rSlYB4nAVEMtBb5_AEFc7XlXQmFmRigBa4,129370
196
+ frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/model.py,sha256=ahKTLlG6uSfWq6uUeZUKURmptCzMbmnwdabj4C65mA0,3698
197
+ frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
+ frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests/it/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
199
+ frogml_cli/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests/it/test_churn.py,sha256=EC2RxRIZT9L8uGKdpE4f4zjiiGEbnXvCJlqU5RYZWPc,1039
200
+ frogml_cli/commands/models/init/_logic/template/credit_risk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
201
+ frogml_cli/commands/models/init/_logic/template/credit_risk/cookiecutter.json,sha256=6vs08o7IQCca4Lg6NA9cy6vtmYMjoEis8VBjF41sVxk,41
202
+ frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
203
+ frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/__init__.py,sha256=Ks2su1wm8QiLKOThWfxkhiW90dJ1xiUqWAx-SXEEV2U,74
204
+ frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/conda.yml,sha256=XB_qsWsdeOLyaN5njGsNlvvax5YkbqNHxy4gRRev8IM,177
205
+ frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/data.csv,sha256=Qr47gqLlBzvVyiO84dHDFCa3j3LSDNiS86rKorowoHU,53393
206
+ frogml_cli/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/model.py,sha256=L5wmOy9O1ACyZFzB32ZT44fDy5wtGGELL8UkMnvDTj0,4005
207
+ frogml_cli/commands/models/init/_logic/template/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
208
+ frogml_cli/commands/models/init/_logic/template/general/cookiecutter.json,sha256=dcBfmJgVzlG7z3k-WFLHNiH9fPirs-WU9TVgl4xN20A,139
209
+ frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
+ frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.main_directory}}/__init__.py,sha256=LG2LPM98oRS0v2uYDYs7hI7EIaui79YT--f91BbTqD4,120
211
+ frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.main_directory}}/conda.yml,sha256=EDD9m5sTQS2Kg_e6IvxaAMrTN1J8xrdACVD-sVZm5LQ,140
212
+ frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.main_directory}}/model.py,sha256=KZBiylzcpxNdKqQCaWgw-3MZ7_f1f3BLqNuaotiKZYs,2178
213
+ frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.test_directory}}/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
+ frogml_cli/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.test_directory}}/test_qwak_model.py,sha256=w-98jbP3TJTKNWpBTEAfLaKEM1DEmFOsunXfP4XSju8,117
215
+ frogml_cli/commands/models/init/_logic/template/titanic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
+ frogml_cli/commands/models/init/_logic/template/titanic/cookiecutter.json,sha256=4K4PvMEdLza5xd2ENKa1gx81ZcQw5gZsmxiK2EWO1VI,61
217
+ frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
+ frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/main/__init__.py,sha256=Z1sVakFz-f_hWz_iZdzLRO4FMHY6JHTZd4pUwAaqWpw,104
219
+ frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/main/conda.yml,sha256=WvJrIgCG11YPvo0zXjYcknPa6HB-wXJM4TGD6zcVYcQ,198
220
+ frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/main/model.py,sha256=sq2otXgZiFFaCIED-bCR-SXZEx340Qf_XMWCvNsDnps,3362
221
+ frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
+ frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests/it/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
223
+ frogml_cli/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests/it/test_titanic.py,sha256=HIcna55BqSlOVGfSPTYl_T0E4clcTjlVs0TUKyP2CVQ,760
224
+ frogml_cli/commands/models/init/_logic/template/titanic_poetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
225
+ frogml_cli/commands/models/init/_logic/template/titanic_poetry/cookiecutter.json,sha256=qx76ls4W3_cYpeWbk4LNOlOMC55wj0z4mAkQ5qEWeUc,68
226
+ frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
+ frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/main/__init__.py,sha256=Z1sVakFz-f_hWz_iZdzLRO4FMHY6JHTZd4pUwAaqWpw,104
228
+ frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/main/model.py,sha256=sq2otXgZiFFaCIED-bCR-SXZEx340Qf_XMWCvNsDnps,3362
229
+ frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/main/pyproject.toml,sha256=h-8Eg33r9zXrQQo2mI0EoaqedTmtAlZ-Miq95UNtaeY,495
230
+ frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
231
+ frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests/it/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
+ frogml_cli/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests/it/test_titanic.py,sha256=A75drbpCH-wNYwGZHS16xFBN7aApYbA7w_G1Hc2BwkU,761
233
+ frogml_cli/commands/models/init/ui.py,sha256=zfg_qyt4G6KM-57Mq5d5jPiBuGju7iVb7t5j4H2sxaM,1925
234
+ frogml_cli/commands/models/list/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
+ frogml_cli/commands/models/list/_logic.py,sha256=6ef3aBkN55b_4Z4VktNSzH6L0jXT2dFWz0LyYwWJ4MA,193
236
+ frogml_cli/commands/models/list/ui.py,sha256=L5FotbJbeweTklDTKIA24_sdLNH3t53JHQFOx-JtBa4,1498
237
+ frogml_cli/commands/models/list_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
238
+ frogml_cli/commands/models/list_models/_logic.py,sha256=lv8vXo-hrKJCKxyt_0trB8h7rOh2g67jtEwCOzaWFmA,505
239
+ frogml_cli/commands/models/list_models/ui.py,sha256=-xT1PjhhuEQ40fID4H4q2vU7uOicyu_oRXOG11lhun0,1834
240
+ frogml_cli/commands/models/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
241
+ frogml_cli/commands/models/metadata/_logic.py,sha256=5xVLolZu004CXREGZwLkNRBAMrPrHsfL0CM0kzHXt2o,524
242
+ frogml_cli/commands/models/metadata/ui.py,sha256=TzAnnpQxPbDaLJK-cA5vtEM0soBIXiNxmytpqp-oMxU,2051
243
+ frogml_cli/commands/models/models_command_group.py,sha256=Bt02n4ZiGz2YivcuTHd8gOu6qmkHO0Jhcy4vqygW7_o,1645
244
+ frogml_cli/commands/models/runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
245
+ frogml_cli/commands/models/runtime/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
246
+ frogml_cli/commands/models/runtime/logs/ui.py,sha256=QXUr6sD7Ziz2uZdh-2POV4cDS4xsgB_DoAe8hcDF8P4,1597
247
+ frogml_cli/commands/models/runtime/runtime_commands_group.py,sha256=5FAReuqpjy4RElZG3RJ38Tb9daU8G-020b_dj2H8f0g,425
248
+ frogml_cli/commands/models/runtime/update/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
249
+ frogml_cli/commands/models/runtime/update/_logic.py,sha256=06Aod_zxt2G2khMKxtoiDojYxWvXiEnmUV-fzQkXRGk,407
250
+ frogml_cli/commands/models/runtime/update/ui.py,sha256=zxp2M8KPxtn4KkAwbGEretfFQQD1vjXRHpOctP8WVMM,663
251
+ frogml_cli/commands/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
252
+ frogml_cli/commands/secrets/delete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
253
+ frogml_cli/commands/secrets/delete/_logic.py,sha256=n9a0ACA7T9p35eWspd6x1AvKYrgUCNyZyhdUmOjXwSE,148
254
+ frogml_cli/commands/secrets/delete/ui.py,sha256=p5atnz5rpj4TGvVQBONWuC0sw8O0igfeyAu0rqee-Gc,749
255
+ frogml_cli/commands/secrets/get/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
+ frogml_cli/commands/secrets/get/_logic.py,sha256=yIFUC_rPvWHv7j25HMuclaioUBz1hwAQNAUr4dleaFY,149
257
+ frogml_cli/commands/secrets/get/ui.py,sha256=NTDXwoAV1qeaMKexXtpFnfEr-VRbswHZ6t_6oLoFguw,593
258
+ frogml_cli/commands/secrets/secrets_commands_group.py,sha256=tcDLu_qejirzm_poMpk-xEfVRyPRiCZt1OZe1Agn65o,508
259
+ frogml_cli/commands/secrets/set/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
260
+ frogml_cli/commands/secrets/set/_logic.py,sha256=jVxHsqbLrwFiPfn_Itz0vGna8EqbLT0DUoGunV5a63g,156
261
+ frogml_cli/commands/secrets/set/ui.py,sha256=95TjISKj8-5lzElG5Juh78lzGVY-lItJvWyOctIBBdw,623
262
+ frogml_cli/commands/ui_tools.py,sha256=JSyNs3qIllK5h3Re6A-SDaxt2TXG3987GoIfyK683HE,430
263
+ frogml_cli/exceptions/__init__.py,sha256=A2I_h6h5E_YU_0ENkHZvgiuhDEMF7ZxBtUHWzXqcLpA,370
264
+ frogml_cli/exceptions/frogml_command_exception.py,sha256=SkIvr-5EEmqJRCRZva0pcrpSxkXNWfk6aCeXJ6lYDlo,50
265
+ frogml_cli/exceptions/frogml_deploy_new_build_failed.py,sha256=V_NMAwT_WAC9vJ5OUlDxWV-hvSfykCijkyYCGbPeLWs,142
266
+ frogml_cli/exceptions/frogml_resource_not_found.py,sha256=ckAS6vCn148gLnZi12ZpzXh2qv04V1u5NW8oineD29w,50
267
+ frogml_cli/inner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
268
+ frogml_cli/inner/file_registry.py,sha256=DtF37I6LVzi-HQGSh7VgMt8pCsBp_0kwnDZWzyHgL7M,3224
269
+ frogml_cli/inner/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
270
+ frogml_cli/inner/tools/cli_tools.py,sha256=bMxS0qy7garLNKe36ZkgA8lkSCPTsV8UMXu3A9OL2HA,5568
271
+ frogml_cli/inner/tools/config_handler.py,sha256=tDsnx0GC6TSd4_7VA1gpK2nDcy2A3Ln_fQRlQ3qBVWg,917
272
+ frogml_cli/inner/tools/dataclasses_utils.py,sha256=Ixm6Bz0qWA4bwqC4djT4XhqF2ua4LCNsadj2Xxwmi_A,793
273
+ frogml_cli/inner/tools/logger/__init__.py,sha256=8MZKoQb4QDnRRMJQymquhm01SOxy83TNd43AAowpKgc,75
274
+ frogml_cli/inner/tools/logger/logger.py,sha256=C430w2ln2gGrVqtrj1N-mqNlGNbYox4ITDULjuGAj7Q,9118
275
+ frogml_cli/inner/tools/logger/logging.yml,sha256=apRmmYNtZ3GMD4j9NEnXIF_xUSW9ViTGPdh8mUGQWis,1935
276
+ frogml_cli/inner/tools/tracking.py,sha256=oelYL6AmMadd2DdAuoq-OV2xO6nH0WpDl1Ebpjwe7Yo,1015
277
+ frogml_cli/main.py,sha256=S5JyembyWg2GvOb1hVTqdPhxuoX-c__t1v9li4_lMOc,146
278
+ frogml_cli/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
279
+ frogml_cli/tools/colors.py,sha256=7pui_GGjC4uZKYFsIyXaJjYsjLxJVHb4OrfTgr93hqo,287
280
+ frogml_cli/tools/const.py,sha256=XDaMAVfScXoFc5fHbsNuqAefUD2MoZY-cAEMoh1xaYk,152
281
+ frogml_cli/tools/files.py,sha256=AyKJTOy7NhvP3SrqwIw_lxYNCOy1CvLgMmSJpWZ0OKM,2257
282
+ frogml_cli/tools/log_handling.py,sha256=QlgxbCmLLPK4wRyViWgAW8WLZ39Do1hYAvRyFWGbnFs,6362
283
+ frogml_cli/tools/utils.py,sha256=dzv10KyWBl8lLh_snZN3L9SxnrHvk5QSVSLP2l2xQ40,1200
284
+ frogml_cli-0.0.1.dist-info/METADATA,sha256=ls5JKVlleneD-J7HwZf1B9fmQkAmOlsGtXY58XqNg2Q,2202
285
+ frogml_cli-0.0.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
286
+ frogml_cli-0.0.1.dist-info/entry_points.txt,sha256=2H5x0V_E73HeywIMBRRvZMgeRtmX5820KmSLiNFzDcA,53
287
+ frogml_cli-0.0.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.1.3
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ frogml=frogml_cli.main:frogml_cli
3
+