frogml-core 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 (1013) hide show
  1. _frogml_proto/__init__.py +0 -0
  2. _frogml_proto/jfml/model_version/v1/model_repository_spec_pb2.py +35 -0
  3. _frogml_proto/jfml/model_version/v1/model_repository_spec_pb2.pyi +38 -0
  4. _frogml_proto/jfml/model_version/v1/model_repository_spec_pb2_grpc.py +4 -0
  5. _frogml_proto/jfml/model_version/v1/model_version_framework_pb2.py +45 -0
  6. _frogml_proto/jfml/model_version/v1/model_version_framework_pb2.pyi +41 -0
  7. _frogml_proto/jfml/model_version/v1/model_version_framework_pb2_grpc.py +4 -0
  8. _frogml_proto/jfml/model_version/v1/model_version_manager_service_pb2.py +151 -0
  9. _frogml_proto/jfml/model_version/v1/model_version_manager_service_pb2.pyi +230 -0
  10. _frogml_proto/jfml/model_version/v1/model_version_manager_service_pb2_grpc.py +237 -0
  11. _frogml_proto/jfml/model_version/v1/model_version_pb2.py +88 -0
  12. _frogml_proto/jfml/model_version/v1/model_version_pb2.pyi +133 -0
  13. _frogml_proto/jfml/model_version/v1/model_version_pb2_grpc.py +4 -0
  14. _frogml_proto/qwak/administration/account/v1/account_pb2.py +114 -0
  15. _frogml_proto/qwak/administration/account/v1/account_pb2.pyi +257 -0
  16. _frogml_proto/qwak/administration/account/v1/account_pb2_grpc.py +4 -0
  17. _frogml_proto/qwak/administration/account/v1/account_service_pb2.py +212 -0
  18. _frogml_proto/qwak/administration/account/v1/account_service_pb2.pyi +344 -0
  19. _frogml_proto/qwak/administration/account/v1/account_service_pb2_grpc.py +338 -0
  20. _frogml_proto/qwak/administration/account/v1/jfrog_tenant_details_pb2.py +77 -0
  21. _frogml_proto/qwak/administration/account/v1/jfrog_tenant_details_pb2.pyi +109 -0
  22. _frogml_proto/qwak/administration/account/v1/jfrog_tenant_details_pb2_grpc.py +4 -0
  23. _frogml_proto/qwak/administration/account/v1/personalization_pb2.py +45 -0
  24. _frogml_proto/qwak/administration/account/v1/personalization_pb2.pyi +49 -0
  25. _frogml_proto/qwak/administration/account/v1/personalization_pb2_grpc.py +4 -0
  26. _frogml_proto/qwak/administration/account/v1/preferences_pb2.py +36 -0
  27. _frogml_proto/qwak/administration/account/v1/preferences_pb2.pyi +35 -0
  28. _frogml_proto/qwak/administration/account/v1/preferences_pb2_grpc.py +4 -0
  29. _frogml_proto/qwak/administration/account/v1/terms_pb2.py +75 -0
  30. _frogml_proto/qwak/administration/account/v1/terms_pb2.pyi +94 -0
  31. _frogml_proto/qwak/administration/account/v1/terms_pb2_grpc.py +4 -0
  32. _frogml_proto/qwak/administration/authenticated_user/v1/authenticated_user_service_pb2.py +91 -0
  33. _frogml_proto/qwak/administration/authenticated_user/v1/authenticated_user_service_pb2.pyi +108 -0
  34. _frogml_proto/qwak/administration/authenticated_user/v1/authenticated_user_service_pb2_grpc.py +135 -0
  35. _frogml_proto/qwak/administration/authenticated_user/v1/credentials_pb2.py +46 -0
  36. _frogml_proto/qwak/administration/authenticated_user/v1/credentials_pb2.pyi +62 -0
  37. _frogml_proto/qwak/administration/authenticated_user/v1/credentials_pb2_grpc.py +4 -0
  38. _frogml_proto/qwak/administration/authenticated_user/v1/details_pb2.py +75 -0
  39. _frogml_proto/qwak/administration/authenticated_user/v1/details_pb2.pyi +140 -0
  40. _frogml_proto/qwak/administration/authenticated_user/v1/details_pb2_grpc.py +4 -0
  41. _frogml_proto/qwak/administration/v0/authentication/authentication_service_pb2.py +69 -0
  42. _frogml_proto/qwak/administration/v0/authentication/authentication_service_pb2.pyi +92 -0
  43. _frogml_proto/qwak/administration/v0/authentication/authentication_service_pb2_grpc.py +67 -0
  44. _frogml_proto/qwak/administration/v0/environments/configuration_pb2.py +93 -0
  45. _frogml_proto/qwak/administration/v0/environments/configuration_pb2.pyi +233 -0
  46. _frogml_proto/qwak/administration/v0/environments/configuration_pb2_grpc.py +4 -0
  47. _frogml_proto/qwak/administration/v0/environments/environment_pb2.py +66 -0
  48. _frogml_proto/qwak/administration/v0/environments/environment_pb2.pyi +156 -0
  49. _frogml_proto/qwak/administration/v0/environments/environment_pb2_grpc.py +4 -0
  50. _frogml_proto/qwak/administration/v0/environments/environment_service_pb2.py +184 -0
  51. _frogml_proto/qwak/administration/v0/environments/environment_service_pb2.pyi +274 -0
  52. _frogml_proto/qwak/administration/v0/environments/environment_service_pb2_grpc.py +272 -0
  53. _frogml_proto/qwak/administration/v0/environments/personalization_pb2.py +45 -0
  54. _frogml_proto/qwak/administration/v0/environments/personalization_pb2.pyi +45 -0
  55. _frogml_proto/qwak/administration/v0/environments/personalization_pb2_grpc.py +4 -0
  56. _frogml_proto/qwak/administration/v0/users/user_pb2.py +97 -0
  57. _frogml_proto/qwak/administration/v0/users/user_pb2.pyi +249 -0
  58. _frogml_proto/qwak/administration/v0/users/user_pb2_grpc.py +4 -0
  59. _frogml_proto/qwak/admiral/secret/v0/secret_pb2.py +140 -0
  60. _frogml_proto/qwak/admiral/secret/v0/secret_pb2.pyi +237 -0
  61. _frogml_proto/qwak/admiral/secret/v0/secret_pb2_grpc.py +4 -0
  62. _frogml_proto/qwak/admiral/secret/v0/secret_service_pb2.py +89 -0
  63. _frogml_proto/qwak/admiral/secret/v0/secret_service_pb2.pyi +93 -0
  64. _frogml_proto/qwak/admiral/secret/v0/secret_service_pb2_grpc.py +135 -0
  65. _frogml_proto/qwak/admiral/secret/v0/system_secret_service_pb2.py +89 -0
  66. _frogml_proto/qwak/admiral/secret/v0/system_secret_service_pb2.pyi +101 -0
  67. _frogml_proto/qwak/admiral/secret/v0/system_secret_service_pb2_grpc.py +135 -0
  68. _frogml_proto/qwak/admiral/user_application_instance/v0/user_application_instance_pb2.py +198 -0
  69. _frogml_proto/qwak/admiral/user_application_instance/v0/user_application_instance_pb2.pyi +431 -0
  70. _frogml_proto/qwak/admiral/user_application_instance/v0/user_application_instance_pb2_grpc.py +4 -0
  71. _frogml_proto/qwak/admiral/user_application_instance/v0/user_application_instance_service_pb2.py +109 -0
  72. _frogml_proto/qwak/admiral/user_application_instance/v0/user_application_instance_service_pb2.pyi +128 -0
  73. _frogml_proto/qwak/admiral/user_application_instance/v0/user_application_instance_service_pb2_grpc.py +169 -0
  74. _frogml_proto/qwak/analytics/analytics_pb2.py +142 -0
  75. _frogml_proto/qwak/analytics/analytics_pb2.pyi +308 -0
  76. _frogml_proto/qwak/analytics/analytics_pb2_grpc.py +4 -0
  77. _frogml_proto/qwak/analytics/analytics_service_pb2.py +229 -0
  78. _frogml_proto/qwak/analytics/analytics_service_pb2.pyi +339 -0
  79. _frogml_proto/qwak/analytics/analytics_service_pb2_grpc.py +370 -0
  80. _frogml_proto/qwak/audience/v1/audience_api_pb2.py +149 -0
  81. _frogml_proto/qwak/audience/v1/audience_api_pb2.pyi +176 -0
  82. _frogml_proto/qwak/audience/v1/audience_api_pb2_grpc.py +240 -0
  83. _frogml_proto/qwak/audience/v1/audience_pb2.py +137 -0
  84. _frogml_proto/qwak/audience/v1/audience_pb2.pyi +313 -0
  85. _frogml_proto/qwak/audience/v1/audience_pb2_grpc.py +4 -0
  86. _frogml_proto/qwak/auto_scaling/v1/auto_scaling_pb2.py +100 -0
  87. _frogml_proto/qwak/auto_scaling/v1/auto_scaling_pb2.pyi +187 -0
  88. _frogml_proto/qwak/auto_scaling/v1/auto_scaling_pb2_grpc.py +4 -0
  89. _frogml_proto/qwak/auto_scaling/v1/auto_scaling_service_pb2.py +49 -0
  90. _frogml_proto/qwak/auto_scaling/v1/auto_scaling_service_pb2.pyi +55 -0
  91. _frogml_proto/qwak/auto_scaling/v1/auto_scaling_service_pb2_grpc.py +67 -0
  92. _frogml_proto/qwak/automation/v1/action_pb2.py +220 -0
  93. _frogml_proto/qwak/automation/v1/action_pb2.pyi +513 -0
  94. _frogml_proto/qwak/automation/v1/action_pb2_grpc.py +4 -0
  95. _frogml_proto/qwak/automation/v1/auto_scaling_pb2.py +97 -0
  96. _frogml_proto/qwak/automation/v1/auto_scaling_pb2.pyi +177 -0
  97. _frogml_proto/qwak/automation/v1/auto_scaling_pb2_grpc.py +4 -0
  98. _frogml_proto/qwak/automation/v1/automation_execution_pb2.py +65 -0
  99. _frogml_proto/qwak/automation/v1/automation_execution_pb2.pyi +123 -0
  100. _frogml_proto/qwak/automation/v1/automation_execution_pb2_grpc.py +4 -0
  101. _frogml_proto/qwak/automation/v1/automation_management_service_pb2.py +283 -0
  102. _frogml_proto/qwak/automation/v1/automation_management_service_pb2.pyi +386 -0
  103. _frogml_proto/qwak/automation/v1/automation_management_service_pb2_grpc.py +429 -0
  104. _frogml_proto/qwak/automation/v1/automation_pb2.py +59 -0
  105. _frogml_proto/qwak/automation/v1/automation_pb2.pyi +121 -0
  106. _frogml_proto/qwak/automation/v1/automation_pb2_grpc.py +4 -0
  107. _frogml_proto/qwak/automation/v1/common_pb2.py +56 -0
  108. _frogml_proto/qwak/automation/v1/common_pb2.pyi +71 -0
  109. _frogml_proto/qwak/automation/v1/common_pb2_grpc.py +4 -0
  110. _frogml_proto/qwak/automation/v1/notification_pb2.py +93 -0
  111. _frogml_proto/qwak/automation/v1/notification_pb2.pyi +134 -0
  112. _frogml_proto/qwak/automation/v1/notification_pb2_grpc.py +4 -0
  113. _frogml_proto/qwak/automation/v1/trigger_pb2.py +76 -0
  114. _frogml_proto/qwak/automation/v1/trigger_pb2.pyi +112 -0
  115. _frogml_proto/qwak/automation/v1/trigger_pb2_grpc.py +4 -0
  116. _frogml_proto/qwak/batch_job/v1/batch_job_events_pb2.py +148 -0
  117. _frogml_proto/qwak/batch_job/v1/batch_job_events_pb2.pyi +307 -0
  118. _frogml_proto/qwak/batch_job/v1/batch_job_events_pb2_grpc.py +4 -0
  119. _frogml_proto/qwak/batch_job/v1/batch_job_resources_pb2.py +47 -0
  120. _frogml_proto/qwak/batch_job/v1/batch_job_resources_pb2.pyi +61 -0
  121. _frogml_proto/qwak/batch_job/v1/batch_job_resources_pb2_grpc.py +4 -0
  122. _frogml_proto/qwak/batch_job/v1/batch_job_service_pb2.py +570 -0
  123. _frogml_proto/qwak/batch_job/v1/batch_job_service_pb2.pyi +1328 -0
  124. _frogml_proto/qwak/batch_job/v1/batch_job_service_pb2_grpc.py +574 -0
  125. _frogml_proto/qwak/build/v1/build_api_pb2.py +446 -0
  126. _frogml_proto/qwak/build/v1/build_api_pb2.pyi +682 -0
  127. _frogml_proto/qwak/build/v1/build_api_pb2_grpc.py +594 -0
  128. _frogml_proto/qwak/build/v1/build_pb2.py +575 -0
  129. _frogml_proto/qwak/build/v1/build_pb2.pyi +1328 -0
  130. _frogml_proto/qwak/build/v1/build_pb2_grpc.py +4 -0
  131. _frogml_proto/qwak/build_settings/build_settings_api_pb2.py +89 -0
  132. _frogml_proto/qwak/build_settings/build_settings_api_pb2.pyi +106 -0
  133. _frogml_proto/qwak/build_settings/build_settings_api_pb2_grpc.py +132 -0
  134. _frogml_proto/qwak/build_settings/build_settings_pb2.py +95 -0
  135. _frogml_proto/qwak/build_settings/build_settings_pb2.pyi +148 -0
  136. _frogml_proto/qwak/build_settings/build_settings_pb2_grpc.py +4 -0
  137. _frogml_proto/qwak/builds/build_pb2.py +233 -0
  138. _frogml_proto/qwak/builds/build_pb2.pyi +582 -0
  139. _frogml_proto/qwak/builds/build_pb2_grpc.py +4 -0
  140. _frogml_proto/qwak/builds/build_url_pb2.py +86 -0
  141. _frogml_proto/qwak/builds/build_url_pb2.pyi +179 -0
  142. _frogml_proto/qwak/builds/build_url_pb2_grpc.py +4 -0
  143. _frogml_proto/qwak/builds/builds_orchestrator_service_pb2.py +212 -0
  144. _frogml_proto/qwak/builds/builds_orchestrator_service_pb2.pyi +322 -0
  145. _frogml_proto/qwak/builds/builds_orchestrator_service_pb2_grpc.py +306 -0
  146. _frogml_proto/qwak/builds/builds_pb2.py +556 -0
  147. _frogml_proto/qwak/builds/builds_pb2.pyi +1271 -0
  148. _frogml_proto/qwak/builds/builds_pb2_grpc.py +237 -0
  149. _frogml_proto/qwak/builds/internal_builds_orchestrator_service_pb2.py +59 -0
  150. _frogml_proto/qwak/builds/internal_builds_orchestrator_service_pb2.pyi +64 -0
  151. _frogml_proto/qwak/builds/internal_builds_orchestrator_service_pb2_grpc.py +67 -0
  152. _frogml_proto/qwak/data_versioning/data_versioning_pb2.py +45 -0
  153. _frogml_proto/qwak/data_versioning/data_versioning_pb2.pyi +71 -0
  154. _frogml_proto/qwak/data_versioning/data_versioning_pb2_grpc.py +4 -0
  155. _frogml_proto/qwak/data_versioning/data_versioning_service_pb2.py +69 -0
  156. _frogml_proto/qwak/data_versioning/data_versioning_service_pb2.pyi +83 -0
  157. _frogml_proto/qwak/data_versioning/data_versioning_service_pb2_grpc.py +101 -0
  158. _frogml_proto/qwak/deployment/alert_pb2.py +131 -0
  159. _frogml_proto/qwak/deployment/alert_pb2.pyi +262 -0
  160. _frogml_proto/qwak/deployment/alert_pb2_grpc.py +4 -0
  161. _frogml_proto/qwak/deployment/alert_service_pb2.py +153 -0
  162. _frogml_proto/qwak/deployment/alert_service_pb2.pyi +218 -0
  163. _frogml_proto/qwak/deployment/alert_service_pb2_grpc.py +237 -0
  164. _frogml_proto/qwak/deployment/deployment_messages_pb2.py +36 -0
  165. _frogml_proto/qwak/deployment/deployment_messages_pb2.pyi +61 -0
  166. _frogml_proto/qwak/deployment/deployment_messages_pb2_grpc.py +4 -0
  167. _frogml_proto/qwak/deployment/deployment_pb2.py +644 -0
  168. _frogml_proto/qwak/deployment/deployment_pb2.pyi +1582 -0
  169. _frogml_proto/qwak/deployment/deployment_pb2_grpc.py +4 -0
  170. _frogml_proto/qwak/deployment/deployment_service_pb2.py +520 -0
  171. _frogml_proto/qwak/deployment/deployment_service_pb2.pyi +817 -0
  172. _frogml_proto/qwak/deployment/deployment_service_pb2_grpc.py +509 -0
  173. _frogml_proto/qwak/ecosystem/v0/credentials_pb2.py +56 -0
  174. _frogml_proto/qwak/ecosystem/v0/credentials_pb2.pyi +91 -0
  175. _frogml_proto/qwak/ecosystem/v0/credentials_pb2_grpc.py +4 -0
  176. _frogml_proto/qwak/ecosystem/v0/ecosystem_pb2.py +173 -0
  177. _frogml_proto/qwak/ecosystem/v0/ecosystem_pb2.pyi +332 -0
  178. _frogml_proto/qwak/ecosystem/v0/ecosystem_pb2_grpc.py +4 -0
  179. _frogml_proto/qwak/ecosystem/v0/ecosystem_runtime_service_pb2.py +264 -0
  180. _frogml_proto/qwak/ecosystem/v0/ecosystem_runtime_service_pb2.pyi +434 -0
  181. _frogml_proto/qwak/ecosystem/v0/ecosystem_runtime_service_pb2_grpc.py +238 -0
  182. _frogml_proto/qwak/execution/v1/backfill_pb2.py +97 -0
  183. _frogml_proto/qwak/execution/v1/backfill_pb2.pyi +167 -0
  184. _frogml_proto/qwak/execution/v1/backfill_pb2_grpc.py +4 -0
  185. _frogml_proto/qwak/execution/v1/batch_pb2.py +56 -0
  186. _frogml_proto/qwak/execution/v1/batch_pb2.pyi +76 -0
  187. _frogml_proto/qwak/execution/v1/batch_pb2_grpc.py +4 -0
  188. _frogml_proto/qwak/execution/v1/deletion_pb2.py +65 -0
  189. _frogml_proto/qwak/execution/v1/deletion_pb2.pyi +67 -0
  190. _frogml_proto/qwak/execution/v1/deletion_pb2_grpc.py +4 -0
  191. _frogml_proto/qwak/execution/v1/execution_pb2.py +96 -0
  192. _frogml_proto/qwak/execution/v1/execution_pb2.pyi +201 -0
  193. _frogml_proto/qwak/execution/v1/execution_pb2_grpc.py +4 -0
  194. _frogml_proto/qwak/execution/v1/execution_service_pb2.py +294 -0
  195. _frogml_proto/qwak/execution/v1/execution_service_pb2.pyi +431 -0
  196. _frogml_proto/qwak/execution/v1/execution_service_pb2_grpc.py +467 -0
  197. _frogml_proto/qwak/execution/v1/jobs/job_pb2.py +101 -0
  198. _frogml_proto/qwak/execution/v1/jobs/job_pb2.pyi +282 -0
  199. _frogml_proto/qwak/execution/v1/jobs/job_pb2_grpc.py +4 -0
  200. _frogml_proto/qwak/execution/v1/jobs/job_service_pb2.py +270 -0
  201. _frogml_proto/qwak/execution/v1/jobs/job_service_pb2.pyi +469 -0
  202. _frogml_proto/qwak/execution/v1/jobs/job_service_pb2_grpc.py +396 -0
  203. _frogml_proto/qwak/execution/v1/jobs/reports/report_pb2.py +109 -0
  204. _frogml_proto/qwak/execution/v1/jobs/reports/report_pb2.pyi +266 -0
  205. _frogml_proto/qwak/execution/v1/jobs/reports/report_pb2_grpc.py +4 -0
  206. _frogml_proto/qwak/execution/v1/state/execution_state_pb2.py +36 -0
  207. _frogml_proto/qwak/execution/v1/state/execution_state_pb2.pyi +45 -0
  208. _frogml_proto/qwak/execution/v1/state/execution_state_pb2_grpc.py +4 -0
  209. _frogml_proto/qwak/execution/v1/state/execution_state_service_pb2.py +150 -0
  210. _frogml_proto/qwak/execution/v1/state/execution_state_service_pb2.pyi +192 -0
  211. _frogml_proto/qwak/execution/v1/state/execution_state_service_pb2_grpc.py +237 -0
  212. _frogml_proto/qwak/execution/v1/state/featureset_state_pb2.py +35 -0
  213. _frogml_proto/qwak/execution/v1/state/featureset_state_pb2.pyi +37 -0
  214. _frogml_proto/qwak/execution/v1/state/featureset_state_pb2_grpc.py +4 -0
  215. _frogml_proto/qwak/execution/v1/state/spark_execution_state_pb2.py +91 -0
  216. _frogml_proto/qwak/execution/v1/state/spark_execution_state_pb2.pyi +156 -0
  217. _frogml_proto/qwak/execution/v1/state/spark_execution_state_pb2_grpc.py +4 -0
  218. _frogml_proto/qwak/execution/v1/streaming_aggregation_pb2.py +75 -0
  219. _frogml_proto/qwak/execution/v1/streaming_aggregation_pb2.pyi +95 -0
  220. _frogml_proto/qwak/execution/v1/streaming_aggregation_pb2_grpc.py +4 -0
  221. _frogml_proto/qwak/execution/v1/streaming_pb2.py +65 -0
  222. _frogml_proto/qwak/execution/v1/streaming_pb2.pyi +79 -0
  223. _frogml_proto/qwak/execution/v1/streaming_pb2_grpc.py +4 -0
  224. _frogml_proto/qwak/feature_store/entities/entity_pb2.py +79 -0
  225. _frogml_proto/qwak/feature_store/entities/entity_pb2.pyi +166 -0
  226. _frogml_proto/qwak/feature_store/entities/entity_pb2_grpc.py +4 -0
  227. _frogml_proto/qwak/feature_store/entities/entity_service_pb2.py +149 -0
  228. _frogml_proto/qwak/feature_store/entities/entity_service_pb2.pyi +203 -0
  229. _frogml_proto/qwak/feature_store/entities/entity_service_pb2_grpc.py +237 -0
  230. _frogml_proto/qwak/feature_store/features/aggregation_pb2.py +196 -0
  231. _frogml_proto/qwak/feature_store/features/aggregation_pb2.pyi +361 -0
  232. _frogml_proto/qwak/feature_store/features/aggregation_pb2_grpc.py +4 -0
  233. _frogml_proto/qwak/feature_store/features/deployment_pb2.py +189 -0
  234. _frogml_proto/qwak/feature_store/features/deployment_pb2.pyi +379 -0
  235. _frogml_proto/qwak/feature_store/features/deployment_pb2_grpc.py +4 -0
  236. _frogml_proto/qwak/feature_store/features/deployment_service_pb2.py +49 -0
  237. _frogml_proto/qwak/feature_store/features/deployment_service_pb2.pyi +45 -0
  238. _frogml_proto/qwak/feature_store/features/deployment_service_pb2_grpc.py +67 -0
  239. _frogml_proto/qwak/feature_store/features/execution_pb2.py +77 -0
  240. _frogml_proto/qwak/feature_store/features/execution_pb2.pyi +158 -0
  241. _frogml_proto/qwak/feature_store/features/execution_pb2_grpc.py +4 -0
  242. _frogml_proto/qwak/feature_store/features/feature_set_attribute_pb2.py +36 -0
  243. _frogml_proto/qwak/feature_store/features/feature_set_attribute_pb2.pyi +33 -0
  244. _frogml_proto/qwak/feature_store/features/feature_set_attribute_pb2_grpc.py +4 -0
  245. _frogml_proto/qwak/feature_store/features/feature_set_pb2.py +198 -0
  246. _frogml_proto/qwak/feature_store/features/feature_set_pb2.pyi +443 -0
  247. _frogml_proto/qwak/feature_store/features/feature_set_pb2_grpc.py +4 -0
  248. _frogml_proto/qwak/feature_store/features/feature_set_service_pb2.py +467 -0
  249. _frogml_proto/qwak/feature_store/features/feature_set_service_pb2.pyi +663 -0
  250. _frogml_proto/qwak/feature_store/features/feature_set_service_pb2_grpc.py +746 -0
  251. _frogml_proto/qwak/feature_store/features/feature_set_state_pb2.py +203 -0
  252. _frogml_proto/qwak/feature_store/features/feature_set_state_pb2.pyi +329 -0
  253. _frogml_proto/qwak/feature_store/features/feature_set_state_pb2_grpc.py +4 -0
  254. _frogml_proto/qwak/feature_store/features/feature_set_state_service_pb2.py +129 -0
  255. _frogml_proto/qwak/feature_store/features/feature_set_state_service_pb2.pyi +175 -0
  256. _frogml_proto/qwak/feature_store/features/feature_set_state_service_pb2_grpc.py +203 -0
  257. _frogml_proto/qwak/feature_store/features/feature_set_types_pb2.py +381 -0
  258. _frogml_proto/qwak/feature_store/features/feature_set_types_pb2.pyi +862 -0
  259. _frogml_proto/qwak/feature_store/features/feature_set_types_pb2_grpc.py +4 -0
  260. _frogml_proto/qwak/feature_store/features/monitoring_pb2.py +55 -0
  261. _frogml_proto/qwak/feature_store/features/monitoring_pb2.pyi +67 -0
  262. _frogml_proto/qwak/feature_store/features/monitoring_pb2_grpc.py +4 -0
  263. _frogml_proto/qwak/feature_store/features/real_time_feature_extractor_pb2.py +167 -0
  264. _frogml_proto/qwak/feature_store/features/real_time_feature_extractor_pb2.pyi +359 -0
  265. _frogml_proto/qwak/feature_store/features/real_time_feature_extractor_pb2_grpc.py +4 -0
  266. _frogml_proto/qwak/feature_store/jobs/job_pb2.py +68 -0
  267. _frogml_proto/qwak/feature_store/jobs/job_pb2.pyi +169 -0
  268. _frogml_proto/qwak/feature_store/jobs/job_pb2_grpc.py +4 -0
  269. _frogml_proto/qwak/feature_store/jobs/job_service_pb2.py +149 -0
  270. _frogml_proto/qwak/feature_store/jobs/job_service_pb2.pyi +237 -0
  271. _frogml_proto/qwak/feature_store/jobs/job_service_pb2_grpc.py +237 -0
  272. _frogml_proto/qwak/feature_store/jobs/v1/job_pb2.py +67 -0
  273. _frogml_proto/qwak/feature_store/jobs/v1/job_pb2.pyi +175 -0
  274. _frogml_proto/qwak/feature_store/jobs/v1/job_pb2_grpc.py +4 -0
  275. _frogml_proto/qwak/feature_store/jobs/v1/job_service_pb2.py +210 -0
  276. _frogml_proto/qwak/feature_store/jobs/v1/job_service_pb2.pyi +349 -0
  277. _frogml_proto/qwak/feature_store/jobs/v1/job_service_pb2_grpc.py +338 -0
  278. _frogml_proto/qwak/feature_store/platform/platform_details_pb2.py +46 -0
  279. _frogml_proto/qwak/feature_store/platform/platform_details_pb2.pyi +54 -0
  280. _frogml_proto/qwak/feature_store/platform/platform_details_pb2_grpc.py +4 -0
  281. _frogml_proto/qwak/feature_store/reports/report_pb2.py +75 -0
  282. _frogml_proto/qwak/feature_store/reports/report_pb2.pyi +159 -0
  283. _frogml_proto/qwak/feature_store/reports/report_pb2_grpc.py +4 -0
  284. _frogml_proto/qwak/feature_store/repository/common/platform_pb2.py +55 -0
  285. _frogml_proto/qwak/feature_store/repository/common/platform_pb2.pyi +70 -0
  286. _frogml_proto/qwak/feature_store/repository/common/platform_pb2_grpc.py +4 -0
  287. _frogml_proto/qwak/feature_store/serving/management_pb2.py +69 -0
  288. _frogml_proto/qwak/feature_store/serving/management_pb2.pyi +72 -0
  289. _frogml_proto/qwak/feature_store/serving/management_pb2_grpc.py +101 -0
  290. _frogml_proto/qwak/feature_store/serving/metadata_pb2.py +67 -0
  291. _frogml_proto/qwak/feature_store/serving/metadata_pb2.pyi +158 -0
  292. _frogml_proto/qwak/feature_store/serving/metadata_pb2_grpc.py +4 -0
  293. _frogml_proto/qwak/feature_store/serving/serving_pb2.py +254 -0
  294. _frogml_proto/qwak/feature_store/serving/serving_pb2.pyi +476 -0
  295. _frogml_proto/qwak/feature_store/serving/serving_pb2_grpc.py +101 -0
  296. _frogml_proto/qwak/feature_store/serving/v1/value_pb2.py +46 -0
  297. _frogml_proto/qwak/feature_store/serving/v1/value_pb2.pyi +91 -0
  298. _frogml_proto/qwak/feature_store/serving/v1/value_pb2_grpc.py +4 -0
  299. _frogml_proto/qwak/feature_store/sinks/sink_pb2.py +76 -0
  300. _frogml_proto/qwak/feature_store/sinks/sink_pb2.pyi +137 -0
  301. _frogml_proto/qwak/feature_store/sinks/sink_pb2_grpc.py +4 -0
  302. _frogml_proto/qwak/feature_store/sources/batch_pb2.py +362 -0
  303. _frogml_proto/qwak/feature_store/sources/batch_pb2.pyi +911 -0
  304. _frogml_proto/qwak/feature_store/sources/batch_pb2_grpc.py +4 -0
  305. _frogml_proto/qwak/feature_store/sources/data_source_attribute_pb2.py +36 -0
  306. _frogml_proto/qwak/feature_store/sources/data_source_attribute_pb2.pyi +33 -0
  307. _frogml_proto/qwak/feature_store/sources/data_source_attribute_pb2_grpc.py +4 -0
  308. _frogml_proto/qwak/feature_store/sources/data_source_pb2.py +84 -0
  309. _frogml_proto/qwak/feature_store/sources/data_source_pb2.pyi +169 -0
  310. _frogml_proto/qwak/feature_store/sources/data_source_pb2_grpc.py +4 -0
  311. _frogml_proto/qwak/feature_store/sources/data_source_service_pb2.py +169 -0
  312. _frogml_proto/qwak/feature_store/sources/data_source_service_pb2.pyi +237 -0
  313. _frogml_proto/qwak/feature_store/sources/data_source_service_pb2_grpc.py +305 -0
  314. _frogml_proto/qwak/feature_store/sources/streaming_pb2.py +175 -0
  315. _frogml_proto/qwak/feature_store/sources/streaming_pb2.pyi +356 -0
  316. _frogml_proto/qwak/feature_store/sources/streaming_pb2_grpc.py +4 -0
  317. _frogml_proto/qwak/feature_store/v1/common/source_code/source_code_pb2.py +55 -0
  318. _frogml_proto/qwak/feature_store/v1/common/source_code/source_code_pb2.pyi +69 -0
  319. _frogml_proto/qwak/feature_store/v1/common/source_code/source_code_pb2_grpc.py +4 -0
  320. _frogml_proto/qwak/feature_store/v1/internal/data_source/data_source_service_pb2.py +68 -0
  321. _frogml_proto/qwak/feature_store/v1/internal/data_source/data_source_service_pb2.pyi +71 -0
  322. _frogml_proto/qwak/feature_store/v1/internal/data_source/data_source_service_pb2_grpc.py +99 -0
  323. _frogml_proto/qwak/feature_store/v1/internal/featureset/featureset_token_service_pb2.py +48 -0
  324. _frogml_proto/qwak/feature_store/v1/internal/featureset/featureset_token_service_pb2.pyi +46 -0
  325. _frogml_proto/qwak/feature_store/v1/internal/featureset/featureset_token_service_pb2_grpc.py +66 -0
  326. _frogml_proto/qwak/features_operator/v1/features_operator_pb2.py +76 -0
  327. _frogml_proto/qwak/features_operator/v1/features_operator_pb2.pyi +129 -0
  328. _frogml_proto/qwak/features_operator/v1/features_operator_pb2_grpc.py +4 -0
  329. _frogml_proto/qwak/features_operator/v1/features_operator_service_pb2.py +69 -0
  330. _frogml_proto/qwak/features_operator/v1/features_operator_service_pb2.pyi +98 -0
  331. _frogml_proto/qwak/features_operator/v1/features_operator_service_pb2_grpc.py +99 -0
  332. _frogml_proto/qwak/features_operator/v2/features_operator_pb2.py +86 -0
  333. _frogml_proto/qwak/features_operator/v2/features_operator_pb2.pyi +138 -0
  334. _frogml_proto/qwak/features_operator/v2/features_operator_pb2_grpc.py +4 -0
  335. _frogml_proto/qwak/features_operator/v2/features_operator_service_pb2.py +61 -0
  336. _frogml_proto/qwak/features_operator/v2/features_operator_service_pb2.pyi +89 -0
  337. _frogml_proto/qwak/features_operator/v2/features_operator_service_pb2_grpc.py +99 -0
  338. _frogml_proto/qwak/features_operator/v3/features_operator_async_service_pb2.py +132 -0
  339. _frogml_proto/qwak/features_operator/v3/features_operator_async_service_pb2.pyi +218 -0
  340. _frogml_proto/qwak/features_operator/v3/features_operator_async_service_pb2_grpc.py +165 -0
  341. _frogml_proto/qwak/features_operator/v3/features_operator_pb2.py +86 -0
  342. _frogml_proto/qwak/features_operator/v3/features_operator_pb2.pyi +143 -0
  343. _frogml_proto/qwak/features_operator/v3/features_operator_pb2_grpc.py +4 -0
  344. _frogml_proto/qwak/file_versioning/file_versioning_pb2.py +56 -0
  345. _frogml_proto/qwak/file_versioning/file_versioning_pb2.pyi +103 -0
  346. _frogml_proto/qwak/file_versioning/file_versioning_pb2_grpc.py +4 -0
  347. _frogml_proto/qwak/file_versioning/file_versioning_service_pb2.py +69 -0
  348. _frogml_proto/qwak/file_versioning/file_versioning_service_pb2.pyi +83 -0
  349. _frogml_proto/qwak/file_versioning/file_versioning_service_pb2_grpc.py +101 -0
  350. _frogml_proto/qwak/fitness_service/constructs_pb2.py +120 -0
  351. _frogml_proto/qwak/fitness_service/constructs_pb2.pyi +297 -0
  352. _frogml_proto/qwak/fitness_service/constructs_pb2_grpc.py +4 -0
  353. _frogml_proto/qwak/fitness_service/fitness_pb2.py +54 -0
  354. _frogml_proto/qwak/fitness_service/fitness_pb2.pyi +126 -0
  355. _frogml_proto/qwak/fitness_service/fitness_pb2_grpc.py +4 -0
  356. _frogml_proto/qwak/fitness_service/fitness_service_pb2.py +110 -0
  357. _frogml_proto/qwak/fitness_service/fitness_service_pb2.pyi +121 -0
  358. _frogml_proto/qwak/fitness_service/fitness_service_pb2_grpc.py +169 -0
  359. _frogml_proto/qwak/fitness_service/status_pb2.py +128 -0
  360. _frogml_proto/qwak/fitness_service/status_pb2.pyi +283 -0
  361. _frogml_proto/qwak/fitness_service/status_pb2_grpc.py +4 -0
  362. _frogml_proto/qwak/inference/feedback/feedback_pb2.py +118 -0
  363. _frogml_proto/qwak/inference/feedback/feedback_pb2.pyi +253 -0
  364. _frogml_proto/qwak/inference/feedback/feedback_pb2_grpc.py +100 -0
  365. _frogml_proto/qwak/instance_template/instance_template_pb2.py +62 -0
  366. _frogml_proto/qwak/instance_template/instance_template_pb2.pyi +108 -0
  367. _frogml_proto/qwak/instance_template/instance_template_pb2_grpc.py +4 -0
  368. _frogml_proto/qwak/instance_template/instance_template_service_pb2.py +69 -0
  369. _frogml_proto/qwak/instance_template/instance_template_service_pb2.pyi +79 -0
  370. _frogml_proto/qwak/instance_template/instance_template_service_pb2_grpc.py +101 -0
  371. _frogml_proto/qwak/integration/hugging_face_integration_pb2.py +85 -0
  372. _frogml_proto/qwak/integration/hugging_face_integration_pb2.pyi +106 -0
  373. _frogml_proto/qwak/integration/hugging_face_integration_pb2_grpc.py +4 -0
  374. _frogml_proto/qwak/integration/integration_pb2.py +153 -0
  375. _frogml_proto/qwak/integration/integration_pb2.pyi +357 -0
  376. _frogml_proto/qwak/integration/integration_pb2_grpc.py +4 -0
  377. _frogml_proto/qwak/integration/integration_service_pb2.py +169 -0
  378. _frogml_proto/qwak/integration/integration_service_pb2.pyi +234 -0
  379. _frogml_proto/qwak/integration/integration_service_pb2_grpc.py +271 -0
  380. _frogml_proto/qwak/integration/open_a_i_integration_pb2.py +85 -0
  381. _frogml_proto/qwak/integration/open_a_i_integration_pb2.pyi +109 -0
  382. _frogml_proto/qwak/integration/open_a_i_integration_pb2_grpc.py +4 -0
  383. _frogml_proto/qwak/integration/opsgenie_integration_pb2.py +105 -0
  384. _frogml_proto/qwak/integration/opsgenie_integration_pb2.pyi +168 -0
  385. _frogml_proto/qwak/integration/opsgenie_integration_pb2_grpc.py +4 -0
  386. _frogml_proto/qwak/integration/pagerduty_integration_pb2.py +127 -0
  387. _frogml_proto/qwak/integration/pagerduty_integration_pb2.pyi +195 -0
  388. _frogml_proto/qwak/integration/pagerduty_integration_pb2_grpc.py +4 -0
  389. _frogml_proto/qwak/integration/slack_app_integration_pb2.py +127 -0
  390. _frogml_proto/qwak/integration/slack_app_integration_pb2.pyi +198 -0
  391. _frogml_proto/qwak/integration/slack_app_integration_pb2_grpc.py +4 -0
  392. _frogml_proto/qwak/jfrog/gateway/v0/repository_pb2.py +95 -0
  393. _frogml_proto/qwak/jfrog/gateway/v0/repository_pb2.pyi +125 -0
  394. _frogml_proto/qwak/jfrog/gateway/v0/repository_pb2_grpc.py +4 -0
  395. _frogml_proto/qwak/jfrog/gateway/v0/repository_service_pb2.py +69 -0
  396. _frogml_proto/qwak/jfrog/gateway/v0/repository_service_pb2.pyi +71 -0
  397. _frogml_proto/qwak/jfrog/gateway/v0/repository_service_pb2_grpc.py +101 -0
  398. _frogml_proto/qwak/kube_deployment_captain/alert_pb2.py +120 -0
  399. _frogml_proto/qwak/kube_deployment_captain/alert_pb2.pyi +232 -0
  400. _frogml_proto/qwak/kube_deployment_captain/alert_pb2_grpc.py +4 -0
  401. _frogml_proto/qwak/kube_deployment_captain/alerting_pb2.py +65 -0
  402. _frogml_proto/qwak/kube_deployment_captain/alerting_pb2.pyi +101 -0
  403. _frogml_proto/qwak/kube_deployment_captain/alerting_pb2_grpc.py +4 -0
  404. _frogml_proto/qwak/kube_deployment_captain/batch_job_pb2.py +357 -0
  405. _frogml_proto/qwak/kube_deployment_captain/batch_job_pb2.pyi +845 -0
  406. _frogml_proto/qwak/kube_deployment_captain/batch_job_pb2_grpc.py +4 -0
  407. _frogml_proto/qwak/kube_deployment_captain/deployment_pb2.py +182 -0
  408. _frogml_proto/qwak/kube_deployment_captain/deployment_pb2.pyi +482 -0
  409. _frogml_proto/qwak/kube_deployment_captain/deployment_pb2_grpc.py +4 -0
  410. _frogml_proto/qwak/kube_deployment_captain/feature_set_deployment_pb2.py +172 -0
  411. _frogml_proto/qwak/kube_deployment_captain/feature_set_deployment_pb2.pyi +370 -0
  412. _frogml_proto/qwak/kube_deployment_captain/feature_set_deployment_pb2_grpc.py +4 -0
  413. _frogml_proto/qwak/kube_deployment_captain/kube_deployment_captain_service_pb2.py +562 -0
  414. _frogml_proto/qwak/kube_deployment_captain/kube_deployment_captain_service_pb2.pyi +924 -0
  415. _frogml_proto/qwak/kube_deployment_captain/kube_deployment_captain_service_pb2_grpc.py +1226 -0
  416. _frogml_proto/qwak/kube_deployment_captain/traffic_mapping_pb2.py +45 -0
  417. _frogml_proto/qwak/kube_deployment_captain/traffic_mapping_pb2.pyi +63 -0
  418. _frogml_proto/qwak/kube_deployment_captain/traffic_mapping_pb2_grpc.py +4 -0
  419. _frogml_proto/qwak/logging/log_filter_pb2.py +66 -0
  420. _frogml_proto/qwak/logging/log_filter_pb2.pyi +102 -0
  421. _frogml_proto/qwak/logging/log_filter_pb2_grpc.py +4 -0
  422. _frogml_proto/qwak/logging/log_line_pb2.py +48 -0
  423. _frogml_proto/qwak/logging/log_line_pb2.pyi +62 -0
  424. _frogml_proto/qwak/logging/log_line_pb2_grpc.py +4 -0
  425. _frogml_proto/qwak/logging/log_reader_service_pb2.py +51 -0
  426. _frogml_proto/qwak/logging/log_reader_service_pb2.pyi +83 -0
  427. _frogml_proto/qwak/logging/log_reader_service_pb2_grpc.py +67 -0
  428. _frogml_proto/qwak/logging/log_source_pb2.py +155 -0
  429. _frogml_proto/qwak/logging/log_source_pb2.pyi +321 -0
  430. _frogml_proto/qwak/logging/log_source_pb2_grpc.py +4 -0
  431. _frogml_proto/qwak/model_descriptor/open_ai_descriptor_pb2.py +96 -0
  432. _frogml_proto/qwak/model_descriptor/open_ai_descriptor_pb2.pyi +215 -0
  433. _frogml_proto/qwak/model_descriptor/open_ai_descriptor_pb2_grpc.py +4 -0
  434. _frogml_proto/qwak/models/models_pb2.py +427 -0
  435. _frogml_proto/qwak/models/models_pb2.pyi +851 -0
  436. _frogml_proto/qwak/models/models_pb2_grpc.py +402 -0
  437. _frogml_proto/qwak/monitoring/v0/alerting_channel_management_service_pb2.py +149 -0
  438. _frogml_proto/qwak/monitoring/v0/alerting_channel_management_service_pb2.pyi +183 -0
  439. _frogml_proto/qwak/monitoring/v0/alerting_channel_management_service_pb2_grpc.py +237 -0
  440. _frogml_proto/qwak/monitoring/v0/alerting_channel_pb2.py +175 -0
  441. _frogml_proto/qwak/monitoring/v0/alerting_channel_pb2.pyi +360 -0
  442. _frogml_proto/qwak/monitoring/v0/alerting_channel_pb2_grpc.py +4 -0
  443. _frogml_proto/qwak/monitoring/v0/alerting_channel_sync_service_pb2.py +70 -0
  444. _frogml_proto/qwak/monitoring/v0/alerting_channel_sync_service_pb2.pyi +85 -0
  445. _frogml_proto/qwak/monitoring/v0/alerting_channel_sync_service_pb2_grpc.py +101 -0
  446. _frogml_proto/qwak/offline/serving/v1/feature_values_pb2.py +35 -0
  447. _frogml_proto/qwak/offline/serving/v1/feature_values_pb2.pyi +37 -0
  448. _frogml_proto/qwak/offline/serving/v1/feature_values_pb2_grpc.py +4 -0
  449. _frogml_proto/qwak/offline/serving/v1/offline_serving_async_service_pb2.py +148 -0
  450. _frogml_proto/qwak/offline/serving/v1/offline_serving_async_service_pb2.pyi +279 -0
  451. _frogml_proto/qwak/offline/serving/v1/offline_serving_async_service_pb2_grpc.py +165 -0
  452. _frogml_proto/qwak/offline/serving/v1/options_pb2.py +35 -0
  453. _frogml_proto/qwak/offline/serving/v1/options_pb2.pyi +30 -0
  454. _frogml_proto/qwak/offline/serving/v1/options_pb2_grpc.py +4 -0
  455. _frogml_proto/qwak/offline/serving/v1/population_pb2.py +75 -0
  456. _frogml_proto/qwak/offline/serving/v1/population_pb2.pyi +99 -0
  457. _frogml_proto/qwak/offline/serving/v1/population_pb2_grpc.py +4 -0
  458. _frogml_proto/qwak/projects/projects_pb2.py +225 -0
  459. _frogml_proto/qwak/projects/projects_pb2.pyi +436 -0
  460. _frogml_proto/qwak/projects/projects_pb2_grpc.py +203 -0
  461. _frogml_proto/qwak/prompt/v1/prompt/prompt_manager_service_pb2.py +270 -0
  462. _frogml_proto/qwak/prompt/v1/prompt/prompt_manager_service_pb2.pyi +417 -0
  463. _frogml_proto/qwak/prompt/v1/prompt/prompt_manager_service_pb2_grpc.py +441 -0
  464. _frogml_proto/qwak/prompt/v1/prompt/prompt_pb2.py +237 -0
  465. _frogml_proto/qwak/prompt/v1/prompt/prompt_pb2.pyi +415 -0
  466. _frogml_proto/qwak/prompt/v1/prompt/prompt_pb2_grpc.py +4 -0
  467. _frogml_proto/qwak/secret_service/secret_service_pb2.py +88 -0
  468. _frogml_proto/qwak/secret_service/secret_service_pb2.pyi +101 -0
  469. _frogml_proto/qwak/secret_service/secret_service_pb2_grpc.py +135 -0
  470. _frogml_proto/qwak/self_service/account/v0/account_membership_pb2.py +134 -0
  471. _frogml_proto/qwak/self_service/account/v0/account_membership_pb2.pyi +274 -0
  472. _frogml_proto/qwak/self_service/account/v0/account_membership_pb2_grpc.py +4 -0
  473. _frogml_proto/qwak/self_service/account/v0/account_membership_service_pb2.py +251 -0
  474. _frogml_proto/qwak/self_service/account/v0/account_membership_service_pb2.pyi +337 -0
  475. _frogml_proto/qwak/self_service/account/v0/account_membership_service_pb2_grpc.py +407 -0
  476. _frogml_proto/qwak/self_service/account/v0/account_status_pb2.py +93 -0
  477. _frogml_proto/qwak/self_service/account/v0/account_status_pb2.pyi +169 -0
  478. _frogml_proto/qwak/self_service/account/v0/account_status_pb2_grpc.py +4 -0
  479. _frogml_proto/qwak/self_service/account/v0/managing_account_pb2.py +155 -0
  480. _frogml_proto/qwak/self_service/account/v0/managing_account_pb2.pyi +279 -0
  481. _frogml_proto/qwak/self_service/account/v0/managing_account_pb2_grpc.py +4 -0
  482. _frogml_proto/qwak/self_service/account/v0/managing_account_service_pb2.py +110 -0
  483. _frogml_proto/qwak/self_service/account/v0/managing_account_service_pb2.pyi +136 -0
  484. _frogml_proto/qwak/self_service/account/v0/managing_account_service_pb2_grpc.py +169 -0
  485. _frogml_proto/qwak/self_service/user/v1/api_key_pb2.py +35 -0
  486. _frogml_proto/qwak/self_service/user/v1/api_key_pb2.pyi +30 -0
  487. _frogml_proto/qwak/self_service/user/v1/api_key_pb2_grpc.py +4 -0
  488. _frogml_proto/qwak/self_service/user/v1/user_pb2.py +37 -0
  489. _frogml_proto/qwak/self_service/user/v1/user_pb2.pyi +62 -0
  490. _frogml_proto/qwak/self_service/user/v1/user_pb2_grpc.py +4 -0
  491. _frogml_proto/qwak/self_service/user/v1/user_service_pb2.py +146 -0
  492. _frogml_proto/qwak/self_service/user/v1/user_service_pb2.pyi +209 -0
  493. _frogml_proto/qwak/self_service/user/v1/user_service_pb2_grpc.py +203 -0
  494. _frogml_proto/qwak/traffic/v1/traffic_api_pb2.py +109 -0
  495. _frogml_proto/qwak/traffic/v1/traffic_api_pb2.pyi +137 -0
  496. _frogml_proto/qwak/traffic/v1/traffic_api_pb2_grpc.py +169 -0
  497. _frogml_proto/qwak/traffic/v1/traffic_pb2.py +134 -0
  498. _frogml_proto/qwak/traffic/v1/traffic_pb2.pyi +285 -0
  499. _frogml_proto/qwak/traffic/v1/traffic_pb2_grpc.py +4 -0
  500. _frogml_proto/qwak/user_application/common/v0/resources_pb2.py +159 -0
  501. _frogml_proto/qwak/user_application/common/v0/resources_pb2.pyi +333 -0
  502. _frogml_proto/qwak/user_application/common/v0/resources_pb2_grpc.py +4 -0
  503. _frogml_proto/qwak/user_application/v0/user_application_pb2.py +69 -0
  504. _frogml_proto/qwak/user_application/v0/user_application_pb2.pyi +89 -0
  505. _frogml_proto/qwak/user_application/v0/user_application_pb2_grpc.py +4 -0
  506. _frogml_proto/qwak/vectors/v1/collection/collection_pb2.py +128 -0
  507. _frogml_proto/qwak/vectors/v1/collection/collection_pb2.pyi +287 -0
  508. _frogml_proto/qwak/vectors/v1/collection/collection_pb2_grpc.py +4 -0
  509. _frogml_proto/qwak/vectors/v1/collection/collection_service_pb2.py +189 -0
  510. _frogml_proto/qwak/vectors/v1/collection/collection_service_pb2.pyi +258 -0
  511. _frogml_proto/qwak/vectors/v1/collection/collection_service_pb2_grpc.py +304 -0
  512. _frogml_proto/qwak/vectors/v1/collection/event/collection_event_pb2.py +36 -0
  513. _frogml_proto/qwak/vectors/v1/collection/event/collection_event_pb2.pyi +41 -0
  514. _frogml_proto/qwak/vectors/v1/collection/event/collection_event_pb2_grpc.py +4 -0
  515. _frogml_proto/qwak/vectors/v1/filters_pb2.py +156 -0
  516. _frogml_proto/qwak/vectors/v1/filters_pb2.pyi +297 -0
  517. _frogml_proto/qwak/vectors/v1/filters_pb2_grpc.py +4 -0
  518. _frogml_proto/qwak/vectors/v1/vector_pb2.py +78 -0
  519. _frogml_proto/qwak/vectors/v1/vector_pb2.pyi +142 -0
  520. _frogml_proto/qwak/vectors/v1/vector_pb2_grpc.py +4 -0
  521. _frogml_proto/qwak/vectors/v1/vector_service_pb2.py +134 -0
  522. _frogml_proto/qwak/vectors/v1/vector_service_pb2.pyi +243 -0
  523. _frogml_proto/qwak/vectors/v1/vector_service_pb2_grpc.py +201 -0
  524. _frogml_proto/qwak/workspace/workspace_pb2.py +135 -0
  525. _frogml_proto/qwak/workspace/workspace_pb2.pyi +331 -0
  526. _frogml_proto/qwak/workspace/workspace_pb2_grpc.py +4 -0
  527. _frogml_proto/qwak/workspace/workspace_service_pb2.py +309 -0
  528. _frogml_proto/qwak/workspace/workspace_service_pb2.pyi +393 -0
  529. _frogml_proto/qwak/workspace/workspace_service_pb2_grpc.py +507 -0
  530. frogml/__init__.py +16 -0
  531. frogml/automations/__init__.py +70 -0
  532. frogml/automations/automation_executions.py +99 -0
  533. frogml/automations/automations.py +396 -0
  534. frogml/automations/batch_execution_action.py +336 -0
  535. frogml/automations/build_and_deploy_action.py +840 -0
  536. frogml/automations/common.py +106 -0
  537. frogml/clients/__init__.py +0 -0
  538. frogml/clients/_inner/__init__.py +0 -0
  539. frogml/clients/_inner/edge_communications.py +24 -0
  540. frogml/clients/administration/__init__.py +4 -0
  541. frogml/clients/administration/authenticated_user/__init__.py +0 -0
  542. frogml/clients/administration/authenticated_user/client.py +41 -0
  543. frogml/clients/administration/authentication/__init__.py +0 -0
  544. frogml/clients/administration/authentication/client.py +34 -0
  545. frogml/clients/administration/eco_system/__init__.py +0 -0
  546. frogml/clients/administration/eco_system/client.py +152 -0
  547. frogml/clients/administration/eco_system/eco_system_utils.py +15 -0
  548. frogml/clients/administration/environment/__init__.py +0 -0
  549. frogml/clients/administration/environment/client.py +77 -0
  550. frogml/clients/administration/self_service/__init__.py +0 -0
  551. frogml/clients/administration/self_service/client.py +73 -0
  552. frogml/clients/alert_management/__init__.py +1 -0
  553. frogml/clients/alert_management/client.py +64 -0
  554. frogml/clients/alerts_registry/__init__.py +1 -0
  555. frogml/clients/alerts_registry/channel.py +132 -0
  556. frogml/clients/alerts_registry/client.py +137 -0
  557. frogml/clients/analytics/__init__.py +1 -0
  558. frogml/clients/analytics/client.py +82 -0
  559. frogml/clients/audience/__init__.py +1 -0
  560. frogml/clients/audience/client.py +53 -0
  561. frogml/clients/automation_management/__init__.py +0 -0
  562. frogml/clients/automation_management/client.py +274 -0
  563. frogml/clients/autoscaling/__init__.py +1 -0
  564. frogml/clients/autoscaling/client.py +34 -0
  565. frogml/clients/batch_job_management/__init__.py +5 -0
  566. frogml/clients/batch_job_management/client.py +544 -0
  567. frogml/clients/batch_job_management/executions_config.py +201 -0
  568. frogml/clients/batch_job_management/results.py +73 -0
  569. frogml/clients/build_management/__init__.py +1 -0
  570. frogml/clients/build_management/client.py +115 -0
  571. frogml/clients/build_orchestrator/__init__.py +2 -0
  572. frogml/clients/build_orchestrator/build_model_request_getter.py +138 -0
  573. frogml/clients/build_orchestrator/client.py +456 -0
  574. frogml/clients/build_orchestrator/internal_client.py +114 -0
  575. frogml/clients/data_versioning/__init__.py +0 -0
  576. frogml/clients/data_versioning/client.py +76 -0
  577. frogml/clients/data_versioning/data_tag_filter.py +32 -0
  578. frogml/clients/deployment/__init__.py +0 -0
  579. frogml/clients/deployment/client.py +191 -0
  580. frogml/clients/feature_store/__init__.py +1 -0
  581. frogml/clients/feature_store/execution_management_client.py +102 -0
  582. frogml/clients/feature_store/job_registry_client.py +71 -0
  583. frogml/clients/feature_store/management_client.py +570 -0
  584. frogml/clients/feature_store/offline_serving_client.py +249 -0
  585. frogml/clients/feature_store/operator_client.py +164 -0
  586. frogml/clients/file_versioning/__init__.py +0 -0
  587. frogml/clients/file_versioning/client.py +77 -0
  588. frogml/clients/file_versioning/file_tag_filter.py +32 -0
  589. frogml/clients/instance_template/__init__.py +0 -0
  590. frogml/clients/instance_template/client.py +67 -0
  591. frogml/clients/integration_management/__init__.py +0 -0
  592. frogml/clients/integration_management/integration_manager_client.py +35 -0
  593. frogml/clients/integration_management/integration_utils.py +27 -0
  594. frogml/clients/integration_management/openai/__init__.py +0 -0
  595. frogml/clients/integration_management/openai/openai_system_secret.py +56 -0
  596. frogml/clients/jfrog_gateway/__init__.py +1 -0
  597. frogml/clients/jfrog_gateway/client.py +42 -0
  598. frogml/clients/kube_deployment_captain/__init__.py +1 -0
  599. frogml/clients/kube_deployment_captain/client.py +233 -0
  600. frogml/clients/logging_client/__init__.py +1 -0
  601. frogml/clients/logging_client/client.py +148 -0
  602. frogml/clients/model_management/__init__.py +1 -0
  603. frogml/clients/model_management/client.py +128 -0
  604. frogml/clients/model_version_manager/__init__.py +1 -0
  605. frogml/clients/model_version_manager/client.py +108 -0
  606. frogml/clients/project/__init__.py +0 -0
  607. frogml/clients/project/client.py +60 -0
  608. frogml/clients/prompt_manager/__init__.py +0 -0
  609. frogml/clients/prompt_manager/model_descriptor_mapper.py +196 -0
  610. frogml/clients/prompt_manager/prompt_manager_client.py +190 -0
  611. frogml/clients/prompt_manager/prompt_proto_mapper.py +262 -0
  612. frogml/clients/secret_service/__init__.py +1 -0
  613. frogml/clients/secret_service/client.py +96 -0
  614. frogml/clients/system_secret/__init__.py +0 -0
  615. frogml/clients/system_secret/system_secret_client.py +31 -0
  616. frogml/clients/user_application_instance/__init__.py +1 -0
  617. frogml/clients/user_application_instance/client.py +177 -0
  618. frogml/clients/vector_store/__init__.py +2 -0
  619. frogml/clients/vector_store/management_client.py +127 -0
  620. frogml/clients/vector_store/serving_client.py +157 -0
  621. frogml/clients/workspace_manager/__init__.py +1 -0
  622. frogml/clients/workspace_manager/client.py +224 -0
  623. frogml/exceptions/__init__.py +13 -0
  624. frogml/exceptions/frogml_decode_exception.py +7 -0
  625. frogml/exceptions/frogml_exception.py +7 -0
  626. frogml/exceptions/frogml_external_exception.py +11 -0
  627. frogml/exceptions/frogml_general_build_exception.py +13 -0
  628. frogml/exceptions/frogml_http_exception.py +19 -0
  629. frogml/exceptions/frogml_inference_exception.py +4 -0
  630. frogml/exceptions/frogml_load_configuration_exception.py +2 -0
  631. frogml/exceptions/frogml_load_model_failed_exception.py +10 -0
  632. frogml/exceptions/frogml_login_exception.py +8 -0
  633. frogml/exceptions/frogml_mock_http_exception.py +4 -0
  634. frogml/exceptions/frogml_model_initialization_exception.py +4 -0
  635. frogml/exceptions/frogml_not_found_exception.py +6 -0
  636. frogml/exceptions/frogml_remote_build_failed.py +5 -0
  637. frogml/exceptions/frogml_suggestion_exception.py +27 -0
  638. frogml/exceptions/quiet_error.py +22 -0
  639. frogml/feature_store/__init__.py +0 -0
  640. frogml/feature_store/_common/__init__.py +0 -0
  641. frogml/feature_store/_common/artifact_utils.py +57 -0
  642. frogml/feature_store/_common/feature_set_utils.py +261 -0
  643. frogml/feature_store/_common/featureset_asterisk_handler.py +115 -0
  644. frogml/feature_store/_common/functions.py +37 -0
  645. frogml/feature_store/_common/packaging.py +244 -0
  646. frogml/feature_store/_common/source_code_spec.py +62 -0
  647. frogml/feature_store/_common/source_code_spec_factory.py +51 -0
  648. frogml/feature_store/_common/value.py +10 -0
  649. frogml/feature_store/data_sources/__init__.py +65 -0
  650. frogml/feature_store/data_sources/attributes.py +25 -0
  651. frogml/feature_store/data_sources/base.py +121 -0
  652. frogml/feature_store/data_sources/batch/__init__.py +0 -0
  653. frogml/feature_store/data_sources/batch/_batch.py +9 -0
  654. frogml/feature_store/data_sources/batch/_jdbc.py +22 -0
  655. frogml/feature_store/data_sources/batch/athena.py +272 -0
  656. frogml/feature_store/data_sources/batch/big_query.py +80 -0
  657. frogml/feature_store/data_sources/batch/clickhouse.py +60 -0
  658. frogml/feature_store/data_sources/batch/csv.py +62 -0
  659. frogml/feature_store/data_sources/batch/elastic_search.py +61 -0
  660. frogml/feature_store/data_sources/batch/filesystem/__init__.py +0 -0
  661. frogml/feature_store/data_sources/batch/filesystem/aws.py +93 -0
  662. frogml/feature_store/data_sources/batch/filesystem/base_config.py +13 -0
  663. frogml/feature_store/data_sources/batch/filesystem/gcp.py +54 -0
  664. frogml/feature_store/data_sources/batch/filesystem/utils.py +59 -0
  665. frogml/feature_store/data_sources/batch/mongodb.py +58 -0
  666. frogml/feature_store/data_sources/batch/mysql.py +50 -0
  667. frogml/feature_store/data_sources/batch/parquet.py +57 -0
  668. frogml/feature_store/data_sources/batch/postgres.py +50 -0
  669. frogml/feature_store/data_sources/batch/redshift.py +85 -0
  670. frogml/feature_store/data_sources/batch/snowflake.py +77 -0
  671. frogml/feature_store/data_sources/batch/vertica.py +58 -0
  672. frogml/feature_store/data_sources/source_authentication.py +35 -0
  673. frogml/feature_store/data_sources/streaming/__init__.py +0 -0
  674. frogml/feature_store/data_sources/streaming/_streaming.py +9 -0
  675. frogml/feature_store/data_sources/streaming/kafka/__init__.py +25 -0
  676. frogml/feature_store/data_sources/streaming/kafka/authentication.py +124 -0
  677. frogml/feature_store/data_sources/streaming/kafka/deserialization.py +115 -0
  678. frogml/feature_store/data_sources/streaming/kafka/kafka.py +121 -0
  679. frogml/feature_store/data_sources/time_partition_columns.py +178 -0
  680. frogml/feature_store/entities/__init__.py +0 -0
  681. frogml/feature_store/entities/entity.py +73 -0
  682. frogml/feature_store/execution/__init__.py +0 -0
  683. frogml/feature_store/execution/backfill.py +197 -0
  684. frogml/feature_store/execution/execution.py +595 -0
  685. frogml/feature_store/execution/execution_query.py +91 -0
  686. frogml/feature_store/feature_sets/__init__.py +0 -0
  687. frogml/feature_store/feature_sets/_utils/_featureset_utils.py +45 -0
  688. frogml/feature_store/feature_sets/backfill.py +72 -0
  689. frogml/feature_store/feature_sets/base_feature_set.py +148 -0
  690. frogml/feature_store/feature_sets/batch.py +472 -0
  691. frogml/feature_store/feature_sets/context.py +13 -0
  692. frogml/feature_store/feature_sets/execution_spec.py +75 -0
  693. frogml/feature_store/feature_sets/metadata.py +75 -0
  694. frogml/feature_store/feature_sets/read_policies.py +245 -0
  695. frogml/feature_store/feature_sets/streaming.py +635 -0
  696. frogml/feature_store/feature_sets/streaming_backfill.py +266 -0
  697. frogml/feature_store/feature_sets/transformations/__init__.py +35 -0
  698. frogml/feature_store/feature_sets/transformations/aggregations/__init__.py +0 -0
  699. frogml/feature_store/feature_sets/transformations/aggregations/aggregations.py +443 -0
  700. frogml/feature_store/feature_sets/transformations/aggregations/windows.py +70 -0
  701. frogml/feature_store/feature_sets/transformations/functions/__init__.py +10 -0
  702. frogml/feature_store/feature_sets/transformations/functions/frogml_pandas.py +64 -0
  703. frogml/feature_store/feature_sets/transformations/functions/schema.py +57 -0
  704. frogml/feature_store/feature_sets/transformations/transformations.py +467 -0
  705. frogml/feature_store/feature_sets/transformations/validations/validations_util.py +78 -0
  706. frogml/feature_store/offline/__init__.py +4 -0
  707. frogml/feature_store/offline/_offline_serving_validations.py +32 -0
  708. frogml/feature_store/offline/_query_engine.py +32 -0
  709. frogml/feature_store/offline/athena/__init__.py +0 -0
  710. frogml/feature_store/offline/athena/athena_query_engine.py +154 -0
  711. frogml/feature_store/offline/client.py +719 -0
  712. frogml/feature_store/offline/client_v2.py +338 -0
  713. frogml/feature_store/offline/feature_set_features.py +25 -0
  714. frogml/feature_store/online/__init__.py +0 -0
  715. frogml/feature_store/online/client.py +352 -0
  716. frogml/feature_store/online/endpoint_utils.py +65 -0
  717. frogml/feature_store/sinks/__init__.py +0 -0
  718. frogml/feature_store/sinks/base.py +18 -0
  719. frogml/feature_store/sinks/kafka.py +59 -0
  720. frogml/feature_store/sinks/streaming/__init__.py +0 -0
  721. frogml/feature_store/sinks/streaming/attachment.py +34 -0
  722. frogml/feature_store/sinks/streaming/factory.py +60 -0
  723. frogml/feature_store/validations/__init__.py +0 -0
  724. frogml/feature_store/validations/validation_options.py +82 -0
  725. frogml/feature_store/validations/validation_response.py +121 -0
  726. frogml/feature_store/validations/validator.py +106 -0
  727. frogml/frogml_client/__init__.py +0 -0
  728. frogml/frogml_client/batch_jobs/execution.py +49 -0
  729. frogml/frogml_client/batch_jobs/task.py +43 -0
  730. frogml/frogml_client/build_api_helpers/__init__.py +0 -0
  731. frogml/frogml_client/build_api_helpers/build_api_steps.py +53 -0
  732. frogml/frogml_client/build_api_helpers/messages.py +6 -0
  733. frogml/frogml_client/build_api_helpers/trigger_build_api.py +65 -0
  734. frogml/frogml_client/builds/__init__.py +0 -0
  735. frogml/frogml_client/builds/build.py +97 -0
  736. frogml/frogml_client/builds/filters/__init__.py +0 -0
  737. frogml/frogml_client/builds/filters/metric_filter.py +38 -0
  738. frogml/frogml_client/builds/filters/parameter_filter.py +36 -0
  739. frogml/frogml_client/client.py +874 -0
  740. frogml/frogml_client/data_versioning/__init__.py +0 -0
  741. frogml/frogml_client/data_versioning/data_tag.py +24 -0
  742. frogml/frogml_client/deployments/__init__.py +0 -0
  743. frogml/frogml_client/deployments/deployment.py +409 -0
  744. frogml/frogml_client/file_versioning/__init__.py +0 -0
  745. frogml/frogml_client/file_versioning/file_tag.py +24 -0
  746. frogml/frogml_client/models/__init__.py +0 -0
  747. frogml/frogml_client/models/model.py +52 -0
  748. frogml/frogml_client/models/model_metadata.py +31 -0
  749. frogml/frogml_client/projects/__init__.py +0 -0
  750. frogml/frogml_client/projects/project.py +56 -0
  751. frogml/inner/__init__.py +11 -0
  752. frogml/inner/build_config/__init__.py +0 -0
  753. frogml/inner/build_config/build_config_v1.py +313 -0
  754. frogml/inner/build_logic/__init__.py +0 -0
  755. frogml/inner/build_logic/build_loggers/__init__.py +0 -0
  756. frogml/inner/build_logic/build_loggers/trigger_build_logger.py +50 -0
  757. frogml/inner/build_logic/constants/__init__.py +0 -0
  758. frogml/inner/build_logic/constants/dependencies.py +5 -0
  759. frogml/inner/build_logic/constants/host_resource.py +4 -0
  760. frogml/inner/build_logic/constants/messages.py +3 -0
  761. frogml/inner/build_logic/constants/temp_dir.py +1 -0
  762. frogml/inner/build_logic/constants/upload_tag.py +7 -0
  763. frogml/inner/build_logic/dependency_manager_type.py +8 -0
  764. frogml/inner/build_logic/execute_build_pipeline.py +64 -0
  765. frogml/inner/build_logic/interface/__init__.py +0 -0
  766. frogml/inner/build_logic/interface/build_logger_interface.py +28 -0
  767. frogml/inner/build_logic/interface/build_phase.py +24 -0
  768. frogml/inner/build_logic/interface/context_interface.py +56 -0
  769. frogml/inner/build_logic/interface/phase_run_handler.py +71 -0
  770. frogml/inner/build_logic/interface/step_inteface.py +26 -0
  771. frogml/inner/build_logic/interface/time_source.py +23 -0
  772. frogml/inner/build_logic/phases/__init__.py +0 -0
  773. frogml/inner/build_logic/phases/phase_010_fetch_model/__init__.py +0 -0
  774. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_model_step.py +41 -0
  775. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/__init__.py +0 -0
  776. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/common.py +32 -0
  777. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/fetch_strategy_manager.py +62 -0
  778. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/__init__.py +0 -0
  779. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/folder/__init__.py +0 -0
  780. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/folder/folder_strategy.py +131 -0
  781. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/git/__init__.py +0 -0
  782. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/git/git_strategy.py +184 -0
  783. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/strategy.py +48 -0
  784. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/zip/__init__.py +0 -0
  785. frogml/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/zip/zip_strategy.py +64 -0
  786. frogml/inner/build_logic/phases/phase_010_fetch_model/post_fetch_validation_step.py +139 -0
  787. frogml/inner/build_logic/phases/phase_010_fetch_model/pre_fetch_validation_step.py +263 -0
  788. frogml/inner/build_logic/phases/phase_010_fetch_model/set_version_step.py +33 -0
  789. frogml/inner/build_logic/phases/phase_020_remote_register_frogml_build/__init__.py +0 -0
  790. frogml/inner/build_logic/phases/phase_020_remote_register_frogml_build/cleanup_step.py +20 -0
  791. frogml/inner/build_logic/phases/phase_020_remote_register_frogml_build/start_remote_build_step.py +42 -0
  792. frogml/inner/build_logic/phases/phase_020_remote_register_frogml_build/upload_step.py +257 -0
  793. frogml/inner/build_logic/phases/phases_pipeline.py +44 -0
  794. frogml/inner/build_logic/run_handlers/__init__.py +0 -0
  795. frogml/inner/build_logic/run_handlers/programmatic_phase_run_handler.py +101 -0
  796. frogml/inner/build_logic/tools/__init__.py +0 -0
  797. frogml/inner/build_logic/tools/dependencies_tools.py +68 -0
  798. frogml/inner/build_logic/tools/files.py +237 -0
  799. frogml/inner/build_logic/tools/ignore_files.py +20 -0
  800. frogml/inner/build_logic/tools/text.py +9 -0
  801. frogml/inner/build_logic/trigger_build_context.py +10 -0
  802. frogml/inner/const.py +6 -0
  803. frogml/inner/di_configuration/__init__.py +73 -0
  804. frogml/inner/di_configuration/account.py +106 -0
  805. frogml/inner/di_configuration/config.yml +9 -0
  806. frogml/inner/di_configuration/containers.py +40 -0
  807. frogml/inner/instance_template/__init__.py +0 -0
  808. frogml/inner/instance_template/verify_template_id.py +48 -0
  809. frogml/inner/model_loggers_utils.py +110 -0
  810. frogml/inner/provider.py +6 -0
  811. frogml/inner/runtime_di/__init__.py +13 -0
  812. frogml/inner/runtime_di/containers.py +17 -0
  813. frogml/inner/singleton_meta.py +18 -0
  814. frogml/inner/tool/__init__.py +2 -0
  815. frogml/inner/tool/auth.py +70 -0
  816. frogml/inner/tool/grpc/__init__.py +0 -0
  817. frogml/inner/tool/grpc/grpc_auth.py +42 -0
  818. frogml/inner/tool/grpc/grpc_tools.py +209 -0
  819. frogml/inner/tool/grpc/grpc_try_wrapping.py +16 -0
  820. frogml/inner/tool/protobuf_factory.py +45 -0
  821. frogml/inner/tool/retry_utils.py +23 -0
  822. frogml/inner/tool/run_config/__init__.py +12 -0
  823. frogml/inner/tool/run_config/base.py +127 -0
  824. frogml/inner/tool/run_config/utils.py +316 -0
  825. frogml/llmops/__init__.py +0 -0
  826. frogml/llmops/generation/__init__.py +0 -0
  827. frogml/llmops/generation/_steaming.py +78 -0
  828. frogml/llmops/generation/base.py +5 -0
  829. frogml/llmops/generation/chat/__init__.py +0 -0
  830. frogml/llmops/generation/chat/openai/LICENSE.txt +201 -0
  831. frogml/llmops/generation/chat/openai/types/__init__.py +0 -0
  832. frogml/llmops/generation/chat/openai/types/chat/__init__.py +0 -0
  833. frogml/llmops/generation/chat/openai/types/chat/chat_completion.py +88 -0
  834. frogml/llmops/generation/chat/openai/types/chat/chat_completion_assistant_message_param.py +65 -0
  835. frogml/llmops/generation/chat/openai/types/chat/chat_completion_chunk.py +153 -0
  836. frogml/llmops/generation/chat/openai/types/chat/chat_completion_content_part_text_param.py +28 -0
  837. frogml/llmops/generation/chat/openai/types/chat/chat_completion_function_call_option_param.py +25 -0
  838. frogml/llmops/generation/chat/openai/types/chat/chat_completion_function_message_param.py +33 -0
  839. frogml/llmops/generation/chat/openai/types/chat/chat_completion_message.py +56 -0
  840. frogml/llmops/generation/chat/openai/types/chat/chat_completion_message_param.py +34 -0
  841. frogml/llmops/generation/chat/openai/types/chat/chat_completion_message_tool_call.py +46 -0
  842. frogml/llmops/generation/chat/openai/types/chat/chat_completion_message_tool_call_param.py +44 -0
  843. frogml/llmops/generation/chat/openai/types/chat/chat_completion_named_tool_choice_param.py +32 -0
  844. frogml/llmops/generation/chat/openai/types/chat/chat_completion_role.py +20 -0
  845. frogml/llmops/generation/chat/openai/types/chat/chat_completion_system_message_param.py +35 -0
  846. frogml/llmops/generation/chat/openai/types/chat/chat_completion_token_logprob.py +71 -0
  847. frogml/llmops/generation/chat/openai/types/chat/chat_completion_tool_choice_option_param.py +28 -0
  848. frogml/llmops/generation/chat/openai/types/chat/chat_completion_tool_message_param.py +31 -0
  849. frogml/llmops/generation/chat/openai/types/chat/chat_completion_tool_param.py +29 -0
  850. frogml/llmops/generation/chat/openai/types/chat/chat_completion_user_message_param.py +35 -0
  851. frogml/llmops/generation/chat/openai/types/chat/completion_create_params.py +279 -0
  852. frogml/llmops/generation/chat/openai/types/completion_choice.py +47 -0
  853. frogml/llmops/generation/chat/openai/types/completion_create_params.py +209 -0
  854. frogml/llmops/generation/chat/openai/types/completion_usage.py +30 -0
  855. frogml/llmops/generation/chat/openai/types/model.py +35 -0
  856. frogml/llmops/generation/chat/openai/types/shared/__init__.py +3 -0
  857. frogml/llmops/generation/chat/openai/types/shared/error_object.py +27 -0
  858. frogml/llmops/generation/chat/openai/types/shared/function_definition.py +49 -0
  859. frogml/llmops/generation/chat/openai/types/shared/function_parameters.py +20 -0
  860. frogml/llmops/generation/chat/openai/types/shared_params/__init__.py +2 -0
  861. frogml/llmops/generation/chat/openai/types/shared_params/function_definition.py +49 -0
  862. frogml/llmops/generation/chat/openai/types/shared_params/function_parameters.py +22 -0
  863. frogml/llmops/generation/streaming.py +26 -0
  864. frogml/llmops/model/__init__.py +0 -0
  865. frogml/llmops/model/descriptor.py +40 -0
  866. frogml/llmops/prompt/__init__.py +0 -0
  867. frogml/llmops/prompt/base.py +136 -0
  868. frogml/llmops/prompt/chat/__init__.py +0 -0
  869. frogml/llmops/prompt/chat/message.py +24 -0
  870. frogml/llmops/prompt/chat/template.py +113 -0
  871. frogml/llmops/prompt/chat/value.py +10 -0
  872. frogml/llmops/prompt/manager.py +138 -0
  873. frogml/llmops/prompt/template.py +24 -0
  874. frogml/llmops/prompt/value.py +14 -0
  875. frogml/llmops/provider/__init__.py +0 -0
  876. frogml/llmops/provider/chat.py +44 -0
  877. frogml/llmops/provider/openai/__init__.py +0 -0
  878. frogml/llmops/provider/openai/client.py +126 -0
  879. frogml/llmops/provider/openai/provider.py +91 -0
  880. frogml/model/__init__.py +0 -0
  881. frogml/model/_entity_extraction.py +116 -0
  882. frogml/model/adapters/__init__.py +39 -0
  883. frogml/model/adapters/input_adapters/__init__.py +0 -0
  884. frogml/model/adapters/input_adapters/base_input_adapter.py +8 -0
  885. frogml/model/adapters/input_adapters/dataframe_input_adapter.py +11 -0
  886. frogml/model/adapters/input_adapters/file_input_adapter.py +8 -0
  887. frogml/model/adapters/input_adapters/image_input_adapter.py +8 -0
  888. frogml/model/adapters/input_adapters/json_input_adapter.py +8 -0
  889. frogml/model/adapters/input_adapters/multi_input_adapter.py +66 -0
  890. frogml/model/adapters/input_adapters/numpy_input_adapter.py +100 -0
  891. frogml/model/adapters/input_adapters/proto_input_adapter.py +32 -0
  892. frogml/model/adapters/input_adapters/string_input_adapter.py +8 -0
  893. frogml/model/adapters/input_adapters/tf_tensor_input_adapter.py +8 -0
  894. frogml/model/adapters/output_adapters/__init__.py +0 -0
  895. frogml/model/adapters/output_adapters/base_output_adapter.py +13 -0
  896. frogml/model/adapters/output_adapters/dataframe_output_adapter.py +12 -0
  897. frogml/model/adapters/output_adapters/default_output_adapter.py +9 -0
  898. frogml/model/adapters/output_adapters/json_output_adapter.py +9 -0
  899. frogml/model/adapters/output_adapters/numpy_output_adapter.py +32 -0
  900. frogml/model/adapters/output_adapters/proto_output_adapter.py +16 -0
  901. frogml/model/adapters/output_adapters/qwak_with_default_fallback.py +5 -0
  902. frogml/model/adapters/output_adapters/tf_tensor_output_adapter.py +9 -0
  903. frogml/model/analytics_logging.py +14 -0
  904. frogml/model/base.py +86 -0
  905. frogml/model/decorators/__init__.py +0 -0
  906. frogml/model/decorators/api.py +62 -0
  907. frogml/model/decorators/impl/__init__.py +0 -0
  908. frogml/model/decorators/impl/api_implementation.py +29 -0
  909. frogml/model/decorators/impl/timer_implementation.py +10 -0
  910. frogml/model/decorators/timer.py +20 -0
  911. frogml/model/fs_info_mapping_retriever.py +58 -0
  912. frogml/model/model_version_tracking.py +57 -0
  913. frogml/model/schema.py +52 -0
  914. frogml/model/schema_entities.py +107 -0
  915. frogml/model/tools/__init__.py +24 -0
  916. frogml/model/tools/adapters/__init__.py +0 -0
  917. frogml/model/tools/adapters/encoders.py +46 -0
  918. frogml/model/tools/adapters/input.py +66 -0
  919. frogml/model/tools/adapters/input_adapters/__init__.py +0 -0
  920. frogml/model/tools/adapters/input_adapters/base_input.py +21 -0
  921. frogml/model/tools/adapters/input_adapters/dataframe_input.py +48 -0
  922. frogml/model/tools/adapters/input_adapters/file_input.py +8 -0
  923. frogml/model/tools/adapters/input_adapters/image_input.py +45 -0
  924. frogml/model/tools/adapters/input_adapters/json_input.py +20 -0
  925. frogml/model/tools/adapters/input_adapters/string_input.py +6 -0
  926. frogml/model/tools/adapters/input_adapters/tf_tensor_input.py +44 -0
  927. frogml/model/tools/adapters/output.py +75 -0
  928. frogml/model/tools/adapters/output_adapters/__init__.py +0 -0
  929. frogml/model/tools/adapters/output_adapters/base_output.py +16 -0
  930. frogml/model/tools/adapters/output_adapters/dataframe_output.py +30 -0
  931. frogml/model/tools/adapters/output_adapters/default_output.py +58 -0
  932. frogml/model/tools/adapters/output_adapters/json_output.py +17 -0
  933. frogml/model/tools/adapters/output_adapters/tf_tensor_output.py +41 -0
  934. frogml/model/tools/run_model_locally.py +68 -0
  935. frogml/model/utils/__init__.py +0 -0
  936. frogml/model/utils/extract_wrapped_function.py +9 -0
  937. frogml/model/utils/feature_utils.py +69 -0
  938. frogml/model_loggers/__init__.py +0 -0
  939. frogml/model_loggers/artifact_logger.py +95 -0
  940. frogml/model_loggers/data_logger.py +172 -0
  941. frogml/model_loggers/model_logger.py +30 -0
  942. frogml/testing/__init__.py +0 -0
  943. frogml/testing/fixtures.py +7 -0
  944. frogml/tools/__init__.py +0 -0
  945. frogml/tools/logger/__init__.py +3 -0
  946. frogml/tools/logger/logger.py +287 -0
  947. frogml/tools/logger/logging.yml +79 -0
  948. frogml/utils/__init__.py +0 -0
  949. frogml/utils/datetime_utils.py +18 -0
  950. frogml/utils/dict_utils.py +12 -0
  951. frogml/vector_store/__init__.py +4 -0
  952. frogml/vector_store/client.py +151 -0
  953. frogml/vector_store/collection.py +429 -0
  954. frogml/vector_store/filters.py +359 -0
  955. frogml/vector_store/inference_client.py +105 -0
  956. frogml/vector_store/rest_helpers.py +81 -0
  957. frogml/vector_store/utils/__init__.py +0 -0
  958. frogml/vector_store/utils/filter_utils.py +23 -0
  959. frogml/vector_store/utils/upsert_utils.py +218 -0
  960. frogml_core-0.0.1.dist-info/METADATA +49 -0
  961. frogml_core-0.0.1.dist-info/RECORD +1013 -0
  962. frogml_core-0.0.1.dist-info/WHEEL +4 -0
  963. frogml_services_mock/__init__.py +1 -0
  964. frogml_services_mock/mocks/__init__.py +0 -0
  965. frogml_services_mock/mocks/alert_manager_service_api.py +56 -0
  966. frogml_services_mock/mocks/alert_registry_service_api.py +62 -0
  967. frogml_services_mock/mocks/analytics_api.py +54 -0
  968. frogml_services_mock/mocks/audience_service_api.py +79 -0
  969. frogml_services_mock/mocks/authentication_service.py +33 -0
  970. frogml_services_mock/mocks/automation_management_service.py +228 -0
  971. frogml_services_mock/mocks/autoscaling_service_api.py +31 -0
  972. frogml_services_mock/mocks/batch_job_manager_service.py +337 -0
  973. frogml_services_mock/mocks/build_management.py +101 -0
  974. frogml_services_mock/mocks/build_orchestrator_build_api.py +138 -0
  975. frogml_services_mock/mocks/build_orchestrator_build_settings_api.py +38 -0
  976. frogml_services_mock/mocks/build_orchestrator_service_api.py +132 -0
  977. frogml_services_mock/mocks/data_versioning_service.py +63 -0
  978. frogml_services_mock/mocks/deployment_management_service.py +461 -0
  979. frogml_services_mock/mocks/ecosystem_service_api.py +45 -0
  980. frogml_services_mock/mocks/execution_management_service.py +26 -0
  981. frogml_services_mock/mocks/feature_store_data_sources_manager_api.py +99 -0
  982. frogml_services_mock/mocks/feature_store_entities_manager_api.py +99 -0
  983. frogml_services_mock/mocks/feature_store_feature_set_manager_api.py +269 -0
  984. frogml_services_mock/mocks/features_online_serving_api.py +169 -0
  985. frogml_services_mock/mocks/features_operator_v3_service.py +29 -0
  986. frogml_services_mock/mocks/features_set_state_service_api.py +57 -0
  987. frogml_services_mock/mocks/feedback_service.py +35 -0
  988. frogml_services_mock/mocks/file_versioning_service.py +66 -0
  989. frogml_services_mock/mocks/frogml_mocks.py +133 -0
  990. frogml_services_mock/mocks/fs_offline_serving_service.py +53 -0
  991. frogml_services_mock/mocks/instance_template_management_service.py +150 -0
  992. frogml_services_mock/mocks/integration_management_service.py +73 -0
  993. frogml_services_mock/mocks/internal_build_orchestrator_service.py +27 -0
  994. frogml_services_mock/mocks/job_registry_service_api.py +74 -0
  995. frogml_services_mock/mocks/kube_captain_service_api.py +41 -0
  996. frogml_services_mock/mocks/logging_service.py +203 -0
  997. frogml_services_mock/mocks/model_management_service.py +115 -0
  998. frogml_services_mock/mocks/model_version_manager_service.py +100 -0
  999. frogml_services_mock/mocks/project_manager_service.py +96 -0
  1000. frogml_services_mock/mocks/prompt_manager_service.py +281 -0
  1001. frogml_services_mock/mocks/repository_service_mock.py +39 -0
  1002. frogml_services_mock/mocks/secret_service.py +43 -0
  1003. frogml_services_mock/mocks/self_service_user_service.py +31 -0
  1004. frogml_services_mock/mocks/system_secret_service.py +55 -0
  1005. frogml_services_mock/mocks/user_application_instance_service_api.py +107 -0
  1006. frogml_services_mock/mocks/utils/__init__.py +0 -0
  1007. frogml_services_mock/mocks/utils/exception_handlers.py +13 -0
  1008. frogml_services_mock/mocks/vector_serving_api.py +159 -0
  1009. frogml_services_mock/mocks/vectors_management_api.py +97 -0
  1010. frogml_services_mock/mocks/workspace_manager_service_mock.py +202 -0
  1011. frogml_services_mock/services_mock.py +542 -0
  1012. frogml_services_mock/utils/__init__.py +0 -0
  1013. frogml_services_mock/utils/service_utils.py +9 -0
