clarifai 11.7.5rc1__py3-none-any.whl → 11.8.0__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 (222) hide show
  1. clarifai/__init__.py +1 -1
  2. clarifai/client/user.py +0 -172
  3. clarifai/runners/models/model_builder.py +0 -133
  4. clarifai/runners/models/model_runner.py +21 -0
  5. clarifai/runners/models/openai_class.py +18 -0
  6. {clarifai-11.7.5rc1.dist-info → clarifai-11.8.0.dist-info}/METADATA +1 -1
  7. clarifai-11.8.0.dist-info/RECORD +129 -0
  8. {clarifai-11.7.5rc1.dist-info → clarifai-11.8.0.dist-info}/WHEEL +1 -1
  9. clarifai/__pycache__/__init__.cpython-311.pyc +0 -0
  10. clarifai/__pycache__/__init__.cpython-312.pyc +0 -0
  11. clarifai/__pycache__/__init__.cpython-39.pyc +0 -0
  12. clarifai/__pycache__/errors.cpython-311.pyc +0 -0
  13. clarifai/__pycache__/errors.cpython-39.pyc +0 -0
  14. clarifai/__pycache__/versions.cpython-311.pyc +0 -0
  15. clarifai/__pycache__/versions.cpython-39.pyc +0 -0
  16. clarifai/cli/__pycache__/__init__.cpython-311.pyc +0 -0
  17. clarifai/cli/__pycache__/__init__.cpython-39.pyc +0 -0
  18. clarifai/cli/__pycache__/base.cpython-311.pyc +0 -0
  19. clarifai/cli/__pycache__/base.cpython-39.pyc +0 -0
  20. clarifai/cli/__pycache__/compute_cluster.cpython-311.pyc +0 -0
  21. clarifai/cli/__pycache__/compute_cluster.cpython-39.pyc +0 -0
  22. clarifai/cli/__pycache__/deployment.cpython-311.pyc +0 -0
  23. clarifai/cli/__pycache__/deployment.cpython-39.pyc +0 -0
  24. clarifai/cli/__pycache__/model.cpython-311.pyc +0 -0
  25. clarifai/cli/__pycache__/model.cpython-39.pyc +0 -0
  26. clarifai/cli/__pycache__/nodepool.cpython-311.pyc +0 -0
  27. clarifai/cli/__pycache__/nodepool.cpython-39.pyc +0 -0
  28. clarifai/cli/__pycache__/pipeline.cpython-311.pyc +0 -0
  29. clarifai/cli/__pycache__/pipeline_step.cpython-311.pyc +0 -0
  30. clarifai/cli/model_templates.py +0 -243
  31. clarifai/cli/pipeline_step_templates.py +0 -64
  32. clarifai/cli/templates/__pycache__/__init__.cpython-311.pyc +0 -0
  33. clarifai/cli/templates/__pycache__/pipeline_templates.cpython-311.pyc +0 -0
  34. clarifai/client/__pycache__/__init__.cpython-311.pyc +0 -0
  35. clarifai/client/__pycache__/__init__.cpython-312.pyc +0 -0
  36. clarifai/client/__pycache__/__init__.cpython-39.pyc +0 -0
  37. clarifai/client/__pycache__/app.cpython-311.pyc +0 -0
  38. clarifai/client/__pycache__/app.cpython-312.pyc +0 -0
  39. clarifai/client/__pycache__/app.cpython-39.pyc +0 -0
  40. clarifai/client/__pycache__/base.cpython-311.pyc +0 -0
  41. clarifai/client/__pycache__/base.cpython-39.pyc +0 -0
  42. clarifai/client/__pycache__/compute_cluster.cpython-311.pyc +0 -0
  43. clarifai/client/__pycache__/dataset.cpython-311.pyc +0 -0
  44. clarifai/client/__pycache__/dataset.cpython-39.pyc +0 -0
  45. clarifai/client/__pycache__/deployment.cpython-311.pyc +0 -0
  46. clarifai/client/__pycache__/deployment.cpython-39.pyc +0 -0
  47. clarifai/client/__pycache__/input.cpython-311.pyc +0 -0
  48. clarifai/client/__pycache__/input.cpython-39.pyc +0 -0
  49. clarifai/client/__pycache__/lister.cpython-311.pyc +0 -0
  50. clarifai/client/__pycache__/lister.cpython-39.pyc +0 -0
  51. clarifai/client/__pycache__/model.cpython-311.pyc +0 -0
  52. clarifai/client/__pycache__/model.cpython-39.pyc +0 -0
  53. clarifai/client/__pycache__/model_client.cpython-311.pyc +0 -0
  54. clarifai/client/__pycache__/model_client.cpython-39.pyc +0 -0
  55. clarifai/client/__pycache__/module.cpython-311.pyc +0 -0
  56. clarifai/client/__pycache__/nodepool.cpython-311.pyc +0 -0
  57. clarifai/client/__pycache__/pipeline.cpython-311.pyc +0 -0
  58. clarifai/client/__pycache__/pipeline_step.cpython-311.pyc +0 -0
  59. clarifai/client/__pycache__/runner.cpython-311.pyc +0 -0
  60. clarifai/client/__pycache__/search.cpython-311.pyc +0 -0
  61. clarifai/client/__pycache__/user.cpython-311.pyc +0 -0
  62. clarifai/client/__pycache__/workflow.cpython-311.pyc +0 -0
  63. clarifai/client/auth/__pycache__/__init__.cpython-311.pyc +0 -0
  64. clarifai/client/auth/__pycache__/__init__.cpython-39.pyc +0 -0
  65. clarifai/client/auth/__pycache__/helper.cpython-311.pyc +0 -0
  66. clarifai/client/auth/__pycache__/helper.cpython-39.pyc +0 -0
  67. clarifai/client/auth/__pycache__/register.cpython-311.pyc +0 -0
  68. clarifai/client/auth/__pycache__/register.cpython-39.pyc +0 -0
  69. clarifai/client/auth/__pycache__/stub.cpython-311.pyc +0 -0
  70. clarifai/client/auth/__pycache__/stub.cpython-39.pyc +0 -0
  71. clarifai/constants/__pycache__/base.cpython-311.pyc +0 -0
  72. clarifai/constants/__pycache__/base.cpython-39.pyc +0 -0
  73. clarifai/constants/__pycache__/dataset.cpython-311.pyc +0 -0
  74. clarifai/constants/__pycache__/dataset.cpython-39.pyc +0 -0
  75. clarifai/constants/__pycache__/input.cpython-311.pyc +0 -0
  76. clarifai/constants/__pycache__/input.cpython-39.pyc +0 -0
  77. clarifai/constants/__pycache__/model.cpython-311.pyc +0 -0
  78. clarifai/constants/__pycache__/model.cpython-39.pyc +0 -0
  79. clarifai/constants/__pycache__/rag.cpython-311.pyc +0 -0
  80. clarifai/constants/__pycache__/search.cpython-311.pyc +0 -0
  81. clarifai/constants/__pycache__/workflow.cpython-311.pyc +0 -0
  82. clarifai/datasets/__pycache__/__init__.cpython-311.pyc +0 -0
  83. clarifai/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
  84. clarifai/datasets/export/__pycache__/__init__.cpython-311.pyc +0 -0
  85. clarifai/datasets/export/__pycache__/__init__.cpython-39.pyc +0 -0
  86. clarifai/datasets/export/__pycache__/inputs_annotations.cpython-311.pyc +0 -0
  87. clarifai/datasets/export/__pycache__/inputs_annotations.cpython-39.pyc +0 -0
  88. clarifai/datasets/upload/__pycache__/__init__.cpython-311.pyc +0 -0
  89. clarifai/datasets/upload/__pycache__/__init__.cpython-39.pyc +0 -0
  90. clarifai/datasets/upload/__pycache__/base.cpython-311.pyc +0 -0
  91. clarifai/datasets/upload/__pycache__/base.cpython-39.pyc +0 -0
  92. clarifai/datasets/upload/__pycache__/features.cpython-311.pyc +0 -0
  93. clarifai/datasets/upload/__pycache__/features.cpython-39.pyc +0 -0
  94. clarifai/datasets/upload/__pycache__/image.cpython-311.pyc +0 -0
  95. clarifai/datasets/upload/__pycache__/image.cpython-39.pyc +0 -0
  96. clarifai/datasets/upload/__pycache__/multimodal.cpython-311.pyc +0 -0
  97. clarifai/datasets/upload/__pycache__/multimodal.cpython-39.pyc +0 -0
  98. clarifai/datasets/upload/__pycache__/text.cpython-311.pyc +0 -0
  99. clarifai/datasets/upload/__pycache__/text.cpython-39.pyc +0 -0
  100. clarifai/datasets/upload/__pycache__/utils.cpython-311.pyc +0 -0
  101. clarifai/datasets/upload/__pycache__/utils.cpython-39.pyc +0 -0
  102. clarifai/datasets/upload/loaders/__pycache__/__init__.cpython-311.pyc +0 -0
  103. clarifai/datasets/upload/loaders/__pycache__/coco_detection.cpython-311.pyc +0 -0
  104. clarifai/datasets/upload/loaders/__pycache__/imagenet_classification.cpython-311.pyc +0 -0
  105. clarifai/models/model_serving/README.md +0 -158
  106. clarifai/models/model_serving/__init__.py +0 -14
  107. clarifai/models/model_serving/cli/__init__.py +0 -12
  108. clarifai/models/model_serving/cli/_utils.py +0 -53
  109. clarifai/models/model_serving/cli/base.py +0 -14
  110. clarifai/models/model_serving/cli/build.py +0 -79
  111. clarifai/models/model_serving/cli/clarifai_clis.py +0 -33
  112. clarifai/models/model_serving/cli/create.py +0 -171
  113. clarifai/models/model_serving/cli/example_cli.py +0 -34
  114. clarifai/models/model_serving/cli/login.py +0 -26
  115. clarifai/models/model_serving/cli/upload.py +0 -179
  116. clarifai/models/model_serving/constants.py +0 -21
  117. clarifai/models/model_serving/docs/cli.md +0 -161
  118. clarifai/models/model_serving/docs/concepts.md +0 -229
  119. clarifai/models/model_serving/docs/dependencies.md +0 -11
  120. clarifai/models/model_serving/docs/inference_parameters.md +0 -139
  121. clarifai/models/model_serving/docs/model_types.md +0 -19
  122. clarifai/models/model_serving/model_config/__init__.py +0 -16
  123. clarifai/models/model_serving/model_config/base.py +0 -369
  124. clarifai/models/model_serving/model_config/config.py +0 -312
  125. clarifai/models/model_serving/model_config/inference_parameter.py +0 -129
  126. clarifai/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -25
  127. clarifai/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -19
  128. clarifai/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -20
  129. clarifai/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -19
  130. clarifai/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -19
  131. clarifai/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -22
  132. clarifai/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -32
  133. clarifai/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -19
  134. clarifai/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -19
  135. clarifai/models/model_serving/model_config/output.py +0 -133
  136. clarifai/models/model_serving/model_config/triton/__init__.py +0 -14
  137. clarifai/models/model_serving/model_config/triton/serializer.py +0 -136
  138. clarifai/models/model_serving/model_config/triton/triton_config.py +0 -182
  139. clarifai/models/model_serving/model_config/triton/wrappers.py +0 -281
  140. clarifai/models/model_serving/repo_build/__init__.py +0 -14
  141. clarifai/models/model_serving/repo_build/build.py +0 -198
  142. clarifai/models/model_serving/repo_build/static_files/_requirements.txt +0 -2
  143. clarifai/models/model_serving/repo_build/static_files/base_test.py +0 -169
  144. clarifai/models/model_serving/repo_build/static_files/inference.py +0 -26
  145. clarifai/models/model_serving/repo_build/static_files/sample_clarifai_config.yaml +0 -25
  146. clarifai/models/model_serving/repo_build/static_files/test.py +0 -40
  147. clarifai/models/model_serving/repo_build/static_files/triton/model.py +0 -75
  148. clarifai/models/model_serving/utils.py +0 -23
  149. clarifai/rag/__pycache__/__init__.cpython-311.pyc +0 -0
  150. clarifai/rag/__pycache__/rag.cpython-311.pyc +0 -0
  151. clarifai/rag/__pycache__/utils.cpython-311.pyc +0 -0
  152. clarifai/runners/__pycache__/__init__.cpython-311.pyc +0 -0
  153. clarifai/runners/__pycache__/__init__.cpython-39.pyc +0 -0
  154. clarifai/runners/models/__pycache__/__init__.cpython-311.pyc +0 -0
  155. clarifai/runners/models/__pycache__/__init__.cpython-39.pyc +0 -0
  156. clarifai/runners/models/__pycache__/dummy_openai_model.cpython-311.pyc +0 -0
  157. clarifai/runners/models/__pycache__/mcp_class.cpython-311.pyc +0 -0
  158. clarifai/runners/models/__pycache__/model_builder.cpython-311.pyc +0 -0
  159. clarifai/runners/models/__pycache__/model_builder.cpython-39.pyc +0 -0
  160. clarifai/runners/models/__pycache__/model_class.cpython-311.pyc +0 -0
  161. clarifai/runners/models/__pycache__/model_run_locally.cpython-311.pyc +0 -0
  162. clarifai/runners/models/__pycache__/model_runner.cpython-311.pyc +0 -0
  163. clarifai/runners/models/__pycache__/model_servicer.cpython-311.pyc +0 -0
  164. clarifai/runners/models/__pycache__/openai_class.cpython-311.pyc +0 -0
  165. clarifai/runners/models/base_typed_model.py +0 -238
  166. clarifai/runners/models/model_upload.py +0 -607
  167. clarifai/runners/pipeline_steps/__pycache__/__init__.cpython-311.pyc +0 -0
  168. clarifai/runners/pipeline_steps/__pycache__/pipeline_step_builder.cpython-311.pyc +0 -0
  169. clarifai/runners/pipelines/__pycache__/__init__.cpython-311.pyc +0 -0
  170. clarifai/runners/pipelines/__pycache__/pipeline_builder.cpython-311.pyc +0 -0
  171. clarifai/runners/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  172. clarifai/runners/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  173. clarifai/runners/utils/__pycache__/code_script.cpython-311.pyc +0 -0
  174. clarifai/runners/utils/__pycache__/code_script.cpython-39.pyc +0 -0
  175. clarifai/runners/utils/__pycache__/const.cpython-311.pyc +0 -0
  176. clarifai/runners/utils/__pycache__/data_utils.cpython-311.pyc +0 -0
  177. clarifai/runners/utils/__pycache__/data_utils.cpython-39.pyc +0 -0
  178. clarifai/runners/utils/__pycache__/loader.cpython-311.pyc +0 -0
  179. clarifai/runners/utils/__pycache__/method_signatures.cpython-311.pyc +0 -0
  180. clarifai/runners/utils/__pycache__/model_utils.cpython-311.pyc +0 -0
  181. clarifai/runners/utils/__pycache__/openai_convertor.cpython-311.pyc +0 -0
  182. clarifai/runners/utils/__pycache__/pipeline_validation.cpython-311.pyc +0 -0
  183. clarifai/runners/utils/__pycache__/serializers.cpython-311.pyc +0 -0
  184. clarifai/runners/utils/__pycache__/url_fetcher.cpython-311.pyc +0 -0
  185. clarifai/runners/utils/data_handler.py +0 -231
  186. clarifai/runners/utils/data_types/__pycache__/__init__.cpython-311.pyc +0 -0
  187. clarifai/runners/utils/data_types/__pycache__/__init__.cpython-39.pyc +0 -0
  188. clarifai/runners/utils/data_types/__pycache__/data_types.cpython-311.pyc +0 -0
  189. clarifai/runners/utils/data_types/__pycache__/data_types.cpython-39.pyc +0 -0
  190. clarifai/runners/utils/data_types.py +0 -471
  191. clarifai/runners/utils/temp.py +0 -59
  192. clarifai/schema/__pycache__/search.cpython-311.pyc +0 -0
  193. clarifai/urls/__pycache__/helper.cpython-311.pyc +0 -0
  194. clarifai/urls/__pycache__/helper.cpython-39.pyc +0 -0
  195. clarifai/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  196. clarifai/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  197. clarifai/utils/__pycache__/cli.cpython-311.pyc +0 -0
  198. clarifai/utils/__pycache__/cli.cpython-39.pyc +0 -0
  199. clarifai/utils/__pycache__/config.cpython-311.pyc +0 -0
  200. clarifai/utils/__pycache__/config.cpython-39.pyc +0 -0
  201. clarifai/utils/__pycache__/constants.cpython-311.pyc +0 -0
  202. clarifai/utils/__pycache__/constants.cpython-39.pyc +0 -0
  203. clarifai/utils/__pycache__/logging.cpython-311.pyc +0 -0
  204. clarifai/utils/__pycache__/logging.cpython-39.pyc +0 -0
  205. clarifai/utils/__pycache__/misc.cpython-311.pyc +0 -0
  206. clarifai/utils/__pycache__/misc.cpython-39.pyc +0 -0
  207. clarifai/utils/__pycache__/model_train.cpython-311.pyc +0 -0
  208. clarifai/utils/__pycache__/protobuf.cpython-311.pyc +0 -0
  209. clarifai/utils/__pycache__/protobuf.cpython-39.pyc +0 -0
  210. clarifai/utils/__pycache__/secrets.cpython-311.pyc +0 -0
  211. clarifai/utils/evaluation/__pycache__/__init__.cpython-311.pyc +0 -0
  212. clarifai/utils/evaluation/__pycache__/helpers.cpython-311.pyc +0 -0
  213. clarifai/utils/evaluation/__pycache__/main.cpython-311.pyc +0 -0
  214. clarifai/utils/evaluation/__pycache__/testset_annotation_parser.cpython-311.pyc +0 -0
  215. clarifai/workflows/__pycache__/__init__.cpython-311.pyc +0 -0
  216. clarifai/workflows/__pycache__/export.cpython-311.pyc +0 -0
  217. clarifai/workflows/__pycache__/utils.cpython-311.pyc +0 -0
  218. clarifai/workflows/__pycache__/validate.cpython-311.pyc +0 -0
  219. clarifai-11.7.5rc1.dist-info/RECORD +0 -339
  220. {clarifai-11.7.5rc1.dist-info → clarifai-11.8.0.dist-info}/entry_points.txt +0 -0
  221. {clarifai-11.7.5rc1.dist-info → clarifai-11.8.0.dist-info}/licenses/LICENSE +0 -0
  222. {clarifai-11.7.5rc1.dist-info → clarifai-11.8.0.dist-info}/top_level.txt +0 -0
