qwak-core 0.4.278__py3-none-any.whl → 0.5.19__py3-none-any.whl

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

Potentially problematic release.


This version of qwak-core might be problematic. Click here for more details.

Files changed (361) hide show
  1. _qwak_proto/jfml/hosting_gateway/v1/build_upload_url_pb2.py +8 -23
  2. _qwak_proto/jfml/hosting_gateway/v1/hosting_gateway_service_pb2.py +10 -27
  3. _qwak_proto/qwak/administration/account/v1/account_pb2.py +25 -88
  4. _qwak_proto/qwak/administration/account/v1/account_pb2.pyi +21 -2
  5. _qwak_proto/qwak/administration/account/v1/account_service_pb2.py +42 -187
  6. _qwak_proto/qwak/administration/account/v1/jfrog_tenant_details_pb2.py +26 -114
  7. _qwak_proto/qwak/administration/account/v1/personalization_pb2.py +8 -24
  8. _qwak_proto/qwak/administration/account/v1/preferences_pb2.py +6 -14
  9. _qwak_proto/qwak/administration/account/v1/terms_pb2.py +14 -54
  10. _qwak_proto/qwak/administration/authenticated_user/v1/authenticated_user_service_pb2.py +18 -67
  11. _qwak_proto/qwak/administration/authenticated_user/v1/credentials_pb2.py +8 -24
  12. _qwak_proto/qwak/administration/authenticated_user/v1/credentials_pb2.pyi +1 -1
  13. _qwak_proto/qwak/administration/authenticated_user/v1/details_pb2.py +14 -54
  14. _qwak_proto/qwak/administration/cluster/v2/cluster_pb2.py +38 -173
  15. _qwak_proto/qwak/administration/runtime_configuration/v0/container_registry_config_pb2.py +32 -0
  16. _qwak_proto/qwak/administration/runtime_configuration/v0/container_registry_config_pb2.pyi +65 -0
  17. _qwak_proto/qwak/administration/runtime_configuration/v0/container_registry_config_pb2_grpc.py +4 -0
  18. _qwak_proto/qwak/administration/runtime_configuration/v0/creds/auth_pb2.py +6 -14
  19. _qwak_proto/qwak/administration/runtime_configuration/v0/creds/secret_pb2.py +8 -24
  20. _qwak_proto/qwak/administration/runtime_configuration/v0/data_catalog_config_pb2.py +13 -35
  21. _qwak_proto/qwak/administration/runtime_configuration/v0/data_catalog_config_pb2.pyi +24 -3
  22. _qwak_proto/qwak/administration/runtime_configuration/v0/external/databricks/auth_pb2.py +34 -0
  23. _qwak_proto/qwak/administration/runtime_configuration/v0/external/databricks/auth_pb2.pyi +97 -0
  24. _qwak_proto/qwak/administration/runtime_configuration/v0/external/databricks/auth_pb2_grpc.py +4 -0
  25. _qwak_proto/qwak/administration/runtime_configuration/v0/external/elasticsearch_config_pb2.py +6 -14
  26. _qwak_proto/qwak/administration/runtime_configuration/v0/external/kafka_config_pb2.py +12 -44
  27. _qwak_proto/qwak/administration/runtime_configuration/v0/external/prometheus_config_pb2.py +9 -15
  28. _qwak_proto/qwak/administration/runtime_configuration/v0/external/prometheus_config_pb2.pyi +29 -0
  29. _qwak_proto/qwak/administration/runtime_configuration/v0/external/redis_config_pb2.py +6 -14
  30. _qwak_proto/qwak/administration/runtime_configuration/v0/external/victoriametrics_config_pb2.py +8 -15
  31. _qwak_proto/qwak/administration/runtime_configuration/v0/external/victoriametrics_config_pb2.pyi +16 -0
  32. _qwak_proto/qwak/administration/runtime_configuration/v0/feature_store_config_pb2.py +10 -34
  33. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/aws/auth_pb2.py +42 -0
  34. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/aws/auth_pb2.pyi +159 -0
  35. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/aws/auth_pb2_grpc.py +4 -0
  36. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/azure/auth_pb2.py +39 -0
  37. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/azure/auth_pb2.pyi +126 -0
  38. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting/azure/auth_pb2_grpc.py +4 -0
  39. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting_config_pb2.py +19 -55
  40. _qwak_proto/qwak/administration/runtime_configuration/v0/hosting_config_pb2.pyi +38 -6
  41. _qwak_proto/qwak/administration/runtime_configuration/v0/logs_storage_config_pb2.py +6 -14
  42. _qwak_proto/qwak/administration/runtime_configuration/v0/model_analytics_storage_config_pb2.py +6 -14
  43. _qwak_proto/qwak/administration/runtime_configuration/v0/network_config_pb2.py +14 -54
  44. _qwak_proto/qwak/administration/runtime_configuration/v0/object_storage_config_pb2.py +13 -35
  45. _qwak_proto/qwak/administration/runtime_configuration/v0/object_storage_config_pb2.pyi +26 -3
  46. _qwak_proto/qwak/administration/runtime_configuration/v0/observability_config_pb2.py +10 -34
  47. _qwak_proto/qwak/administration/runtime_configuration/v0/runtime_config_pb2.py +8 -15
  48. _qwak_proto/qwak/administration/runtime_configuration/v0/runtime_config_pb2.pyi +7 -2
  49. _qwak_proto/qwak/administration/runtime_configuration/v0/sql_engine_config_pb2.py +13 -35
  50. _qwak_proto/qwak/administration/runtime_configuration/v0/sql_engine_config_pb2.pyi +24 -3
  51. _qwak_proto/qwak/administration/v0/authentication/authentication_service_pb2.py +14 -47
  52. _qwak_proto/qwak/administration/v0/environments/configuration_pb2.py +20 -82
  53. _qwak_proto/qwak/administration/v0/environments/environment_pb2.py +12 -40
  54. _qwak_proto/qwak/administration/v0/environments/environment_service_pb2.py +36 -158
  55. _qwak_proto/qwak/administration/v0/environments/personalization_pb2.py +8 -24
  56. _qwak_proto/qwak/administration/v0/users/user_pb2.py +18 -71
  57. _qwak_proto/qwak/admiral/secret/v0/secret_pb2.py +29 -116
  58. _qwak_proto/qwak/admiral/secret/v0/secret_pb2.pyi +21 -2
  59. _qwak_proto/qwak/admiral/secret/v0/secret_service_pb2.py +18 -67
  60. _qwak_proto/qwak/admiral/secret/v0/system_secret_service_pb2.py +18 -67
  61. _qwak_proto/qwak/admiral/user_application_instance/v0/user_application_instance_pb2.py +38 -174
  62. _qwak_proto/qwak/admiral/user_application_instance/v0/user_application_instance_service_pb2.py +22 -87
  63. _qwak_proto/qwak/analytics/analytics_pb2.py +26 -121
  64. _qwak_proto/qwak/analytics/analytics_service_pb2.py +46 -207
  65. _qwak_proto/qwak/artifactory_settings/artifactory_settings_pb2.py +8 -24
  66. _qwak_proto/qwak/audience/v1/audience_api_pb2.py +30 -127
  67. _qwak_proto/qwak/audience/v1/audience_pb2.py +26 -113
  68. _qwak_proto/qwak/auto_scaling/v1/auto_scaling_pb2.py +18 -79
  69. _qwak_proto/qwak/auto_scaling/v1/auto_scaling_service_pb2.py +10 -27
  70. _qwak_proto/qwak/automation/v1/action_pb2.py +40 -180
  71. _qwak_proto/qwak/automation/v1/auto_scaling_pb2.py +18 -79
  72. _qwak_proto/qwak/automation/v1/automation_execution_pb2.py +12 -43
  73. _qwak_proto/qwak/automation/v1/automation_management_service_pb2.py +56 -258
  74. _qwak_proto/qwak/automation/v1/automation_pb2.py +11 -35
  75. _qwak_proto/qwak/automation/v1/automation_pb2.pyi +5 -1
  76. _qwak_proto/qwak/automation/v1/common_pb2.py +10 -35
  77. _qwak_proto/qwak/automation/v1/notification_pb2.py +16 -68
  78. _qwak_proto/qwak/automation/v1/trigger_pb2.py +14 -54
  79. _qwak_proto/qwak/batch_job/v1/batch_job_events_pb2.py +26 -116
  80. _qwak_proto/qwak/batch_job/v1/batch_job_resources_pb2.py +8 -26
  81. _qwak_proto/qwak/batch_job/v1/batch_job_service_pb2.py +119 -562
  82. _qwak_proto/qwak/batch_job/v1/batch_job_service_pb2.pyi +5 -1
  83. _qwak_proto/qwak/build/v1/build_api_pb2.py +86 -407
  84. _qwak_proto/qwak/build/v1/build_pb2.py +114 -549
  85. _qwak_proto/qwak/build_settings/build_settings_api_pb2.py +18 -67
  86. _qwak_proto/qwak/build_settings/build_settings_pb2.py +18 -74
  87. _qwak_proto/qwak/builds/build_pb2.py +46 -207
  88. _qwak_proto/qwak/builds/build_pb2.pyi +48 -3
  89. _qwak_proto/qwak/builds/build_url_pb2.py +26 -113
  90. _qwak_proto/qwak/builds/build_values_pb2.py +82 -0
  91. _qwak_proto/qwak/builds/build_values_pb2.pyi +559 -0
  92. _qwak_proto/qwak/builds/build_values_pb2_grpc.py +4 -0
  93. _qwak_proto/qwak/builds/builds_orchestrator_service_pb2.py +87 -270
  94. _qwak_proto/qwak/builds/builds_orchestrator_service_pb2.pyi +173 -0
  95. _qwak_proto/qwak/builds/builds_orchestrator_service_pb2_grpc.py +66 -0
  96. _qwak_proto/qwak/builds/builds_pb2.py +87 -528
  97. _qwak_proto/qwak/builds/builds_pb2.pyi +0 -191
  98. _qwak_proto/qwak/builds/builds_pb2_grpc.py +0 -233
  99. _qwak_proto/qwak/builds/internal_builds_orchestrator_service_pb2.py +12 -37
  100. _qwak_proto/qwak/data_versioning/data_versioning_pb2.py +8 -24
  101. _qwak_proto/qwak/data_versioning/data_versioning_service_pb2.py +14 -47
  102. _qwak_proto/qwak/deployment/alert_pb2.py +24 -108
  103. _qwak_proto/qwak/deployment/alert_service_pb2.py +30 -127
  104. _qwak_proto/qwak/deployment/deployment_messages_pb2.py +6 -14
  105. _qwak_proto/qwak/deployment/deployment_pb2.py +124 -588
  106. _qwak_proto/qwak/deployment/deployment_service_pb2.py +86 -419
  107. _qwak_proto/qwak/ecosystem/jfrog/v0/token_pb2.py +47 -165
  108. _qwak_proto/qwak/ecosystem/jfrog/v0/token_pb2.pyi +102 -3
  109. _qwak_proto/qwak/ecosystem/jfrog/v0/token_service_pb2.py +22 -87
  110. _qwak_proto/qwak/ecosystem/v0/auth_pb2.py +28 -0
  111. _qwak_proto/qwak/ecosystem/v0/auth_pb2.pyi +37 -0
  112. _qwak_proto/qwak/ecosystem/v0/auth_pb2_grpc.py +4 -0
  113. _qwak_proto/qwak/ecosystem/v0/azure_credentials_pb2.py +37 -0
  114. _qwak_proto/qwak/ecosystem/v0/azure_credentials_pb2.pyi +117 -0
  115. _qwak_proto/qwak/ecosystem/v0/azure_credentials_pb2_grpc.py +4 -0
  116. _qwak_proto/qwak/ecosystem/v0/credentials_pb2.py +12 -35
  117. _qwak_proto/qwak/ecosystem/v0/credentials_pb2.pyi +8 -3
  118. _qwak_proto/qwak/ecosystem/v0/ecosystem_pb2.py +30 -138
  119. _qwak_proto/qwak/ecosystem/v0/ecosystem_runtime_service_pb2.py +52 -237
  120. _qwak_proto/qwak/execution/v1/backfill_pb2.py +18 -74
  121. _qwak_proto/qwak/execution/v1/batch_pb2.py +10 -34
  122. _qwak_proto/qwak/execution/v1/deletion_pb2.py +12 -44
  123. _qwak_proto/qwak/execution/v1/execution_pb2.py +16 -69
  124. _qwak_proto/qwak/execution/v1/execution_service_pb2.py +64 -298
  125. _qwak_proto/qwak/execution/v1/internal/deployment/platform_details_pb2.py +6 -14
  126. _qwak_proto/qwak/execution/v1/jobs/job_pb2.py +18 -76
  127. _qwak_proto/qwak/execution/v1/jobs/job_service_pb2.py +54 -247
  128. _qwak_proto/qwak/execution/v1/jobs/reports/report_pb2.py +20 -84
  129. _qwak_proto/qwak/execution/v1/state/execution_state_pb2.py +6 -14
  130. _qwak_proto/qwak/execution/v1/state/execution_state_service_pb2.py +30 -127
  131. _qwak_proto/qwak/execution/v1/state/featureset_state_pb2.py +6 -14
  132. _qwak_proto/qwak/execution/v1/state/spark_execution_state_pb2.py +14 -68
  133. _qwak_proto/qwak/execution/v1/streaming_aggregation_pb2.py +22 -55
  134. _qwak_proto/qwak/execution/v1/streaming_aggregation_pb2.pyi +71 -1
  135. _qwak_proto/qwak/execution/v1/streaming_pb2.py +12 -44
  136. _qwak_proto/qwak/feature_store/entities/entity_pb2.py +16 -57
  137. _qwak_proto/qwak/feature_store/entities/entity_service_pb2.py +30 -127
  138. _qwak_proto/qwak/feature_store/features/aggregation_pb2.py +38 -175
  139. _qwak_proto/qwak/feature_store/features/deployment_pb2.py +36 -167
  140. _qwak_proto/qwak/feature_store/features/deployment_service_pb2.py +10 -27
  141. _qwak_proto/qwak/feature_store/features/execution_pb2.py +14 -56
  142. _qwak_proto/qwak/feature_store/features/feature_set_attribute_pb2.py +6 -14
  143. _qwak_proto/qwak/feature_store/features/feature_set_pb2.py +35 -156
  144. _qwak_proto/qwak/feature_store/features/feature_set_pb2.pyi +9 -1
  145. _qwak_proto/qwak/feature_store/features/feature_set_service_pb2.py +97 -440
  146. _qwak_proto/qwak/feature_store/features/feature_set_service_pb2.pyi +25 -0
  147. _qwak_proto/qwak/feature_store/features/feature_set_service_pb2_grpc.py +34 -0
  148. _qwak_proto/qwak/feature_store/features/feature_set_state_pb2.py +38 -181
  149. _qwak_proto/qwak/feature_store/features/feature_set_state_service_pb2.py +26 -107
  150. _qwak_proto/qwak/feature_store/features/feature_set_types_pb2.py +77 -347
  151. _qwak_proto/qwak/feature_store/features/feature_set_types_pb2.pyi +7 -2
  152. _qwak_proto/qwak/feature_store/features/monitoring_pb2.py +10 -34
  153. _qwak_proto/qwak/feature_store/features/real_time_feature_extractor_pb2.py +32 -143
  154. _qwak_proto/qwak/feature_store/jobs/job_pb2.py +12 -46
  155. _qwak_proto/qwak/feature_store/jobs/job_service_pb2.py +30 -127
  156. _qwak_proto/qwak/feature_store/jobs/v1/job_pb2.py +12 -45
  157. _qwak_proto/qwak/feature_store/jobs/v1/job_service_pb2.py +42 -187
  158. _qwak_proto/qwak/feature_store/platform/platform_details_pb2.py +8 -24
  159. _qwak_proto/qwak/feature_store/reports/report_pb2.py +14 -53
  160. _qwak_proto/qwak/feature_store/repository/common/platform_pb2.py +10 -34
  161. _qwak_proto/qwak/feature_store/serving/management_pb2.py +14 -47
  162. _qwak_proto/qwak/feature_store/serving/metadata_pb2.py +12 -44
  163. _qwak_proto/qwak/feature_store/serving/serving_pb2.py +50 -222
  164. _qwak_proto/qwak/feature_store/serving/v1/value_pb2.py +8 -24
  165. _qwak_proto/qwak/feature_store/sinks/sink_pb2.py +14 -54
  166. _qwak_proto/qwak/feature_store/sources/batch_pb2.py +79 -335
  167. _qwak_proto/qwak/feature_store/sources/batch_pb2.pyi +99 -7
  168. _qwak_proto/qwak/feature_store/sources/data_source_attribute_pb2.py +6 -14
  169. _qwak_proto/qwak/feature_store/sources/data_source_pb2.py +15 -55
  170. _qwak_proto/qwak/feature_store/sources/data_source_pb2.pyi +5 -1
  171. _qwak_proto/qwak/feature_store/sources/data_source_service_pb2.py +39 -148
  172. _qwak_proto/qwak/feature_store/sources/data_source_service_pb2.pyi +25 -0
  173. _qwak_proto/qwak/feature_store/sources/data_source_service_pb2_grpc.py +34 -0
  174. _qwak_proto/qwak/feature_store/sources/streaming_pb2.py +34 -146
  175. _qwak_proto/qwak/feature_store/v1/common/jfrog_artifact/jfrog_artifact_pb2.py +6 -14
  176. _qwak_proto/qwak/feature_store/v1/common/source_code/source_code_pb2.py +10 -34
  177. _qwak_proto/qwak/feature_store/v1/internal/data_source/data_source_service_pb2.py +16 -58
  178. _qwak_proto/qwak/feature_store/v1/internal/featureset/featureset_token_service_pb2.py +10 -27
  179. _qwak_proto/qwak/features_operator/v1/features_operator_pb2.py +14 -54
  180. _qwak_proto/qwak/features_operator/v1/features_operator_service_pb2.py +14 -47
  181. _qwak_proto/qwak/features_operator/v2/features_operator_pb2.py +16 -64
  182. _qwak_proto/qwak/features_operator/v2/features_operator_service_pb2.py +12 -37
  183. _qwak_proto/qwak/features_operator/v3/features_operator_async_service_pb2.py +26 -107
  184. _qwak_proto/qwak/features_operator/v3/features_operator_pb2.py +16 -64
  185. _qwak_proto/qwak/file_versioning/file_versioning_pb2.py +10 -33
  186. _qwak_proto/qwak/file_versioning/file_versioning_service_pb2.py +14 -47
  187. _qwak_proto/qwak/fitness_service/constructs_pb2.py +23 -100
  188. _qwak_proto/qwak/fitness_service/constructs_pb2.pyi +24 -0
  189. _qwak_proto/qwak/fitness_service/fitness_pb2.py +7 -34
  190. _qwak_proto/qwak/fitness_service/fitness_pb2.pyi +0 -93
  191. _qwak_proto/qwak/fitness_service/status_pb2.py +17 -108
  192. _qwak_proto/qwak/fitness_service/status_pb2.pyi +1 -121
  193. _qwak_proto/qwak/inference/feedback/feedback_pb2.py +28 -96
  194. _qwak_proto/qwak/instance_template/instance_template_pb2.py +13 -41
  195. _qwak_proto/qwak/instance_template/instance_template_pb2.pyi +4 -1
  196. _qwak_proto/qwak/instance_template/instance_template_service_pb2.py +14 -47
  197. _qwak_proto/qwak/integration/hugging_face_integration_pb2.py +16 -64
  198. _qwak_proto/qwak/integration/integration_pb2.py +28 -126
  199. _qwak_proto/qwak/integration/integration_service_pb2.py +34 -147
  200. _qwak_proto/qwak/integration/open_a_i_integration_pb2.py +16 -64
  201. _qwak_proto/qwak/integration/opsgenie_integration_pb2.py +20 -82
  202. _qwak_proto/qwak/integration/pagerduty_integration_pb2.py +24 -104
  203. _qwak_proto/qwak/integration/slack_app_integration_pb2.py +24 -104
  204. _qwak_proto/qwak/kube_deployment_captain/alert_pb2.py +22 -97
  205. _qwak_proto/qwak/kube_deployment_captain/alerting_pb2.py +12 -44
  206. _qwak_proto/qwak/kube_deployment_captain/batch_job_pb2.py +70 -323
  207. _qwak_proto/qwak/kube_deployment_captain/batch_job_pb2.pyi +20 -5
  208. _qwak_proto/qwak/kube_deployment_captain/deployment_pb2.py +44 -167
  209. _qwak_proto/qwak/kube_deployment_captain/feature_set_deployment_pb2.py +32 -144
  210. _qwak_proto/qwak/kube_deployment_captain/kube_deployment_captain_service_pb2.py +108 -519
  211. _qwak_proto/qwak/kube_deployment_captain/traffic_mapping_pb2.py +8 -24
  212. _qwak_proto/qwak/logging/log_filter_pb2.py +12 -44
  213. _qwak_proto/qwak/logging/log_line_pb2.py +8 -25
  214. _qwak_proto/qwak/logging/log_reader_service_pb2.py +10 -27
  215. _qwak_proto/qwak/logging/log_source_pb2.py +30 -134
  216. _qwak_proto/qwak/model_descriptor/open_ai_descriptor_pb2.py +18 -74
  217. _qwak_proto/qwak/model_group/model_group_pb2.py +25 -48
  218. _qwak_proto/qwak/model_group/model_group_pb2.pyi +88 -0
  219. _qwak_proto/qwak/model_group/model_group_pb2_grpc.py +70 -0
  220. _qwak_proto/qwak/model_group/model_group_repository_details_pb2.py +23 -75
  221. _qwak_proto/qwak/model_group/model_group_repository_details_pb2.pyi +44 -6
  222. _qwak_proto/qwak/models/models_pb2.py +99 -406
  223. _qwak_proto/qwak/models/models_pb2.pyi +86 -0
  224. _qwak_proto/qwak/models/models_pb2_grpc.py +34 -0
  225. _qwak_proto/qwak/models/models_query_pb2.py +16 -56
  226. _qwak_proto/qwak/models/models_query_pb2.pyi +4 -4
  227. _qwak_proto/qwak/monitoring/v0/alerting_channel_management_service_pb2.py +30 -127
  228. _qwak_proto/qwak/monitoring/v0/alerting_channel_pb2.py +34 -152
  229. _qwak_proto/qwak/monitoring/v0/alerting_channel_sync_service_pb2.py +14 -47
  230. _qwak_proto/qwak/offline/serving/v1/feature_values_pb2.py +6 -14
  231. _qwak_proto/qwak/offline/serving/v1/offline_serving_async_service_pb2.py +30 -123
  232. _qwak_proto/qwak/offline/serving/v1/options_pb2.py +6 -14
  233. _qwak_proto/qwak/offline/serving/v1/population_pb2.py +14 -54
  234. _qwak_proto/qwak/projects/jfrog_project_spec_pb2.py +6 -14
  235. _qwak_proto/qwak/projects/projects_pb2.py +50 -192
  236. _qwak_proto/qwak/projects/projects_pb2.pyi +35 -0
  237. _qwak_proto/qwak/prompt/v1/prompt/prompt_manager_service_pb2.py +54 -247
  238. _qwak_proto/qwak/prompt/v1/prompt/prompt_pb2.py +46 -214
  239. _qwak_proto/qwak/secret_service/secret_service_pb2.py +18 -67
  240. _qwak_proto/qwak/secret_service/secret_service_pb2.pyi +1 -1
  241. _qwak_proto/qwak/self_service/account/v0/account_membership_pb2.py +24 -106
  242. _qwak_proto/qwak/self_service/account/v0/account_membership_service_pb2.py +50 -227
  243. _qwak_proto/qwak/self_service/account/v0/account_status_pb2.py +16 -65
  244. _qwak_proto/qwak/self_service/account/v0/managing_account_pb2.py +37 -132
  245. _qwak_proto/qwak/self_service/account/v0/managing_account_pb2.pyi +40 -2
  246. _qwak_proto/qwak/self_service/account/v0/managing_account_service_pb2.py +22 -87
  247. _qwak_proto/qwak/self_service/user/v1/api_key_pb2.py +6 -14
  248. _qwak_proto/qwak/self_service/user/v1/user_pb2.py +6 -14
  249. _qwak_proto/qwak/self_service/user/v1/user_service_pb2.py +30 -121
  250. _qwak_proto/qwak/service_discovery/service_discovery_location_pb2.py +12 -44
  251. _qwak_proto/qwak/service_discovery/service_discovery_location_service_pb2.py +10 -27
  252. _qwak_proto/qwak/traffic/v1/traffic_api_pb2.py +22 -87
  253. _qwak_proto/qwak/traffic/v1/traffic_pb2.py +26 -113
  254. _qwak_proto/qwak/user_application/common/v0/resources_pb2.py +31 -139
  255. _qwak_proto/qwak/user_application/common/v0/resources_pb2.pyi +24 -0
  256. _qwak_proto/qwak/user_application/v0/user_application_pb2.py +11 -44
  257. _qwak_proto/qwak/user_application/v0/user_application_pb2.pyi +6 -0
  258. _qwak_proto/qwak/vectors/v1/collection/collection_pb2.py +24 -106
  259. _qwak_proto/qwak/vectors/v1/collection/collection_service_pb2.py +38 -167
  260. _qwak_proto/qwak/vectors/v1/collection/event/collection_event_pb2.py +6 -14
  261. _qwak_proto/qwak/vectors/v1/filters_pb2.py +30 -134
  262. _qwak_proto/qwak/vectors/v1/vector_pb2.py +14 -54
  263. _qwak_proto/qwak/vectors/v1/vector_service_pb2.py +26 -107
  264. _qwak_proto/qwak/workspace/workspace_pb2.py +22 -107
  265. _qwak_proto/qwak/workspace/workspace_service_pb2.py +62 -287
  266. qwak/__init__.py +1 -1
  267. qwak/automations/automations.py +3 -0
  268. qwak/clients/feature_store/execution_management_client.py +28 -0
  269. qwak/clients/feature_store/management_client.py +156 -206
  270. qwak/clients/feature_store/operator_client.py +19 -1
  271. qwak/clients/logging_client/client.py +13 -18
  272. qwak/clients/model_management/client.py +0 -5
  273. qwak/clients/project/client.py +0 -7
  274. qwak/exceptions/__init__.py +1 -0
  275. qwak/exceptions/qwak_grpc_address_exception.py +9 -0
  276. qwak/feature_store/_common/artifact_utils.py +10 -8
  277. qwak/feature_store/_common/packaging.py +39 -21
  278. qwak/feature_store/_common/source_code_spec.py +61 -11
  279. qwak/feature_store/_common/source_code_spec_factory.py +63 -10
  280. qwak/feature_store/data_sources/__init__.py +2 -0
  281. qwak/feature_store/data_sources/base.py +11 -7
  282. qwak/feature_store/data_sources/batch/snowflake.py +34 -8
  283. qwak/feature_store/data_sources/batch/unity_catalog.py +107 -0
  284. qwak/feature_store/execution/streaming_backfill.py +48 -0
  285. qwak/feature_store/feature_sets/base_feature_set.py +1 -0
  286. qwak/feature_store/feature_sets/streaming.py +84 -63
  287. qwak/feature_store/feature_sets/streaming_backfill.py +88 -124
  288. qwak/feature_store/online/client.py +20 -4
  289. qwak/feature_store/validations/validation_decorators.py +70 -0
  290. qwak/feature_store/validations/validation_response.py +3 -1
  291. qwak/feature_store/validations/validator.py +11 -3
  292. qwak/inner/build_logic/interface/context_interface.py +4 -0
  293. qwak/inner/build_logic/phases/phase_010_fetch_model/post_fetch_validation_step.py +1 -1
  294. qwak/inner/const.py +2 -6
  295. qwak/inner/di_configuration/__init__.py +1 -69
  296. qwak/inner/di_configuration/account.py +18 -63
  297. qwak/inner/di_configuration/containers.py +5 -1
  298. qwak/inner/di_configuration/dependency_wiring.py +98 -0
  299. qwak/inner/tool/auth.py +10 -80
  300. qwak/inner/tool/grpc/grpc_auth.py +0 -32
  301. qwak/inner/tool/grpc/grpc_tools.py +125 -11
  302. qwak/inner/tool/grpc/grpc_try_wrapping.py +140 -3
  303. qwak/llmops/generation/chat/openai/types/chat/chat_completion.py +24 -6
  304. qwak/llmops/generation/chat/openai/types/chat/chat_completion_chunk.py +44 -8
  305. qwak/llmops/generation/chat/openai/types/chat/chat_completion_message.py +6 -3
  306. qwak/qwak_client/client.py +2 -13
  307. qwak/vector_store/rest_helpers.py +4 -16
  308. qwak_core-0.5.19.dist-info/METADATA +48 -0
  309. {qwak_core-0.4.278.dist-info → qwak_core-0.5.19.dist-info}/RECORD +316 -334
  310. qwak_services_mock/mocks/execution_management_service.py +9 -1
  311. qwak_services_mock/mocks/feature_store_data_sources_manager_api.py +55 -13
  312. qwak_services_mock/mocks/feature_store_entities_manager_api.py +31 -29
  313. qwak_services_mock/mocks/features_operator_v3_service.py +20 -0
  314. qwak_services_mock/mocks/qwak_mocks.py +0 -2
  315. qwak_services_mock/services_mock.py +1 -11
  316. _qwak_proto/qwak/fitness_service/fitness_service_pb2.py +0 -110
  317. _qwak_proto/qwak/fitness_service/fitness_service_pb2.pyi +0 -121
  318. _qwak_proto/qwak/fitness_service/fitness_service_pb2_grpc.py +0 -169
  319. frogml_storage/__init__.py +0 -1
  320. frogml_storage/artifactory/__init__.py +0 -1
  321. frogml_storage/artifactory/_artifactory_api.py +0 -315
  322. frogml_storage/authentication/login/__init__.py +0 -1
  323. frogml_storage/authentication/login/_login_cli.py +0 -239
  324. frogml_storage/authentication/login/_login_command.py +0 -74
  325. frogml_storage/authentication/models/__init__.py +0 -3
  326. frogml_storage/authentication/models/_auth.py +0 -24
  327. frogml_storage/authentication/models/_auth_config.py +0 -70
  328. frogml_storage/authentication/models/_login.py +0 -22
  329. frogml_storage/authentication/utils/__init__.py +0 -17
  330. frogml_storage/authentication/utils/_authentication_utils.py +0 -281
  331. frogml_storage/authentication/utils/_login_checks_utils.py +0 -114
  332. frogml_storage/base_storage.py +0 -140
  333. frogml_storage/constants.py +0 -56
  334. frogml_storage/exceptions/checksum_verification_error.py +0 -3
  335. frogml_storage/exceptions/validation_error.py +0 -4
  336. frogml_storage/frog_ml.py +0 -668
  337. frogml_storage/http/__init__.py +0 -1
  338. frogml_storage/http/http_client.py +0 -83
  339. frogml_storage/logging/__init__.py +0 -1
  340. frogml_storage/logging/_log_config.py +0 -45
  341. frogml_storage/logging/log_utils.py +0 -21
  342. frogml_storage/models/__init__.py +0 -1
  343. frogml_storage/models/_download_context.py +0 -54
  344. frogml_storage/models/dataset_manifest.py +0 -13
  345. frogml_storage/models/entity_manifest.py +0 -93
  346. frogml_storage/models/frogml_dataset_version.py +0 -21
  347. frogml_storage/models/frogml_entity_type_info.py +0 -50
  348. frogml_storage/models/frogml_entity_version.py +0 -34
  349. frogml_storage/models/frogml_model_version.py +0 -21
  350. frogml_storage/models/model_manifest.py +0 -60
  351. frogml_storage/models/serialization_metadata.py +0 -15
  352. frogml_storage/utils/__init__.py +0 -12
  353. frogml_storage/utils/_environment.py +0 -21
  354. frogml_storage/utils/_input_checks_utility.py +0 -104
  355. frogml_storage/utils/_storage_utils.py +0 -15
  356. frogml_storage/utils/_url_utils.py +0 -27
  357. qwak/clients/build_management/__init__.py +0 -1
  358. qwak/clients/build_management/client.py +0 -114
  359. qwak_core-0.4.278.dist-info/METADATA +0 -415
  360. qwak_services_mock/mocks/build_management.py +0 -100
  361. {qwak_core-0.4.278.dist-info → qwak_core-0.5.19.dist-info}/WHEEL +0 -0