@@ -0,0 +1,62 @@
1
+ from typing import Callable
2
+
3
+ from dependency_injector.wiring import Provide, inject
4
+
5
+ from frogml.exceptions import FrogmlException
6
+ from frogml.inner.runtime_di.containers import FrogmlRuntimeContainer
7
+ from frogml.model.adapters.input_adapters.base_input_adapter import BaseInputAdapter
8
+ from frogml.model.adapters.input_adapters.dataframe_input_adapter import (
9
+ DataFrameInputAdapter,
10
+ )
11
+ from frogml.model.adapters.output_adapters.base_output_adapter import BaseOutputAdapter
12
+ from frogml.model.adapters.output_adapters.dataframe_output_adapter import (
13
+ DataFrameOutputAdapter,
14
+ )
15
+
16
+ API_NOT_CONFIGURED_ERROR_MESSAGE = (
17
+ "There has been an error configuring the Frogml model. When testing locally, "
18
+ "please use 'run_local' as described in our docs: "
19
+ "https://docs-saas.qwak.com/docs/testing-locally#running-local-inference"
20
+ )
21
+
22
+
23
+ @inject
24
+ def api_decorator(
25
+ analytics: bool = True,
26
+ analytics_sample_ratio: float = 1.0,
27
+ analytics_exclude_columns: list = [],
28
+ feature_extraction: bool = False,
29
+ input_adapter: BaseInputAdapter = DataFrameInputAdapter(),
30
+ output_adapter: BaseOutputAdapter = DataFrameOutputAdapter(),
31
+ api_decorator_function_creator=Provide[
32
+ FrogmlRuntimeContainer.api_decorator_function_creator
33
+ ],
34
+ ) -> Callable:
35
+ if callable(analytics):
36
+ raise TypeError(
37
+ """
38
+ You forgot to call the `@api` decorator.
39
+
40
+ Correct way -
41
+ @api()
42
+ def function():
43
+ pass
44
+
45
+ Wrong way -
46
+ @api
47
+ def function():
48
+ pass
49
+ """
50
+ )
51
+ try:
52
+ return api_decorator_function_creator(
53
+ analytics,
54
+ feature_extraction,
55
+ input_adapter,
56
+ output_adapter,
57
+ analytics_sample_ratio,
58
+ analytics_exclude_columns,
59
+ )
60
+ except TypeError as e:
61
+ if "__call__() takes 1" in str(e):
62
+ raise FrogmlException(API_NOT_CONFIGURED_ERROR_MESSAGE)
File without changes
@@ -0,0 +1,29 @@
1
+ from functools import wraps
2
+ from typing import Any, Callable
3
+
4
+ from frogml.model.adapters import BaseInputAdapter, BaseOutputAdapter
5
+ from frogml.model.utils.extract_wrapped_function import extract_wrapped
6
+
7
+
8
+ def create_decorator_function(
9
+ analytics: bool,
10
+ feature_extraction: bool,
11
+ input_adapter: BaseInputAdapter,
12
+ output_adapter: BaseOutputAdapter,
13
+ analytics_sample_ratio: float,
14
+ analytics_exclude_columns: list,
15
+ ) -> Callable:
16
+ def api_decorator_function_load_logic(func: Callable[..., Any]):
17
+ func = extract_wrapped(func)
18
+ setattr(func, "_input_adapter", input_adapter)
19
+ setattr(func, "_output_adapter", output_adapter)
20
+ setattr(func, "_fs_extraction", feature_extraction)
21
+
22
+ @wraps(func)
23
+ def api_decorator_function_execution_logic(*args, **kwargs) -> Any:
24
+ output = func(*args, **kwargs)
25
+ return output
26
+
27
+ return api_decorator_function_execution_logic
28
+
29
+ return api_decorator_function_load_logic
@@ -0,0 +1,10 @@
1
+ import time
2
+
3
+
4
+ def create_frogml_timer(name):
5
+ try:
6
+ start_time = time.time()
7
+ yield
8
+ finally:
9
+ elapsed_secs = time.time() - start_time
10
+ print(f"elapsed time: {elapsed_secs} seconds")
@@ -0,0 +1,20 @@
1
+ import contextlib
2
+
3
+ from dependency_injector.wiring import Provide, inject
4
+
5
+ from frogml.inner.runtime_di.containers import FrogmlRuntimeContainer
6
+
7
+
8
+ @inject
9
+ @contextlib.contextmanager
10
+ def frogml_timer(
11
+ name, create_timer_function=Provide[FrogmlRuntimeContainer.timer_function_creator]
12
+ ):
13
+ """
14
+ The Frogml timer is a utility for measuring the runtime of ML models, specifically for visibility and latency evaluation.
15
+ It provides a convenient way to measure the time it takes for models to perform predictions
16
+ and to provide a breakdown of the different parts in the production process
17
+ Args:
18
+ name (str): The Frogml timer name. Users may define multiple impl with different names
19
+ """
20
+ return create_timer_function(name)
@@ -0,0 +1,58 @@
1
+ from typing import Dict, List
2
+
3
+ from frogml.clients.administration.eco_system.eco_system_utils import EcosystemUtils
4
+ from frogml.clients.feature_store import FeatureRegistryClient
5
+ from frogml.feature_store._common.feature_set_utils import (
6
+ FeatureSetInfo,
7
+ get_env_to_featuresets_mapping,
8
+ get_feature_set_info,
9
+ )
10
+ from frogml.model.schema_entities import BaseFeature, FeatureStoreInput
11
+ from frogml.model.utils.feature_utils import extract_env_name, extract_featureset_name
12
+
13
+
14
+ def retrieve_fs_mapping(
15
+ features: List[BaseFeature],
16
+ ) -> Dict[str, Dict[str, FeatureSetInfo]]:
17
+ """
18
+ Retrieve the feature set info mapping.
19
+ If one of the features is a FeatureStoreInput and is in a different environment from the current one, populate it using a single API call.
20
+ Otherwise, retrieve each feature set info individually.
21
+ The reasoning behind this logic is that if all required features are in the same environment, it's more efficient to retrieve only the necessary feature set, rather than all feature sets.
22
+ * Assuming the feature name is fully qualified with the environment name
23
+ :param features:
24
+ :return: dict of environment name to dict of feature set name to FeatureSetInfo
25
+ """
26
+ current_env_name = EcosystemUtils().get_current_environment_name()
27
+ features_manager_client = FeatureRegistryClient()
28
+
29
+ if any(
30
+ [
31
+ feature
32
+ for feature in features
33
+ if isinstance(feature, FeatureStoreInput)
34
+ and extract_env_name(feature.name) != current_env_name
35
+ ]
36
+ ):
37
+ return get_env_to_featuresets_mapping(features_manager_client)
38
+ else:
39
+ return _retrieve_fs_info_one_by_one(
40
+ features_manager_client, current_env_name, features
41
+ )
42
+
43
+
44
+ def _retrieve_fs_info_one_by_one(
45
+ features_manager_client: FeatureRegistryClient,
46
+ current_env_name: str,
47
+ features: List[BaseFeature],
48
+ ) -> Dict[str, Dict[str, FeatureSetInfo]]:
49
+ fs_info_cache: Dict[str, FeatureSetInfo] = dict()
50
+
51
+ for feature in features:
52
+ if isinstance(feature, FeatureStoreInput):
53
+ feature_set_name = extract_featureset_name(feature.name).lower()
54
+ if feature_set_name not in fs_info_cache:
55
+ fs_info_cache[feature_set_name] = get_feature_set_info(
56
+ features_manager_client, feature_set_name
57
+ )
58
+ return {current_env_name: fs_info_cache}
@@ -0,0 +1,57 @@
1
+ from typing import Dict, Union
2
+
3
+ from frogml.inner.singleton_meta import SingletonMeta
4
+
5
+
6
+ class FrogmlModelVersionTracking(metaclass=SingletonMeta):
7
+ def __init__(self):
8
+ self.metric: Dict[str, Union[int, str]] = {}
9
+ self.param: Dict[str, Union[int, str]] = {}
10
+
11
+ def log_param(self, params: Dict[str, Union[int, str]]):
12
+ self.param = {**self.param, **params}
13
+
14
+ def log_params(self, params: Dict[str, Union[int, str]]):
15
+ self.log_param(params)
16
+
17
+ def log_metric(self, metrics: Dict[str, Union[int, str]]):
18
+ self.metric = {**self.metric, **metrics}
19
+
20
+ def log_metrics(self, metrics: Dict[str, Union[int, str]]):
21
+ self.log_metric(metrics)
22
+
23
+ def get_metrics(self) -> Dict[str, Union[int, str]]:
24
+ return self.metric
25
+
26
+ def get_params(self) -> Dict[str, Union[int, str]]:
27
+ return self.param
28
+
29
+
30
+ def log_metric(metrics):
31
+ client = FrogmlModelVersionTracking()
32
+ client.log_metric(metrics)
33
+
34
+
35
+ def log_param(params):
36
+ client = FrogmlModelVersionTracking()
37
+ client.log_param(params)
38
+
39
+
40
+ def log_metrics(metrics):
41
+ client = FrogmlModelVersionTracking()
42
+ client.log_metric(metrics)
43
+
44
+
45
+ def log_params(params):
46
+ client = FrogmlModelVersionTracking()
47
+ client.log_param(params)
48
+
49
+
50
+ def get_params():
51
+ client = FrogmlModelVersionTracking()
52
+ return client.get_params()
53
+
54
+
55
+ def get_metrics():
56
+ client = FrogmlModelVersionTracking()
57
+ return client.get_metrics()
frogml/model/schema.py ADDED
@@ -0,0 +1,52 @@
1
+ from dataclasses import dataclass
2
+ from typing import List
3
+
4
+ from _frogml_proto.qwak.build.v1.build_pb2 import ModelSchema as ProtoModelSchema
5
+ from frogml.model._entity_extraction import enrich_schema
6
+ from frogml.model.schema_entities import (
7
+ BaseFeature,
8
+ Entity,
9
+ ExplicitFeature,
10
+ FeatureStoreInput,
11
+ InferenceOutput,
12
+ )
13
+
14
+ __all__ = ["ModelSchema", "ExplicitFeature", "InferenceOutput", "FeatureStoreInput"]
15
+
16
+
17
+ @dataclass
18
+ class ModelSchema:
19
+ """
20
+ The ModelSchema class provides a structured representation of a Machine Learning (ML) model's schema.
21
+ It captures the details such as input features, output predictions, and entities, providing a standard way to
22
+ communicate these details between different components of an ML system.
23
+ """
24
+
25
+ def __init__(
26
+ self,
27
+ entities: List[Entity] = None,
28
+ inputs: List[BaseFeature] = None,
29
+ outputs: List[InferenceOutput] = None,
30
+ ):
31
+ """
32
+ Initializes the ModelSchema object with entities, inputs, and outputs.
33
+
34
+ Args:
35
+ entities (List[Entity], optional): A list of Entity objects. Defaults to None.
36
+ inputs (List[BaseFeature], optional): A list of BaseFeature objects. Defaults to None.
37
+ outputs (List[InferenceOutput], optional): A list of InferenceOutput objects. Defaults to None.
38
+
39
+ Raises:
40
+ TypeError: If entities, inputs, or outputs are not provided in the correct format.
41
+ """
42
+ raw_entities = entities if entities else []
43
+ raw_inputs = inputs if inputs else []
44
+ self._inputs, self._entities = enrich_schema(raw_inputs, raw_entities)
45
+ self._outputs = outputs if outputs else []
46
+
47
+ def to_proto(self):
48
+ return ProtoModelSchema(
49
+ entities=[entity.to_proto() for entity in self._entities],
50
+ features=[feature.to_proto() for feature in self._inputs],
51
+ inference_output=[inference.to_proto() for inference in self._outputs],
52
+ )
@@ -0,0 +1,107 @@
1
+ from abc import ABC, abstractmethod
2
+ from dataclasses import dataclass
3
+ from typing import Optional, Type
4
+
5
+ from _frogml_proto.qwak.build.v1.build_pb2 import BatchFeatureV1 as ProtoBatchFeatureV1
6
+ from _frogml_proto.qwak.build.v1.build_pb2 import Entity as ProtoEntity
7
+ from _frogml_proto.qwak.build.v1.build_pb2 import (
8
+ ExplicitFeature as ProtoExplicitFeature,
9
+ )
10
+ from _frogml_proto.qwak.build.v1.build_pb2 import Feature as ProtoFeature
11
+ from _frogml_proto.qwak.build.v1.build_pb2 import (
12
+ InferenceOutput as ProtoInferenceOutput,
13
+ )
14
+ from _frogml_proto.qwak.build.v1.build_pb2 import Prediction as ProtoPrediction
15
+ from _frogml_proto.qwak.build.v1.build_pb2 import RequestInput as ProtoRequestInput
16
+ from _frogml_proto.qwak.build.v1.build_pb2 import ValueType
17
+
18
+
19
+ @dataclass(unsafe_hash=True)
20
+ class Entity:
21
+ name: str
22
+ type: Type = str
23
+
24
+ def to_proto(self):
25
+ return ProtoEntity(
26
+ name=self.name, type=ValueType(type=_type_conversion(self.type))
27
+ )
28
+
29
+
30
+ @dataclass
31
+ class BaseFeature(ABC):
32
+ name: str
33
+
34
+ @abstractmethod
35
+ def to_proto(self):
36
+ pass
37
+
38
+
39
+ @dataclass(unsafe_hash=True)
40
+ class ExplicitFeature(BaseFeature):
41
+ type: Type
42
+
43
+ def to_proto(self):
44
+ return ProtoFeature(
45
+ explicit_feature=ProtoExplicitFeature(
46
+ name=self.name, type=ValueType(type=_type_conversion(self.type))
47
+ )
48
+ )
49
+
50
+
51
+ @dataclass(unsafe_hash=True)
52
+ class RequestInput(BaseFeature):
53
+ type: Type
54
+
55
+ def to_proto(self):
56
+ return ProtoFeature(
57
+ request_input=ProtoRequestInput(
58
+ name=self.name, type=ValueType(type=_type_conversion(self.type))
59
+ )
60
+ )
61
+
62
+
63
+ @dataclass(unsafe_hash=True)
64
+ class FeatureStoreInput(BaseFeature):
65
+ entity: Optional[Entity] = None
66
+
67
+ def to_proto(self):
68
+ return ProtoFeature(
69
+ batch_feature_v1=ProtoBatchFeatureV1(
70
+ name=self.name, entity=self.entity.to_proto() if self.entity else None
71
+ )
72
+ )
73
+
74
+
75
+ @dataclass(unsafe_hash=True)
76
+ class InferenceOutput:
77
+ name: str
78
+ type: type
79
+
80
+ def to_proto(self):
81
+ return ProtoInferenceOutput(
82
+ name=self.name, type=ValueType(type=_type_conversion(self.type))
83
+ )
84
+
85
+
86
+ @dataclass(unsafe_hash=True)
87
+ class Prediction:
88
+ name: str
89
+ type: type
90
+
91
+ def to_proto(self):
92
+ return ProtoPrediction(
93
+ name=self.name, type=ValueType(type=_type_conversion(self.type))
94
+ )
95
+
96
+
97
+ def _type_conversion(type):
98
+ if type == int:
99
+ return ValueType.INT32
100
+ elif type == str:
101
+ return ValueType.STRING
102
+ elif type == bytes:
103
+ return ValueType.BYTES
104
+ elif type == bool:
105
+ return ValueType.BOOL
106
+ elif type == float:
107
+ return ValueType.FLOAT
@@ -0,0 +1,24 @@
1
+ from frogml.inner.runtime_di import ContainerLock, FrogmlRuntimeContainer
2
+
3
+ from .run_model_locally import run_local
4
+
5
+
6
+ def wire_runtime_with_run_local():
7
+ container = FrogmlRuntimeContainer()
8
+ from frogml.model import decorators
9
+
10
+ container.wire(
11
+ packages=[
12
+ decorators,
13
+ ]
14
+ )
15
+ return container
16
+
17
+
18
+ # Since DI allows overriding containers that are already injected, and there isn't a built-in mechanism to prevent this
19
+ # we've added a lock class (singleton) that operates as a lock. Now the production override can lock the container, and
20
+ # it will prevent issues where the container is redefined with the basic non production container
21
+ if not ContainerLock.locked:
22
+ wire_runtime_with_run_local()
23
+
24
+ __all__ = ["run_local", "wire_runtime_with_run_local"]
File without changes
@@ -0,0 +1,46 @@
1
+ import json
2
+
3
+ TF_B64_KEY = "b64"
4
+
5
+
6
+ class B64JsonEncoder(json.JSONEncoder):
7
+ def default(self, o):
8
+ import base64
9
+
10
+ if isinstance(o, bytes):
11
+ try:
12
+ return o.decode("utf-8")
13
+ except UnicodeDecodeError:
14
+ return {TF_B64_KEY: base64.b64encode(o).decode("utf-8")}
15
+
16
+ try:
17
+ return super(B64JsonEncoder, self).default(o)
18
+ except (TypeError, OverflowError):
19
+ return {"unknown_obj": str(o)}
20
+
21
+
22
+ class NumpyJsonEncoder(B64JsonEncoder):
23
+ def default(self, o):
24
+ import numpy as np
25
+
26
+ if isinstance(o, np.generic):
27
+ return o.item()
28
+
29
+ if isinstance(o, np.ndarray):
30
+ return o.tolist()
31
+
32
+ return super(NumpyJsonEncoder, self).default(o)
33
+
34
+
35
+ class TfTensorJsonEncoder(NumpyJsonEncoder):
36
+ def default(self, o):
37
+ import tensorflow as tf
38
+
39
+ # Tensor -> ndarray or object
40
+ if isinstance(o, tf.Tensor):
41
+ if tf.__version__.startswith("1."):
42
+ with tf.compat.v1.Session():
43
+ return o.numpy()
44
+ else:
45
+ return o.numpy()
46
+ return super(TfTensorJsonEncoder, self).default(o)
@@ -0,0 +1,66 @@
1
+ from typing import Any, Union
2
+
3
+ from frogml.exceptions import FrogmlHTTPException
4
+ from frogml.model.adapters import (
5
+ DataFrameInputAdapter,
6
+ FileInputAdapter,
7
+ ImageInputAdapter,
8
+ JsonInputAdapter,
9
+ MultiInputAdapter,
10
+ NumpyInputAdapter,
11
+ ProtoInputAdapter,
12
+ StringInputAdapter,
13
+ TfTensorInputAdapter,
14
+ )
15
+ from frogml.model.base import BaseModel
16
+
17
+ from .input_adapters.dataframe_input import DataframeInput
18
+ from .input_adapters.file_input import FileInput
19
+ from .input_adapters.image_input import ImageInput
20
+ from .input_adapters.json_input import JsonInput
21
+ from .input_adapters.string_input import StringInput
22
+ from .input_adapters.tf_tensor_input import TfTensorInput
23
+
24
+
25
+ def get_input_adapter(
26
+ model: BaseModel,
27
+ ) -> Union[JsonInput, DataframeInput, StringInput]:
28
+ adapter = getattr(model.predict, "_input_adapter", "")
29
+
30
+ class QwakInput(StringInput):
31
+ def extract_user_func_args(self, data: str) -> Any:
32
+ try:
33
+ return adapter.extract_user_func_arg(data)
34
+ except Exception as e:
35
+ raise FrogmlHTTPException(
36
+ status_code=500,
37
+ message=f"Failed to deserialize input message. Error is: {e}. For more information "
38
+ f"please check model logs.",
39
+ )
40
+
41
+ class MultiFormatInput(QwakInput):
42
+ pass
43
+
44
+ mapping = {
45
+ JsonInputAdapter: JsonInput,
46
+ DataFrameInputAdapter: DataframeInput,
47
+ StringInputAdapter: StringInput,
48
+ ProtoInputAdapter: QwakInput,
49
+ NumpyInputAdapter: QwakInput,
50
+ MultiInputAdapter: MultiFormatInput,
51
+ TfTensorInputAdapter: TfTensorInput,
52
+ ImageInputAdapter: ImageInput,
53
+ FileInputAdapter: FileInput,
54
+ }
55
+
56
+ if adapter:
57
+ adapter.mappings = mapping
58
+ for qwak_impl, runtime_impl in mapping.items():
59
+ if isinstance(adapter, qwak_impl):
60
+ if isinstance(adapter, DataFrameInputAdapter) and hasattr(
61
+ adapter, "input_orient"
62
+ ):
63
+ return runtime_impl(input_orient=adapter.input_orient)
64
+ return runtime_impl()
65
+
66
+ return DataframeInput()
File without changes
@@ -0,0 +1,21 @@
1
+ from typing import Any
2
+
3
+
4
+ class BaseInputAdapter:
5
+ """
6
+ BaseInputAdapter is an abstraction layer between user defined API callback function
7
+ and prediction request input in a variety of different forms.
8
+ """
9
+
10
+ def __init__(self, **kwargs):
11
+ """
12
+ BaseInputAdapter constructor - accept all keyword arguments as configuration (only in runtime)
13
+ :param kwargs:
14
+ """
15
+ pass
16
+
17
+ def extract_user_func_args(self, data: Any) -> Any:
18
+ """
19
+ Extract args that user API function is expecting from Inference
20
+ """
21
+ raise NotImplementedError()
@@ -0,0 +1,48 @@
1
+ import json
2
+ from typing import List, Optional, Union
3
+
4
+ from frogml.exceptions import FrogmlHTTPException
5
+
6
+ from .string_input import StringInput
7
+
8
+ try:
9
+ import pandas
10
+ from bentoml.adapters import DataframeInput as BentoMLDataframeInput
11
+ except ImportError:
12
+ pass
13
+
14
+
15
+ class DataframeInput(StringInput):
16
+ def __init__(
17
+ self,
18
+ input_orient: Optional[str] = None,
19
+ **base_kwargs,
20
+ ):
21
+ self.input_orient = input_orient
22
+ super().__init__(**base_kwargs)
23
+
24
+ # Verify pandas imported properly and retry import if it has failed initially
25
+ try:
26
+ import pandas # noqa: F401
27
+ except ImportError:
28
+ raise ImportError("Pandas package is required to use DataframeInput.")
29
+
30
+ def extract_user_func_args(
31
+ self,
32
+ data: Union[
33
+ str, List
34
+ ], # it's a list of InferenceTasks, but we don't want to fail when bentoml is not installed
35
+ ) -> "pandas.DataFrame":
36
+ try:
37
+ if isinstance(data, list):
38
+ adapter = BentoMLDataframeInput(orient=self.input_orient)
39
+ # because parsing is deferred to bentoml, it will also set the batch property of a task
40
+ (df,) = adapter.extract_user_func_args(data)
41
+ return df
42
+ else:
43
+ return pandas.DataFrame.from_dict(json.loads(data), orient="columns")
44
+ except Exception as e:
45
+ raise FrogmlHTTPException(
46
+ status_code=400,
47
+ message=f"Error loading DataFrame input: {e}.",
48
+ )
@@ -0,0 +1,8 @@
1
+ from typing import Any
2
+
3
+ from .base_input import BaseInputAdapter
4
+
5
+
6
+ class FileInput(BaseInputAdapter):
7
+ def extract_user_func_args(self, data: Any) -> Any:
8
+ return data
@@ -0,0 +1,45 @@
1
+ import os
2
+ from typing import BinaryIO
3
+
4
+ from frogml.exceptions import FrogmlHTTPException
5
+
6
+ from .file_input import FileInput
7
+
8
+
9
+ class ImageInput(FileInput):
10
+ def __init__(
11
+ self,
12
+ **base_kwargs,
13
+ ):
14
+ try:
15
+ import imageio # noqa: F401
16
+ except ImportError:
17
+ raise ImportError("imageio package is required to use ImageInput adapter")
18
+
19
+ super().__init__(**base_kwargs)
20
+ self.accept_image_formats = {".jpg", ".png", ".jpeg", ".tiff", ".webp", ".bmp"}
21
+
22
+ def extract_user_func_args(self, data: BinaryIO) -> "numpy.ndarray": # noqa F821
23
+ try:
24
+ import imageio
25
+ except ImportError:
26
+ raise ImportError("imageio package is required to use ImageInput adapter")
27
+
28
+ if getattr(data, "name", None) and not self.check_file_extension(
29
+ data.name, self.accept_image_formats
30
+ ):
31
+ raise FrogmlHTTPException(
32
+ 400,
33
+ message=f"Current service only accepts {self.accept_image_formats} formats",
34
+ )
35
+ try:
36
+ return imageio.v2.imread(data, mode="RGB")
37
+ except ValueError as e:
38
+ raise FrogmlHTTPException(400, message=str(e))
39
+
40
+ @staticmethod
41
+ def check_file_extension(file_name, supported_types):
42
+ if not file_name:
43
+ return False
44
+ _, extension = os.path.splitext(file_name)
45
+ return extension.lower() in (supported_types or [])