clarifai/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "11.7.5rc1"
1
+ __version__ = "11.8.0"
clarifai/client/user.py CHANGED
@@ -533,178 +533,6 @@ class User(Lister, BaseClient):
533
533
  ]
534
534
  return f"Clarifai User Details: \n{', '.join(attribute_strings)}\n"
535
535
 
536
- def get_secret(self, secret_id: str) -> dict:
537
- """Returns a secret object if exists.
538
-
539
- Args:
540
- secret_id (str): The secret ID to interact with
541
-
542
- Returns:
543
- Dict: A dictionary containing information about the existing secret ID.
544
-
545
- Example:
546
- >>> from clarifai.client.user import User
547
- >>> client = User(user_id="user_id")
548
- >>> secret_info = client.get_secret(secret_id="secret_id")
549
- """
550
- request = service_pb2.GetSecretRequest(user_app_id=self.user_app_id, id=secret_id)
551
- response = self._grpc_request(self.STUB.GetSecret, request)
552
- if response.status.code != status_code_pb2.SUCCESS:
553
- raise Exception(
554
- f"""Error getting secret, are you sure this is a valid secret id {secret_id} at the user_id
555
- {self.user_app_id.user_id}.
556
- Error: {response.status.description}"""
557
- )
558
-
559
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
560
- kwargs = self.process_response_keys(dict_response["secret"], "secret")
561
-
562
- return dict(auth=self.auth_helper, **kwargs)
563
-
564
- def list_secrets(
565
- self, page_no: int = None, per_page: int = None
566
- ) -> Generator[dict, None, None]:
567
- """List all secrets for the user
568
-
569
- Args:
570
- page_no (int): The page number to list.
571
- per_page (int): The number of items per page.
572
-
573
- Yields:
574
- Dict: Dictionaries containing information about the secrets.
575
-
576
- Example:
577
- >>> from clarifai.client.user import User
578
- >>> client = User(user_id="user_id")
579
- >>> all_secrets = list(client.list_secrets())
580
-
581
- Note:
582
- Defaults to 16 per page if page_no is specified and per_page is not specified.
583
- If both page_no and per_page are None, then lists all the resources.
584
- """
585
- request_data = dict(user_app_id=self.user_app_id)
586
- all_secrets_info = self.list_pages_generator(
587
- self.STUB.ListSecrets,
588
- service_pb2.ListSecretsRequest,
589
- request_data,
590
- per_page=per_page,
591
- page_no=page_no,
592
- )
593
- for secret_info in all_secrets_info:
594
- yield dict(auth=self.auth_helper, **secret_info)
595
-
596
- def create_secrets(self, secrets: List[Dict[str, Any]]) -> List[dict]:
597
- """Creates secrets for the user.
598
-
599
- Args:
600
- secrets (List[Dict[str, Any]]): List of secret configurations to create.
601
- Each secret dict can contain:
602
- - id (str): The name/ID of the secret (required)
603
- - value (str): The secret value (required)
604
- - description (str): Optional description of the secret
605
- - expires_at (str): Optional expiration timestamp
606
-
607
- Returns:
608
- List[Dict]: List of dictionaries containing information about the created secrets.
609
-
610
- Example:
611
- >>> from clarifai.client.user import User
612
- >>> client = User(user_id="user_id")
613
- >>> secrets = [{"id": "secret1", "value": "secret_value", "description": "My Secret"}]
614
- >>> created_secrets = client.create_secrets(secrets)
615
- """
616
- assert isinstance(secrets, list), "secrets param should be a list"
617
-
618
- # Convert dict secrets to protobuf Secret objects
619
- secret_objects = []
620
- for secret_config in secrets:
621
- secret_objects.append(resources_pb2.Secret(**secret_config))
622
-
623
- request = service_pb2.PostSecretsRequest(
624
- user_app_id=self.user_app_id, secrets=secret_objects
625
- )
626
- response = self._grpc_request(self.STUB.PostSecrets, request)
627
- if response.status.code != status_code_pb2.SUCCESS:
628
- raise Exception(response.status)
629
-
630
- self.logger.info(f"Secrets created successfully:\n{response.status}")
631
-
632
- # Convert response to list of dictionaries
633
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
634
- created_secrets = []
635
- for secret in dict_response.get("secrets", []):
636
- kwargs = self.process_response_keys(secret, "secret")
637
- created_secrets.append(dict(auth=self.auth_helper, **kwargs))
638
-
639
- return created_secrets
640
-
641
- def patch_secrets(
642
- self, secrets: List[Dict[str, Any]], action: str = 'overwrite'
643
- ) -> List[dict]:
644
- """Patches secrets for the user.
645
-
646
- Args:
647
- secrets (List[Dict[str, Any]]): List of secret configurations to patch.
648
- Each secret dict should contain:
649
- - id (str): The name/ID of the secret to patch (required)
650
- - value (str): Optional new secret value
651
- - description (str): Optional new description
652
- - expires_at (str): Optional new expiration timestamp
653
- action (str): The action to perform on the secrets (overwrite/remove).
654
-
655
- Returns:
656
- List[Dict]: List of dictionaries containing information about the patched secrets.
657
-
658
- Example:
659
- >>> from clarifai.client.user import User
660
- >>> client = User(user_id="user_id")
661
- >>> secrets = [{"id": "secret1", "description": "Updated Secret Description"}]
662
- >>> patched_secrets = client.patch_secrets(secrets, action="overwrite")
663
- """
664
- assert isinstance(secrets, list), "secrets param should be a list"
665
-
666
- # Convert dict secrets to protobuf Secret objects
667
- secret_objects = []
668
- for secret_config in secrets:
669
- secret_objects.append(resources_pb2.Secret(**secret_config))
670
-
671
- request = service_pb2.PatchSecretsRequest(
672
- user_app_id=self.user_app_id, secret=secret_objects, action=action
673
- )
674
- response = self._grpc_request(self.STUB.PatchSecrets, request)
675
- if response.status.code != status_code_pb2.SUCCESS:
676
- raise Exception(response.status)
677
-
678
- self.logger.info(f"Secrets patched successfully:\n{response.status}")
679
-
680
- # Convert response to list of dictionaries
681
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
682
- patched_secrets = []
683
- for secret in dict_response.get("secrets", []):
684
- kwargs = self.process_response_keys(secret, "secret")
685
- patched_secrets.append(dict(auth=self.auth_helper, **kwargs))
686
-
687
- return patched_secrets
688
-
689
- def delete_secrets(self, secret_ids: List[str]) -> None:
690
- """Deletes a list of secrets for the user.
691
-
692
- Args:
693
- secret_ids (List[str]): The secret IDs of the user to delete.
694
-
695
- Example:
696
- >>> from clarifai.client.user import User
697
- >>> client = User(user_id="user_id")
698
- >>> client.delete_secrets(secret_ids=["secret_id1", "secret_id2"])
699
- """
700
- assert isinstance(secret_ids, list), "secret_ids param should be a list"
701
-
702
- request = service_pb2.DeleteSecretsRequest(user_app_id=self.user_app_id, ids=secret_ids)
703
- response = self._grpc_request(self.STUB.DeleteSecrets, request)
704
- if response.status.code != status_code_pb2.SUCCESS:
705
- raise Exception(response.status)
706
- self.logger.info("\nSecrets Deleted\n%s", response.status)
707
-
708
536
  def list_models(
709
537
  self,
710
538
  user_id: str = None,
@@ -102,7 +102,6 @@ class ModelBuilder:
102
102
  self.folder = self._validate_folder(folder)
103
103
  self.config = self._load_config(os.path.join(self.folder, 'config.yaml'))
104
104
  self._validate_config()
105
- self._validate_config_secrets()
106
105
  self._validate_stream_options()
107
106
  self.model_proto = self._get_model_proto()
108
107
  self.model_id = self.model_proto.id
@@ -466,115 +465,6 @@ class ModelBuilder:
466
465
  "2) set_output_context"
467
466
  )