@@ -1,169 +0,0 @@
1
- # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
- """Client and server classes corresponding to protobuf-defined services."""
3
- import grpc
4
-
5
- from _qwak_proto.qwak.fitness_service import fitness_service_pb2 as qwak_dot_fitness__service_dot_fitness__service__pb2
6
-
7
-
8
- class FitnessServiceStub(object):
9
- """Missing associated documentation comment in .proto file."""
10
-
11
- def __init__(self, channel):
12
- """Constructor.
13
-
14
- Args:
15
- channel: A grpc.Channel.
16
- """
17
- self.BuildModel = channel.unary_unary(
18
- '/qwak.fitness.service.FitnessService/BuildModel',
19
- request_serializer=qwak_dot_fitness__service_dot_fitness__service__pb2.BuildModelRequest.SerializeToString,
20
- response_deserializer=qwak_dot_fitness__service_dot_fitness__service__pb2.BuildModelResponse.FromString,
21
- )
22
- self.CancelBuildModel = channel.unary_unary(
23
- '/qwak.fitness.service.FitnessService/CancelBuildModel',
24
- request_serializer=qwak_dot_fitness__service_dot_fitness__service__pb2.CancelBuildModelRequest.SerializeToString,
25
- response_deserializer=qwak_dot_fitness__service_dot_fitness__service__pb2.CancelBuildModelResponse.FromString,
26
- )
27
- self.GetRemoteBuildingStatus = channel.unary_unary(
28
- '/qwak.fitness.service.FitnessService/GetRemoteBuildingStatus',
29
- request_serializer=qwak_dot_fitness__service_dot_fitness__service__pb2.GetRemoteBuildingStatusRequest.SerializeToString,
30
- response_deserializer=qwak_dot_fitness__service_dot_fitness__service__pb2.GetRemoteBuildingStatusResponse.FromString,
31
- )
32
- self.CleanRemoteBuildResources = channel.unary_unary(
33
- '/qwak.fitness.service.FitnessService/CleanRemoteBuildResources',
34
- request_serializer=qwak_dot_fitness__service_dot_fitness__service__pb2.CleanRemoteBuildResourcesRequest.SerializeToString,
35
- response_deserializer=qwak_dot_fitness__service_dot_fitness__service__pb2.CleanRemoteBuildResourcesResponse.FromString,
36
- )
37
-
38
-
39
- class FitnessServiceServicer(object):
40
- """Missing associated documentation comment in .proto file."""
41
-
42
- def BuildModel(self, request, context):
43
- """Build a serving model image
44
- """
45
- context.set_code(grpc.StatusCode.UNIMPLEMENTED)
46
- context.set_details('Method not implemented!')
47
- raise NotImplementedError('Method not implemented!')
48
-
49
- def CancelBuildModel(self, request, context):
50
- """Cancel an ongoing build
51
- """
52
- context.set_code(grpc.StatusCode.UNIMPLEMENTED)
53
- context.set_details('Method not implemented!')
54
- raise NotImplementedError('Method not implemented!')
55
-
56
- def GetRemoteBuildingStatus(self, request, context):
57
- """Get the status of remote build
58
- """
59
- context.set_code(grpc.StatusCode.UNIMPLEMENTED)
60
- context.set_details('Method not implemented!')
61
- raise NotImplementedError('Method not implemented!')
62
-
63
- def CleanRemoteBuildResources(self, request, context):
64
- """Clean the remote build resources
65
- """
66
- context.set_code(grpc.StatusCode.UNIMPLEMENTED)
67
- context.set_details('Method not implemented!')
68
- raise NotImplementedError('Method not implemented!')
69
-
70
-
71
- def add_FitnessServiceServicer_to_server(servicer, server):
72
- rpc_method_handlers = {
73
- 'BuildModel': grpc.unary_unary_rpc_method_handler(
74
- servicer.BuildModel,
75
- request_deserializer=qwak_dot_fitness__service_dot_fitness__service__pb2.BuildModelRequest.FromString,
76
- response_serializer=qwak_dot_fitness__service_dot_fitness__service__pb2.BuildModelResponse.SerializeToString,
77
- ),
78
- 'CancelBuildModel': grpc.unary_unary_rpc_method_handler(
79
- servicer.CancelBuildModel,
80
- request_deserializer=qwak_dot_fitness__service_dot_fitness__service__pb2.CancelBuildModelRequest.FromString,
81
- response_serializer=qwak_dot_fitness__service_dot_fitness__service__pb2.CancelBuildModelResponse.SerializeToString,
82
- ),
83
- 'GetRemoteBuildingStatus': grpc.unary_unary_rpc_method_handler(
84
- servicer.GetRemoteBuildingStatus,
85
- request_deserializer=qwak_dot_fitness__service_dot_fitness__service__pb2.GetRemoteBuildingStatusRequest.FromString,
86
- response_serializer=qwak_dot_fitness__service_dot_fitness__service__pb2.GetRemoteBuildingStatusResponse.SerializeToString,
87
- ),
88
- 'CleanRemoteBuildResources': grpc.unary_unary_rpc_method_handler(
89
- servicer.CleanRemoteBuildResources,
90
- request_deserializer=qwak_dot_fitness__service_dot_fitness__service__pb2.CleanRemoteBuildResourcesRequest.FromString,
91
- response_serializer=qwak_dot_fitness__service_dot_fitness__service__pb2.CleanRemoteBuildResourcesResponse.SerializeToString,
92
- ),
93
- }
94
- generic_handler = grpc.method_handlers_generic_handler(
95
- 'qwak.fitness.service.FitnessService', rpc_method_handlers)
96
- server.add_generic_rpc_handlers((generic_handler,))
97
-
98
-
99
- # This class is part of an EXPERIMENTAL API.
100
- class FitnessService(object):
101
- """Missing associated documentation comment in .proto file."""
102
-
103
- @staticmethod
104
- def BuildModel(request,
105
- target,
106
- options=(),
107
- channel_credentials=None,
108
- call_credentials=None,
109
- insecure=False,
110
- compression=None,
111
- wait_for_ready=None,
112
- timeout=None,
113
- metadata=None):
114
- return grpc.experimental.unary_unary(request, target, '/qwak.fitness.service.FitnessService/BuildModel',
115
- qwak_dot_fitness__service_dot_fitness__service__pb2.BuildModelRequest.SerializeToString,
116
- qwak_dot_fitness__service_dot_fitness__service__pb2.BuildModelResponse.FromString,
117
- options, channel_credentials,
118
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
119
-
120
- @staticmethod
121
- def CancelBuildModel(request,
122
- target,
123
- options=(),
124
- channel_credentials=None,
125
- call_credentials=None,
126
- insecure=False,
127
- compression=None,
128
- wait_for_ready=None,
129
- timeout=None,
130
- metadata=None):
131
- return grpc.experimental.unary_unary(request, target, '/qwak.fitness.service.FitnessService/CancelBuildModel',
132
- qwak_dot_fitness__service_dot_fitness__service__pb2.CancelBuildModelRequest.SerializeToString,
133
- qwak_dot_fitness__service_dot_fitness__service__pb2.CancelBuildModelResponse.FromString,
134
- options, channel_credentials,
135
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
136
-
137
- @staticmethod
138
- def GetRemoteBuildingStatus(request,
139
- target,
140
- options=(),
141
- channel_credentials=None,
142
- call_credentials=None,
143
- insecure=False,
144
- compression=None,
145
- wait_for_ready=None,
146
- timeout=None,
147
- metadata=None):
148
- return grpc.experimental.unary_unary(request, target, '/qwak.fitness.service.FitnessService/GetRemoteBuildingStatus',
149
- qwak_dot_fitness__service_dot_fitness__service__pb2.GetRemoteBuildingStatusRequest.SerializeToString,
150
- qwak_dot_fitness__service_dot_fitness__service__pb2.GetRemoteBuildingStatusResponse.FromString,
151
- options, channel_credentials,
152
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
153
-
154
- @staticmethod
155
- def CleanRemoteBuildResources(request,
156
- target,
157
- options=(),
158
- channel_credentials=None,
159
- call_credentials=None,
160
- insecure=False,
161
- compression=None,
162
- wait_for_ready=None,
163
- timeout=None,
164
- metadata=None):
165
- return grpc.experimental.unary_unary(request, target, '/qwak.fitness.service.FitnessService/CleanRemoteBuildResources',
166
- qwak_dot_fitness__service_dot_fitness__service__pb2.CleanRemoteBuildResourcesRequest.SerializeToString,
167
- qwak_dot_fitness__service_dot_fitness__service__pb2.CleanRemoteBuildResourcesResponse.FromString,
168
- options, channel_credentials,
169
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -1 +0,0 @@
1
- __version__ = "0.4.278"
@@ -1 +0,0 @@
1
- from ._artifactory_api import ArtifactoryApi, StartTransactionResponse
@@ -1,315 +0,0 @@
1
- import json
2
- import os
3
- from typing import Optional
4
-
5
- from requests import Response
6
- from tqdm.auto import tqdm
7
- from tqdm.utils import CallbackIOWrapper
8
- from urllib3 import Retry
9
-
10
- from frogml_storage.logging import logger
11
- from frogml_storage.utils import join_url
12
- from frogml_storage.constants import CHECKSUM_SHA2_HEADER
13
- from frogml_storage.models.entity_manifest import Checksums, EntityManifest
14
- from frogml_storage.models.frogml_entity_type_info import FrogMLEntityTypeInfo
15
- from frogml_storage.http import HTTPClient
16
- from frogml_storage.models import DownloadContext
17
-
18
-
19
- class StartTransactionResponse:
20
- files_upload_path: str
21
- lead_upload_path: str
22
- dependencies_upload_path: str
23
- code_upload_path: str
24
- transaction_id: str
25
-
26
- def __init__(
27
- self,
28
- files_upload_path,
29
- lead_upload_path,
30
- dependencies_upload_path,
31
- code_upload_path,
32
- transaction_id,
33
- ):
34
- self.files_upload_path = files_upload_path
35
- self.lead_upload_path = lead_upload_path
36
- self.dependencies_upload_path = dependencies_upload_path
37
- self.code_upload_path = code_upload_path
38
- self.transaction_id = transaction_id
39
-
40
-
41
- class ArtifactoryApi:
42
- def __init__(self, uri, auth=None, http_client=None):
43
- self.uri = uri
44
- if http_client is not None:
45
- self.http_client = http_client
46
- else:
47
- self.auth = auth
48
- self.http_client = HTTPClient(auth=auth)
49
-
50
- def start_transaction(
51
- self,
52
- entity_type_info: FrogMLEntityTypeInfo,
53
- repository: str,
54
- entity_name: str,
55
- version: Optional[str],
56
- ) -> StartTransactionResponse:
57
- """
58
- Initializes an upload. Returns transaction ID and upload path
59
- """
60
- if version is None:
61
- start_transaction_url = (
62
- f"{self.uri}/api/machinelearning/{repository}/"
63
- f"{entity_type_info.entity_type}/{entity_name}/start-transaction"
64
- )
65
- else:
66
- start_transaction_url = (
67
- f"{self.uri}/api/machinelearning/{repository}/{entity_type_info.entity_type}"
68
- f"/{entity_name}/start-transaction/{version}"
69
- )
70
- try:
71
- response = self.http_client.post(start_transaction_url)
72
- response.raise_for_status()
73
- files_upload_path = response.json()["filesUploadPath"]
74
- lead_upload_path = response.json()["leadUploadPath"]
75
- dependencies_upload_path = response.json()["dependenciesUploadPath"]
76
- code_upload_path = response.json()["codeUploadPath"]
77
- transaction_id = response.json()["transactionId"]
78
- except Exception as exception:
79
- err = (
80
- f"Error occurred while trying to start an upload transaction for "
81
- f"{entity_type_info.entity_type}: '{entity_name}'"
82
- f" Error: '{exception}'"
83
- )
84
- logger.error(err, exc_info=False)
85
- raise exception
86
- return StartTransactionResponse(
87
- files_upload_path=files_upload_path,
88
- lead_upload_path=lead_upload_path,
89
- dependencies_upload_path=dependencies_upload_path,
90
- code_upload_path=code_upload_path,
91
- transaction_id=transaction_id,
92
- )
93
-
94
- def end_transaction(
95
- self,
96
- entity_type: FrogMLEntityTypeInfo,
97
- repository: str,
98
- entity_name: str,
99
- entity_manifest: EntityManifest,
100
- transaction_id: str,
101
- version: str,
102
- properties: Optional[dict[str, str]],
103
- ) -> None:
104
- """
105
- Upload model-manifest.json | dataset-manifest.json file, makes the model | dataset available in the repository
106
- """
107
- filename = entity_type.metadata_file_name
108
-
109
- url = join_url(
110
- self.uri,
111
- "api",
112
- "machinelearning",
113
- repository,
114
- entity_type.entity_type,
115
- "entity-manifest",
116
- entity_name,
117
- version,
118
- transaction_id,
119
- )
120
-
121
- json_entity_manifest = entity_manifest.to_json()
122
- self.upload_entity_manifest(
123
- entity_type=entity_type,
124
- filename=filename,
125
- payload=json_entity_manifest,
126
- url=url,
127
- properties=properties,
128
- )
129
-
130
- def download_file(self, args: DownloadContext) -> None:
131
- filename = os.path.basename(args.target_path)
132
- try:
133
- url = f"{self.uri}/{args.repo_key}/{args.source_url}"
134
- with self.http_client.get(url=url, stream=True) as response:
135
- response.raise_for_status()
136
- total_size = int(response.headers.get("content-length", 0))
137
- with open(args.target_path, "wb") as file:
138
- with self.__initialize_progress_bar(total_size, filename) as pbar:
139
- for chunk in response.iter_content(chunk_size=8192):
140
- if chunk:
141
- file.write(chunk)
142
- pbar.update(len(chunk))
143
-
144
- except Exception as exception:
145
- self.__handle_download_exception(exception, args.target_path, filename)
146
-
147
- def get_entity_manifest(
148
- self,
149
- entity_type_info: FrogMLEntityTypeInfo,
150
- repository: str,
151
- entity_name: str,
152
- namespace: Optional[str],
153
- version: Optional[str],
154
- ) -> dict:
155
- url = join_url(
156
- self.uri,
157
- "api",
158
- "machinelearning",
159
- repository,
160
- entity_type_info.entity_type,
161
- "entity-manifest",
162
- namespace,
163
- entity_name,
164
- version,
165
- )
166
- try:
167
- with self.http_client.get(url=url) as r:
168
- r.raise_for_status()
169
- return r.json()
170
- except Exception as exception:
171
- err = f"Error occurred while trying to get {entity_type_info.entity_type} info file. Error: '{exception}'"
172
- logger.error(err, exc_info=False)
173
- raise exception
174
-
175
- @staticmethod
176
- def __handle_download_exception(
177
- exception: Exception, target_path: str, filename: str
178
- ) -> None:
179
- if os.path.exists(target_path):
180
- os.remove(target_path)
181
- err = f"Error occurred while trying to download file: '{filename}' Error: '{exception}'"
182
- logger.error(err, exc_info=False)
183
- raise exception
184
-
185
- def get_artifact_checksum(self, download_context: DownloadContext) -> str:
186
- url = f"{self.uri}/{download_context.repo_key}/{download_context.source_url}"
187
- try:
188
- with self.http_client.head(url=url, stream=True) as response:
189
- response.raise_for_status()
190
- return response.headers.get(CHECKSUM_SHA2_HEADER)
191
-
192
- except Exception as exception:
193
- logger.error(exception.__cause__, exc_info=False)
194
- raise exception
195
-
196
- def upload_entity_manifest(
197
- self,
198
- entity_type: FrogMLEntityTypeInfo,
199
- filename: str,
200
- payload: str,
201
- url: str,
202
- properties: Optional[dict[str, str]],
203
- stream: bool = False,
204
- ) -> None:
205
- body_part_name = f"{entity_type.body_part_stream}"
206
-
207
- try:
208
- files = {
209
- f"{body_part_name}": (
210
- f"{body_part_name}",
211
- payload,
212
- "application/octet-stream",
213
- ), # Include the InputStream
214
- "additionalData": (
215
- "additionalData",
216
- json.dumps(properties),
217
- "application/octet-stream",
218
- ), # Include the object
219
- }
220
- with self.http_client.put(url=url, files=files, stream=stream) as response:
221
- response.raise_for_status()
222
- except Exception as exception:
223
- err = f"Error occurred while trying to upload file: '{filename}' Error: '{exception}'"
224
- logger.error(err, exc_info=False)
225
- raise exception
226
-
227
- def upload_file(self, file_path: str, url: str) -> None:
228
- wrapped_file = None
229
- try:
230
- file_size = os.stat(file_path).st_size
231
- with (
232
- self.__initialize_progress_bar(file_size, file_path) as pbar,
233
- open(file_path, "rb") as file,
234
- ):
235
- wrapped_file = CallbackIOWrapper(pbar.update, file, "read")
236
- with self.http_client.put(url=url, payload=wrapped_file) as response:
237
- response.raise_for_status()
238
- except Exception as exception:
239
- err = f"Error occurred while trying to upload file: '{file_path}' Error: '{exception}'"
240
- logger.error(err, exc_info=False)
241
- raise type(exception)(f"{err} File: {file_path}") from exception
242
- finally:
243
- if wrapped_file is not None:
244
- wrapped_file.close()
245
-
246
- def checksum_deployment(
247
- self,
248
- checksum: Checksums,
249
- url: str,
250
- full_path: str,
251
- stream: bool = False,
252
- ) -> bool:
253
- response = self.http_client.put(
254
- url=url,
255
- headers={"X-Checksum-Sha256": checksum.sha2, "X-Checksum-Deploy": "true"},
256
- stream=stream,
257
- )
258
- if response.status_code != 200 and response.status_code != 201:
259
- return False
260
- else:
261
- file_size = os.path.getsize(full_path)
262
- pbar = self.__initialize_progress_bar(file_size, full_path)
263
- pbar.update(file_size)
264
- pbar.close()
265
- return True
266
-
267
- @staticmethod
268
- def __initialize_progress_bar(total_size: int, filename: str) -> tqdm:
269
- return tqdm(
270
- total=total_size, unit="B", unit_scale=True, desc=filename, initial=0
271
- )
272
-
273
- def encrypt_password(self) -> Response:
274
- """
275
- returns encrypted password as text
276
- """
277
- return self.http_client.get(
278
- url=join_url(self.uri, "/api/security/encryptedPassword")
279
- )
280
-
281
- def ping(self) -> Response:
282
- """
283
- Sends a ping to Artifactory to validate login status
284
- """
285
- url = join_url(self.uri, "api/system/ping")
286
- return self.http_client.get(url=url)
287
-
288
- def get_artifactory_version(self) -> Response:
289
- return self.http_client.get(url=join_url(self.uri, "/api/system/version"))
290
-
291
- def create_machinelearning_local_repo(self, repo_name: str) -> Response:
292
- data = {
293
- "rclass": "local",
294
- "packageType": "machinelearning",
295
- }
296
- return self.http_client.put(
297
- url=join_url(self.uri, "/api/repositories/" + repo_name), json=data
298
- )
299
-
300
- def delete_frogml_local_repo(self, repo_name: str) -> Response:
301
- return self.http_client.delete(
302
- url=join_url(self.uri, "/api/repositories/" + repo_name)
303
- )
304
-
305
-
306
- class RetryWithLog(Retry):
307
- """
308
- Adding extra logs before making a retry request
309
- """
310
-
311
- def __init__(self, *args, **kwargs):
312
- history = kwargs.get("history")
313
- if history is not None:
314
- logger.debug(f"Error: ${history[-1].error}\nretrying...")
315
- super().__init__(*args, **kwargs)
@@ -1 +0,0 @@
1
- from ._login_cli import login as frogml_login