468
467
 
469
- def _validate_config_secrets(self):
470
- """
471
- Validate the secrets section in the config file.
472
- """
473
- if "secrets" not in self.config:
474
- return
475
-
476
- secrets = self.config.get("secrets", [])
477
- if not isinstance(secrets, list):
478
- raise ValueError("The 'secrets' field must be an array.")
479
-
480
- for i, secret in enumerate(secrets):
481
- if not isinstance(secret, dict):
482
- raise ValueError(f"Secret at index {i} must be a dictionary.")
483
-
484
- # Validate required fields
485
- if "id" not in secret or not secret["id"]:
486
- raise ValueError(f"Secret at index {i} must have a non-empty 'id' field.")
487
-
488
- if "type" not in secret or not secret["type"]:
489
- secret["type"] = "env"
490
-
491
- if "env_var" not in secret or not secret["env_var"]:
492
- raise ValueError(f"Secret at index {i} must have a non-empty 'env_var' field.")
493
- # Validate secret type
494
- if secret["type"] != "env":
495
- raise ValueError(
496
- f"Secret at index {i} has invalid type '{secret['type']}'. Must be 'env'."
497
- )
498
-
499
- logger.info(f"Validated {len(secrets)} secrets in config file.")
500
-
501
- def _process_secrets(self):
502
- """
503
- Process secrets from config file and create/validate them using the User client.
504
- Returns the processed secrets array for inclusion in ModelVersion.OutputInfo.Params.
505
- """
506
- if "secrets" not in self.config:
507
- return []
508
-
509
- secrets = self.config.get("secrets", [])
510
- if not secrets:
511
- return []
512
-
513
- # Get user client for secret operations
514
- user = User(
515
- user_id=self.config.get('model').get('user_id'),
516
- pat=self.client.pat,
517
- token=self.client.token,
518
- base_url=self.client.base,
519
- )
520
-
521
- processed_secrets = []
522
- secrets_to_create = []
523
-
524
- for secret in secrets:
525
- secret_id = secret["id"]
526
- secret_type = secret.get("type", "env")
527
- env_var = secret["env_var"]
528
- secret_value = secret.get("value") # Optional for existing secrets
529
-
530
- # Check if secret already exists
531
- try:
532
- existing_secret = user.get_secret(secret_id)
533
- logger.info(f"Secret '{secret_id}' already exists, using existing secret.")
534
-
535
- # Add to processed secrets without the value
536
- processed_secret = {
537
- "id": secret_id,
538
- "type": secret_type,
539
- "env_var": env_var,
540
- }
541
- processed_secrets.append(processed_secret)
542
-
543
- except Exception:
544
- # Secret doesn't exist, need to create it
545
- if secret_value:
546
- logger.info(f"Secret '{secret_id}' does not exist, will create it.")
547
- secrets_to_create.append(
548
- {
549
- "id": secret_id,
550
- "value": secret_value,
551
- "description": secret.get("description", f"Secret for {env_var}"),
552
- }
553
- )
554
-
555
- # Add to processed secrets
556
- processed_secret = {
557
- "id": secret_id,
558
- "type": secret_type,
559
- "env_var": env_var,
560
- }
561
- processed_secrets.append(processed_secret)
562
- else:
563
- raise ValueError(
564
- f"Secret '{secret_id}' does not exist and no value provided for creation."
565
- )
566
-
567
- # Create new secrets if any
568
- if secrets_to_create:
569
- try:
570
- created_secrets = user.create_secrets(secrets_to_create)
571
- logger.info(f"Successfully created {len(created_secrets)} new secrets.")
572
- except Exception as e:
573
- logger.error(f"Failed to create secrets: {e}")
574
- raise
575
-
576
- return processed_secrets
577
-
578
468
  def _is_clarifai_internal(self):
579
469
  """
580
470
  Check if the current user is a Clarifai internal user based on email domain.
@@ -1368,29 +1258,6 @@ class ModelBuilder:
1368
1258
  metadata_struct.update({'git_registry': git_info})
1369
1259
  model_version_proto.metadata.CopyFrom(metadata_struct)
1370
1260
 
1371
- # Process and add secrets to output_info.params
1372
- try:
1373
- processed_secrets = self._process_secrets()
1374
- if processed_secrets:
1375
- # Initialize output_info.params if not already present
1376
- if not model_version_proto.HasField("output_info"):
1377
- model_version_proto.output_info.CopyFrom(resources_pb2.OutputInfo())
1378
-
1379
- # Initialize params if not already present
1380
- if not model_version_proto.output_info.HasField("params"):
1381
- from google.protobuf.struct_pb2 import Struct
1382
-
1383
- model_version_proto.output_info.params.CopyFrom(Struct())
1384
-
1385
- # Add secrets to params
1386
- model_version_proto.output_info.params.update({"secrets": processed_secrets})
1387
- logger.info(
1388
- f"Added {len(processed_secrets)} secrets to model version output_info.params"
1389
- )
1390
- except Exception as e:
1391
- logger.error(f"Failed to process secrets: {e}")
1392
- raise
1393
-
1394
1261
  model_type_id = self.config.get('model').get('model_type_id')
1395
1262
  if model_type_id in CONCEPTS_REQUIRED_MODEL_TYPE:
1396
1263
  if 'concepts' in self.config:
@@ -301,6 +301,27 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
301
301
  """Set the model for this runner."""
302
302
  self.model = model
303
303
 
304
+ def handle_liveness_probe(self):
305
+ # if the model has a handle_liveness_probe method, call it to determine liveness
306
+ # otherwise rely on HealthProbeRequestHandler.is_alive from the protocol
307
+ if hasattr(self.model, 'handle_liveness_probe'):
308
+ HealthProbeRequestHandler.is_alive = self.model.handle_liveness_probe()
309
+ return super().handle_liveness_probe()
310
+
311
+ def handle_readiness_probe(self):
312
+ # if the model has a handle_readiness_probe method, call it to determine readiness
313
+ # otherwise rely on HealthProbeRequestHandler.is_ready from the protocol
314
+ if hasattr(self.model, 'handle_readiness_probe'):
315
+ HealthProbeRequestHandler.is_ready = self.model.handle_readiness_probe()
316
+ return super().handle_readiness_probe()
317
+
318
+ def handle_startup_probe(self):
319
+ # if the model has a handle_startup_probe method, call it to determine startup
320
+ # otherwise rely on HealthProbeRequestHandler.is_startup from the protocol
321
+ if hasattr(self.model, 'handle_startup_probe'):
322
+ HealthProbeRequestHandler.is_startup = self.model.handle_startup_probe()
323
+ return super().handle_startup_probe()
324
+
304
325
 
305
326
  def pmo_iterator(runner_item_iterator, auth_helper=None):
306
327
  for runner_item in runner_item_iterator:
@@ -69,6 +69,24 @@ class OpenAIModelClass(ModelClass):
69
69
 
70
70
  return completion_args
71
71
 
72
+ def handle_liveness_probe(self) -> bool:
73
+ """Handle liveness probe by checking if the client can list models."""
74
+ try:
75
+ _ = self.client.models.list()
76
+ return True
77
+ except Exception as e:
78
+ logger.error(f"Liveness probe failed: {e}", exc_info=True)
79
+ return False
80
+
81
+ def handle_readiness_probe(self) -> bool:
82
+ """Handle readiness probe by checking if the client can list models."""
83
+ try:
84
+ _ = self.client.models.list()
85
+ return True
86
+ except Exception as e:
87
+ logger.error(f"Readiness probe failed: {e}", exc_info=True)
88
+ return False
89
+
72
90
  def _set_usage(self, resp):
73
91
  if resp.usage and resp.usage.prompt_tokens and resp.usage.completion_tokens:
74
92
  self.set_output_context(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarifai
3
- Version: 11.7.5rc1
3
+ Version: 11.8.0
4
4
  Home-page: https://github.com/Clarifai/clarifai-python
5
5
  Author: Clarifai
6
6
  Author-email: support@clarifai.com
@@ -0,0 +1,129 @@
1
+ clarifai/__init__.py,sha256=i-ilTWt69mdcN4GqSDKAmTIOlguLxG2mm9Xhzz2U_aw,23
2
+ clarifai/cli.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ clarifai/errors.py,sha256=GXa6D4v_L404J83jnRNFPH7s-1V9lk7w6Ws99f1g-AY,2772
4
+ clarifai/versions.py,sha256=ecSuEB_nOL2XSoYHDw2n23XUbm_KPOGjudMXmQrGdS8,224
5
+ clarifai/cli/README.md,sha256=Rm0Sk61u7PrWQBgA6idv0R6ldJGhnVHSlIF2rVzRk8g,3428
6
+ clarifai/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ clarifai/cli/__main__.py,sha256=7nPbLW7Jr2shkgMPvnxpn4xYGMvIcnqluJ69t9w4H_k,74
8
+ clarifai/cli/base.py,sha256=FQEEmi3a9_LBOmM_-X4EYdpAmDK1UljTxrHOIIsOZbM,10696
9
+ clarifai/cli/compute_cluster.py,sha256=8Xss0Obrp6l1XuxJe0luOqU_pf8vXGDRi6jyIe8qR6k,2282
10
+ clarifai/cli/deployment.py,sha256=9C4I6_kyMxRkWl6h681wc79-3mAtDHtTUaxRv05OZMs,4262
11
+ clarifai/cli/model.py,sha256=afThcvpEy7ni8zezel-UjvoJkALbVLQEI4WDZIdyDL0,47948
12
+ clarifai/cli/nodepool.py,sha256=H6OIdUW_EiyDUwZogzEDoYmVwEjLMsgoDlPyE7gjIuU,4245
13
+ clarifai/cli/pipeline.py,sha256=MmyPaVX1XsIZlrYTrT7Ctd71ao_d3ZWkuF_fv_NJS8s,13944
14
+ clarifai/cli/pipeline_step.py,sha256=dvoC2vAsDcxOCy88VV0X42PG22_7JSu9sfBVsk-Cix4,6133
15
+ clarifai/cli/templates/__init__.py,sha256=HbMlZuYOMyVJde73ijNAevmSRUpIttGlHdwyO4W-JOs,44
16
+ clarifai/cli/templates/model_templates.py,sha256=f3fvXTwHLBExjSOpdcEgp7X1CH28jjzpLFKljWi5arQ,9793
17
+ clarifai/cli/templates/pipeline_step_templates.py,sha256=w1IJghF_4wWyEmHR1925N0hpGKocy3G7ezhxTH-0XCc,1716
18
+ clarifai/cli/templates/pipeline_templates.py,sha256=iLVxkmd0usc7jervTZTFzLwRVVF_623RszGW-oIuPDw,4234
19
+ clarifai/client/__init__.py,sha256=MWEG_jTGn6UWbGCznsZxObJ5h65k2igD1462qID2pgI,840
20
+ clarifai/client/app.py,sha256=8_Y5esptlFSGW2WS0uly9IBop37hJVpxnhs-vBIZrtc,47205
21
+ clarifai/client/base.py,sha256=aduMVVSPUSQ-MsDpj4yuHmCTUNbCTPt76dhRZ14euVg,10284
22
+ clarifai/client/compute_cluster.py,sha256=q-JuBai4pKpSeDAn-P61IKyGjizX-IV-O5huWAYx5DU,10279
23
+ clarifai/client/dataset.py,sha256=OgdpZkQ_vYmRxL8-qphcNozpvPV1bWTlte9Jv6UkKb8,35299
24
+ clarifai/client/deployment.py,sha256=QBf0tzkKBEpzNgmOEmWUJMOlVWdFEFc70Y44o8y75Gs,2875
25
+ clarifai/client/input.py,sha256=jpX47qwn7aUBBIEuSSLHF5jk70XaWEh0prD065c9b-E,51205
26
+ clarifai/client/lister.py,sha256=1YEm2suNxPaJO4x9V5szgD_YX6N_00vgSO-7m0HagY8,2208
27
+ clarifai/client/model.py,sha256=CQP5UiHaLR2hHcG1nU-ac_utN9ZXalOzbOqaICa0VyQ,92016
28
+ clarifai/client/model_client.py,sha256=pyPg1C3gb5Q3_DXmMmOB5AeORR1IDaaM7n0LGc3ciLk,38217
29
+ clarifai/client/module.py,sha256=jLViQYvVV3FmRN_ivvbk83uwsx7CgYGeEx4dYAr6yD4,4537
30
+ clarifai/client/nodepool.py,sha256=0E8-VgNMpdx2sAGotS3ZwfeUc9k3DBa3QJEJ1wKroVA,16700
31
+ clarifai/client/pipeline.py,sha256=R2DAaph-vlVJO_49PMfGXZ_1Prnd0vdkcgksnqK1jJA,15731
32
+ clarifai/client/pipeline_step.py,sha256=_R0PhVCspAQatCss-0O0O9p9CpvU_y9cSSEeUp_7cV0,2765
33
+ clarifai/client/runner.py,sha256=5xCiqByGGscfNm0IjHelhDTx8-9l8G0C3HL-3YZogK8,2253
34
+ clarifai/client/search.py,sha256=3LLfATrdU43a0mRNITmJV-E53bhfafZkYsbwkTtlnyU,15661
35
+ clarifai/client/user.py,sha256=-D7itPC_XCMtFnsWUOMCPU5PQd8s-ER8k-RIG2V673Y,24798
36
+ clarifai/client/workflow.py,sha256=Bqh8lAmJcSbviJebckchTxucYlU11UQEhFSov7elpsk,13417
37
+ clarifai/client/auth/__init__.py,sha256=7EwR0NrozkAUwpUnCsqXvE_p0wqx_SelXlSpKShKJK0,136
38
+ clarifai/client/auth/helper.py,sha256=R_k094V79ZBDvujRhWV3kiV5EttuAsVtRQFNvOsSI8A,16290
39
+ clarifai/client/auth/register.py,sha256=xIg1OoZ_GGnc0KQKII-R6q_cKN1JXW3BGcU2eyS-Kkc,871
40
+ clarifai/client/auth/stub.py,sha256=nKod8eNWaBnmsaNZ59dEt42TTcwC9mMgCzEMYPZggxc,9537
41
+ clarifai/constants/base.py,sha256=ogmFSZYoF0YhGjHg5aiOc3MLqPr_poKAls6xaD0_C3U,89
42
+ clarifai/constants/dataset.py,sha256=9saFE_VxCTCMlPTQbOU4KM_SzN_TQjwsrsFnpsc_Epo,556
43
+ clarifai/constants/input.py,sha256=WcHwToUVIK9ItAhDefaSohQHCLNeR55PSjZ0BFnoZ3U,28
44
+ clarifai/constants/model.py,sha256=ghcdvKIbx-g22H9RwxmMfUt1CrKz5Oa-iTExt0VpUVU,463
45
+ clarifai/constants/rag.py,sha256=WcHwToUVIK9ItAhDefaSohQHCLNeR55PSjZ0BFnoZ3U,28
46
+ clarifai/constants/search.py,sha256=yYEqTaFg-KdnpJE_Ytp-EPVHIIC395iNtZrpVlLIf4o,101
47
+ clarifai/constants/workflow.py,sha256=cECq1xdvf44MCdtK2AbkiuuwhyL-6OWZdQfYbsLKy_o,33
48
+ clarifai/datasets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ clarifai/datasets/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ clarifai/datasets/export/inputs_annotations.py,sha256=1PFjIw30dRO9NSUa_yvox_07W30tlAnrk4mEAVgfXBY,10980
51
+ clarifai/datasets/upload/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ clarifai/datasets/upload/base.py,sha256=8b13tmAokgZVH0d-HRpU-O15Swa46eJy2Fp6zU7jQkU,2441
53
+ clarifai/datasets/upload/features.py,sha256=Yy0MP1F_ev2IbWnEyXDLt5SaEb11bXSUu5ux8tD1oxY,2115
54
+ clarifai/datasets/upload/image.py,sha256=0Fs02KK1WuDE24RAJ2ZOdktva1iOqzE25J9jJJYJUDk,10122
55
+ clarifai/datasets/upload/multimodal.py,sha256=IZYjmyxVJpNjwyNyzptQENZcCKDbdTU_t70QSdK23Ec,2762
56
+ clarifai/datasets/upload/text.py,sha256=L2IEbickNhZcmrhbBfQciCXQf4JPcqWulRWJ7HDpJLc,2482
57
+ clarifai/datasets/upload/utils.py,sha256=VdTn7AqIWB8D60rX9YD4T-4fi-7xMEocHATJvvaPjxQ,10508
58
+ clarifai/datasets/upload/loaders/README.md,sha256=aNRutSCTzLp2ruIZx74ZkN5AxpzwKOxMa7OzabnKpwg,2980
59
+ clarifai/datasets/upload/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ clarifai/datasets/upload/loaders/coco_captions.py,sha256=v6e8lh6BCUFOlurnvDfBEY-drl6JhpIE9nt2Qnz7XQ8,1623
61
+ clarifai/datasets/upload/loaders/coco_detection.py,sha256=0FsGV84MT0IkerXoe9hdxQSr9wd96j9cPOne-rhzBPw,3190
62
+ clarifai/datasets/upload/loaders/imagenet_classification.py,sha256=w2Tiot_YK0QYiyAVbWSxoKthZgUsRo9LiWWY2lVzPrQ,2247
63
+ clarifai/datasets/upload/loaders/xview_detection.py,sha256=dukodZRdyVH-s5MtmCDtKwseKGwSCWAK2Uwuwa6kJu4,8035
64
+ clarifai/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ clarifai/models/api.py,sha256=YhbGqZMC5mH_ZqnbaEmgfJdrIhSkLevpWih8ZqC3BL4,12193
66
+ clarifai/modules/README.md,sha256=mx8pVx6cPp-pP4LcFPT_nX3ngGmhygVK0WiXeD3cbIo,367
67
+ clarifai/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ clarifai/modules/css.py,sha256=Jg67jXo2mZoGQp7M-At74ywyk4cN90s-aJTLjfqsaB4,2176
69
+ clarifai/modules/pages.py,sha256=DZVO7YjIjYQdUyHYF-zxLkc5qkYC5KNnUxGiKQGo3Uk,1509
70
+ clarifai/modules/style.css,sha256=j7FNPZVhLPj35vvBksAJ90RuX5sLuqzDR5iM2WIEhiA,6073
71
+ clarifai/rag/__init__.py,sha256=wu3PzAzo7uqgrEzuaC9lY_3gj1HFiR3GU3elZIKTT5g,40
72
+ clarifai/rag/rag.py,sha256=EG3GoFrHFCmA70Tz49_0Jo1-3WIaHSgWGHecPeErcdc,14170
73
+ clarifai/rag/utils.py,sha256=_gVZdABuMnraCKViLruV75x0F3IpgFXN6amYSGE5_xc,4462
74
+ clarifai/runners/__init__.py,sha256=wXLaSljH7qLeJCrZdKEnlQh2tNqTQAIZKWOu2rZ6wGs,279
75
+ clarifai/runners/server.py,sha256=qTWpFw01UqdVHSUSKojnnC7P-jKx6dQvPs0C4vJCOw4,12442
76
+ clarifai/runners/dockerfile_template/Dockerfile.template,sha256=nEnIMqzhAXDbd0Ht7QQm0U7AVPIHWQD6kYnFZ0TKJUM,2428
77
+ clarifai/runners/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
+ clarifai/runners/models/dummy_openai_model.py,sha256=LfAJu173uTEYsN6xpaJ6TyimohyTooX16H6YYk9qVLs,8636
79
+ clarifai/runners/models/mcp_class.py,sha256=RdKn7rW4vYol0VRDZiLTSMfkqjLhO1ijXAQ0Rq0Jfnw,6647
80
+ clarifai/runners/models/model_builder.py,sha256=uHEbUs-madANZIjroCbdWFrD6ss9jtLQNIrLgrqEaJA,75881
81
+ clarifai/runners/models/model_class.py,sha256=Ndh437BNMkpFBo6B108GuKL8sGYaGnSplZ6FxOgd_v8,20010
82
+ clarifai/runners/models/model_run_locally.py,sha256=6-6WjEKc0ba3gAv4wOLdMs2XOzS3b-2bZHJS0wdVqJY,20088
83
+ clarifai/runners/models/model_runner.py,sha256=bZeqIGvoR6t9kzI7ko5Wh2sB8DiT-HcCgFwTqgeu_JY,14573
84
+ clarifai/runners/models/model_servicer.py,sha256=ZNF5rFI76YCmXXQIrz4wacPMtlFfl2KRsmPw29luGKI,4729
85
+ clarifai/runners/models/openai_class.py,sha256=MYnL7_U4_m5FX3CoVaTd6B9Qminh-q4pYizZQsV3zSk,9557
86
+ clarifai/runners/models/visual_classifier_class.py,sha256=1ZoLfCT2crrgRbejjTMAIwpTRgQMiH9N9yflOVpFxSg,2721
87
+ clarifai/runners/models/visual_detector_class.py,sha256=ky4oFAkGCKPpGPdgaOso-n6D3HcmnbKee_8hBsNiV8U,2883
88
+ clarifai/runners/pipeline_steps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
+ clarifai/runners/pipeline_steps/pipeline_step_builder.py,sha256=jcbs3ntbeyUiAaPh00Pscni4uJopbqVNVJblUX1pYVc,21808
90
+ clarifai/runners/pipelines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
+ clarifai/runners/pipelines/pipeline_builder.py,sha256=0FBjb8l7mWlCwBsBLkHM3znNQB9HPLEOYrrE53ntjCE,13810
92
+ clarifai/runners/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ clarifai/runners/utils/code_script.py,sha256=zZ5xjd13z2oV4CUWgMU0w6J6dRr01Kl2K-8pPyw0MiY,14346
94
+ clarifai/runners/utils/const.py,sha256=MK7lTzzJKbOiyiUtG_jlJXfz_xNKMn5LjkQ9vjbttXE,1538
95
+ clarifai/runners/utils/data_utils.py,sha256=HRpMYR2O0OiDpXXhOManLHTeomC4bFnXMHVAiT_12yE,20856
96
+ clarifai/runners/utils/loader.py,sha256=hQwdRKRLgrunDzLTiqjz2qVdxiL8WQ04PUSwrh-JWZ0,12077
97
+ clarifai/runners/utils/method_signatures.py,sha256=qdHaO8ZIgP6BBXXMhMPhcQ46dse-XMP2t4VJCNG7O3Q,18335
98
+ clarifai/runners/utils/model_utils.py,sha256=MCYhV_00anptIO1Qtxgzn3DlGI2UHV0ESFT3wLNcAMM,6413
99
+ clarifai/runners/utils/openai_convertor.py,sha256=ZlIrvvfHttD_DavLvmKZdL8gNq_TQvQtZVnYamwdWz4,8248
100
+ clarifai/runners/utils/pipeline_validation.py,sha256=GFgFbrlS0UvGXcYTS84CyX7hIVU2CUNVQiMnCAjNfhw,6444
101
+ clarifai/runners/utils/serializers.py,sha256=pI7GqMTC0T3Lu_X8v8TO4RiplO-gC_49Ns37jYwsPtg,7908
102
+ clarifai/runners/utils/url_fetcher.py,sha256=pGkrpj692FEvMsV6pNbmidfYKzQV7APzjja_fwd1Aig,4792
103
+ clarifai/runners/utils/data_types/__init__.py,sha256=iBtmPkIoLK9ew6ZiXElGt2YBBTDLEA0fmxE_eOYzvhk,478
104
+ clarifai/runners/utils/data_types/data_types.py,sha256=UBHTNPshr94qUs2KqkYis0VlArm23rcSG_EyO_Uetgc,19823
105
+ clarifai/schema/search.py,sha256=o9-ct8ulLZByB3RCVwZWPgaDwdcW7cM5s-g8oyAz89s,2421
106
+ clarifai/urls/helper.py,sha256=z6LnLGgLHxD8scFtyRdxqYIRJNhxqPkfLe53UtTLUBY,11727
107
+ clarifai/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
+ clarifai/utils/cli.py,sha256=xTenEXjhWV-lpTqlfeRO4WNakT5QszNi8GO4yH4qcMs,13184
109
+ clarifai/utils/config.py,sha256=dENYtcWW7Il5MInvIaYe0MZn0hW1fbIb0Lzk8rQ_geQ,7671
110
+ clarifai/utils/constants.py,sha256=klcdSiVccrdJVRXL9qq08p2lWL3KerXcQOTIG6y9298,2414
111
+ clarifai/utils/logging.py,sha256=0we53uTqUvzrulC86whu-oeWNxn1JjJL0OQ98Bwf9vo,15198
112
+ clarifai/utils/misc.py,sha256=ATj4RR6S06GeLE0X4tMU4bmTz4Sz4j2WemTddsnSfMI,23458
113
+ clarifai/utils/model_train.py,sha256=0XSAoTkSsrwf4f-W9yw2mkXZtkal7LBLJSoi86CFCn4,9250
114
+ clarifai/utils/protobuf.py,sha256=VMhnNsPuWQ16VarKm8BOr5zccXMe26UlrxdJxIzEZNM,6220
115
+ clarifai/utils/secrets.py,sha256=nmdgHpjVvx93eSXvk8NbOikj7JsFu5tnqXNMj-0qDBA,11253
116
+ clarifai/utils/evaluation/__init__.py,sha256=PYkurUrXrGevByj7RFb6CoU1iC7fllyQSfnnlo9WnY8,69
117
+ clarifai/utils/evaluation/helpers.py,sha256=0t6eIDXeZEoiVvnmHTnsIF_-v4BzrQW1hFaqc_psifU,21079
118
+ clarifai/utils/evaluation/main.py,sha256=N_sfRuMjHrUeuWN0Pzms65M1PbkQkgYg3WoQVaDR1Jw,17764
119
+ clarifai/utils/evaluation/testset_annotation_parser.py,sha256=Nmodfi5BYFYEbybWcC8tmU5-wtwRBsWIbnpd3OvKSmA,5414
120
+ clarifai/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
+ clarifai/workflows/export.py,sha256=HvUYG9N_-UZoRR0-_tdGbZ950_AeBqawSppgUxQebR0,1913
122
+ clarifai/workflows/utils.py,sha256=ESL3INcouNcLKCh-nMpfXX-YbtCzX7tz7hT57_RGQ3M,2079
123
+ clarifai/workflows/validate.py,sha256=UhmukyHkfxiMFrPPeBdUTiCOHQT5-shqivlBYEyKTlU,2931
124
+ clarifai-11.8.0.dist-info/licenses/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
125
+ clarifai-11.8.0.dist-info/METADATA,sha256=7bi487EKBn-zOSchR-9uC-l7j5-1KsWWNfbXQpjHaZk,23161
126
+ clarifai-11.8.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
127
+ clarifai-11.8.0.dist-info/entry_points.txt,sha256=X9FZ4Z-i_r2Ud1RpZ9sNIFYuu_-9fogzCMCRUD9hyX0,51
128
+ clarifai-11.8.0.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
129
+ clarifai-11.8.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
Binary file
Binary file