clarifai 11.4.1__py3-none-any.whl → 11.4.3__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 (40) hide show
  1. clarifai/__init__.py +1 -1
  2. clarifai/cli/base.py +7 -0
  3. clarifai/cli/model.py +6 -8
  4. clarifai/client/app.py +2 -1
  5. clarifai/client/auth/helper.py +6 -4
  6. clarifai/client/compute_cluster.py +2 -1
  7. clarifai/client/dataset.py +8 -1
  8. clarifai/client/deployment.py +2 -1
  9. clarifai/client/input.py +2 -1
  10. clarifai/client/model.py +2 -1
  11. clarifai/client/model_client.py +1 -1
  12. clarifai/client/module.py +2 -1
  13. clarifai/client/nodepool.py +2 -1
  14. clarifai/client/runner.py +2 -1
  15. clarifai/client/search.py +2 -1
  16. clarifai/client/user.py +2 -1
  17. clarifai/client/workflow.py +2 -1
  18. clarifai/runners/models/mcp_class.py +114 -0
  19. clarifai/runners/models/model_builder.py +179 -46
  20. clarifai/runners/models/model_class.py +5 -22
  21. clarifai/runners/models/model_run_locally.py +0 -4
  22. clarifai/runners/models/visual_classifier_class.py +75 -0
  23. clarifai/runners/models/visual_detector_class.py +79 -0
  24. clarifai/runners/utils/code_script.py +75 -44
  25. clarifai/runners/utils/const.py +15 -0
  26. clarifai/runners/utils/data_types/data_types.py +48 -0
  27. clarifai/runners/utils/data_utils.py +99 -45
  28. clarifai/runners/utils/loader.py +23 -2
  29. clarifai/runners/utils/method_signatures.py +4 -4
  30. clarifai/runners/utils/openai_convertor.py +103 -0
  31. clarifai/urls/helper.py +80 -12
  32. clarifai/utils/config.py +19 -0
  33. clarifai/utils/constants.py +4 -0
  34. clarifai/utils/logging.py +22 -5
  35. {clarifai-11.4.1.dist-info → clarifai-11.4.3.dist-info}/METADATA +1 -2
  36. {clarifai-11.4.1.dist-info → clarifai-11.4.3.dist-info}/RECORD +40 -37
  37. {clarifai-11.4.1.dist-info → clarifai-11.4.3.dist-info}/WHEEL +1 -1
  38. {clarifai-11.4.1.dist-info → clarifai-11.4.3.dist-info}/entry_points.txt +0 -0
  39. {clarifai-11.4.1.dist-info → clarifai-11.4.3.dist-info}/licenses/LICENSE +0 -0
  40. {clarifai-11.4.1.dist-info → clarifai-11.4.3.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,9 @@
1
1
  import time
2
2
  import uuid
3
+ from typing import Dict, List
4
+
5
+ from clarifai.runners.utils.data_types import Audio, Image, Video
6
+ from clarifai.runners.utils.data_utils import process_audio, process_image, process_video
3
7
 
4
8
 
5
9
  def generate_id():
@@ -164,3 +168,102 @@ def openai_to_hf_messages(openai_messages):
164
168
  hf_messages.append({'role': role, 'content': hf_content})
165
169
 
166
170
  return hf_messages
171
+
172
+
173
+ def build_openai_messages(
174
+ prompt: str,
175
+ image: Image,
176
+ images: List[Image],
177
+ audio: Audio,
178
+ audios: List[Audio],
179
+ video: Video,
180
+ videos: List[Video],
181
+ messages: List[Dict],
182
+ ) -> List[Dict]:
183
+ """
184
+ Construct OpenAI-compatible messages from input components.
185
+ Args:
186
+ prompt (str): The prompt text.
187
+ image (Image): Clarifai Image object.
188
+ images (List[Image]): List of Clarifai Image objects.
189
+ audio (Audio): Clarifai Audio object.
190
+ audios (List[Audio]): List of Clarifai Audio objects.
191
+ video (Video): Clarifai Video object.
192
+ videos (List[Video]): List of Clarifai Video objects.
193
+ messages (List[Dict]): List of chat messages.
194
+ Returns:
195
+ List[Dict]: Formatted chat messages.
196
+ """
197
+
198
+ openai_messages = []
199
+ # Add previous conversation history
200
+ if messages and is_openai_chat_format(messages):
201
+ openai_messages.extend(messages)
202
+
203
+ content = []
204
+ if prompt.strip():
205
+ # Build content array for current message
206
+ content.append({'type': 'text', 'text': prompt})
207
+ # Add single image if present
208
+ if image:
209
+ content.append(process_image(image))
210
+ # Add multiple images if present
211
+ if images:
212
+ for img in images:
213
+ content.append(process_image(img))
214
+ # Add single audio if present
215
+ if audio:
216
+ content.append(process_audio(audio))
217
+ # Add multiple audios if present
218
+ if audios:
219
+ for audio in audios:
220
+ content.append(process_audio(audio))
221
+ # Add single video if present
222
+ if video:
223
+ content.append(process_video(video))
224
+ # Add multiple videos if present
225
+ if videos:
226
+ for video in videos:
227
+ content.append(process_video(video))
228
+
229
+ if content:
230
+ # Append complete user message
231
+ openai_messages.append({'role': 'user', 'content': content})
232
+
233
+ return openai_messages
234
+
235
+
236
+ def is_openai_chat_format(messages):
237
+ """
238
+ Verify if the given argument follows the OpenAI chat messages format.
239
+
240
+ Args:
241
+ messages (list): A list of dictionaries representing chat messages.
242
+
243
+ Returns:
244
+ bool: True if valid, False otherwise.
245
+ """
246
+ if not isinstance(messages, list):
247
+ return False
248
+
249
+ valid_roles = {"system", "user", "assistant", "function"}
250
+
251
+ for msg in messages:
252
+ if not isinstance(msg, dict):
253
+ return False
254
+ if "role" not in msg or "content" not in msg:
255
+ return False
256
+ if msg["role"] not in valid_roles:
257
+ return False
258
+
259
+ content = msg["content"]
260
+
261
+ # Content should be either a string (text message) or a multimodal list
262
+ if isinstance(content, str):
263
+ continue # Valid text message
264
+
265
+ elif isinstance(content, list):
266
+ for item in content:
267
+ if not isinstance(item, dict):
268
+ return False
269
+ return True
clarifai/urls/helper.py CHANGED
@@ -1,10 +1,25 @@
1
+ import os
2
+ from collections import namedtuple
1
3
  from urllib.parse import urlparse
2
4
 
5
+ from clarifai.utils.constants import DEFAULT_BASE, DEFAULT_UI
6
+
7
+ # To help with using ClarifaiUrlHelper with defaults as ClarifaiUrlHelper()
8
+ auth_obj = namedtuple("auth", ["ui", "base"])
9
+ default_auth = auth_obj(
10
+ ui=os.environ.get("CLARIFAI_UI", DEFAULT_UI),
11
+ base=os.environ.get("CLARIFAI_API_BASE", DEFAULT_BASE),
12
+ )
13
+
3
14
 
4
15
  class ClarifaiUrlHelper(object):
5
16
  """Lots of helper functionality for dealing with urls around modules."""
6
17
 
7
- def __init__(self, auth, module_manager_imv_id="module_manager_install"):
18
+ def __init__(
19
+ self,
20
+ auth=default_auth,
21
+ module_manager_imv_id: str = "module_manager_install",
22
+ ):
8
23
  """
9
24
  Args:
10
25
  auth: a ClarifaiAuthHelper object.
@@ -13,13 +28,17 @@ class ClarifaiUrlHelper(object):
13
28
  self._module_manager_imv_id = module_manager_imv_id
14
29
 
15
30
  @property
16
- def auth(self):
17
- return self._auth
31
+ def ui(self):
32
+ return self._auth.ui
33
+
34
+ @property
35
+ def base(self):
36
+ return self._auth.base
18
37
 
19
38
  def module_ui_url(self, user_id, app_id, module_id, module_version_id):
20
39
  """This is the path to the module in community."""
21
40
  return "%s/%s/%s/modules/%s/versions/%s" % (
22
- self.auth.ui,
41
+ self.ui,
23
42
  user_id,
24
43
  app_id,
25
44
  module_id,
@@ -30,7 +49,7 @@ class ClarifaiUrlHelper(object):
30
49
  """This is a url that allows for installation of the module from the community at 'module_url'
31
50
  into the destination app_id of the destination user_id."""
32
51
  return "%s/%s/%s/installed_module_versions/%s/install?install=%s" % (
33
- self.auth.ui,
52
+ self.ui,
34
53
  dest_user_id,
35
54
  dest_app_id,
36
55
  self._module_manager_imv_id,
@@ -39,22 +58,51 @@ class ClarifaiUrlHelper(object):
39
58
 
40
59
  def imv_ui_url(self, dest_user_id, dest_app_id, imv_id):
41
60
  return "%s/%s/%s/installed_module_versions/%s" % (
42
- self.auth.ui,
61
+ self.ui,
43
62
  dest_user_id,
44
63
  dest_app_id,
45
64
  imv_id,
46
65
  )
47
66
 
48
- def clarifai_url(self, user_id, app_id, resource_type, resource_id, version_id: str = None):
49
- """This is the path to the resource in community.
67
+ def api_url(self, user_id, app_id, resource_type, resource_id, version_id: str = None):
68
+ """This is the path to the resource in the API.
69
+
70
+ Example:
71
+ https://api.clarifai.com/v2/zeiler/app/modules/module1/versions/2
72
+ https://api.clarifai.com/v2/zeiler/app/models/model1/versions/2
73
+ https://api.clarifai.com/v2/zeiler/app/concepts/concept1
74
+ https://api.clarifai.com/v2/zeiler/app/workflows/workflow1
75
+ https://api.clarifai.com/v2/zeiler/app/tasks/task1
76
+ https://api.clarifai.com/v2/zeiler/app/installed_module_versions/module_manager_install
50
77
 
51
78
  Args:
52
79
  user_id: the author of the resource.
53
80
  app_id: the author's app the resource was created in.
54
- resource_type: the type of resource. One of "modules", "models", "concepts", "inputs", "workflows", "tasks", "installed_module_versions"
81
+ resource_type: the type of resource. One of "modules", "models", "concepts", "inputs", "workflows", "tasks"
55
82
  resource_id: the resource ID
56
- version_id: the version of the resource.
57
83
  """
84
+ self._validate_resource_type(resource_type)
85
+ if version_id is None:
86
+ return "%s/v2/users/%s/apps/%s/%s/%s" % (
87
+ self.base,
88
+ user_id,
89
+ app_id,
90
+ resource_type,
91
+ resource_id,
92
+ )
93
+
94
+ if resource_type in ["concepts", "tasks", "installed_module_versions"]:
95
+ raise ValueError(f"{resource_type} do not have versions.")
96
+ return "%s/v2/users/%s/apps/%s/%s/%s/versions/%s" % (
97
+ self.base,
98
+ user_id,
99
+ app_id,
100
+ resource_type,
101
+ resource_id,
102
+ version_id,
103
+ )
104
+
105
+ def _validate_resource_type(self, resource_type):
58
106
  if resource_type not in [
59
107
  "modules",
60
108
  "models",
@@ -68,10 +116,30 @@ class ClarifaiUrlHelper(object):
68
116
  "resource_type must be one of modules, models, concepts, inputs, workflows, tasks, installed_module_versions but was %s"
69
117
  % resource_type
70
118
  )
119
+
120
+ def clarifai_url(self, user_id, app_id, resource_type, resource_id, version_id: str = None):
121
+ """This is the path to the resource in community UI.
122
+
123
+ Example:
124
+ https://clarifai.com/zeiler/modules/module1/versions/2
125
+ https://clarifai.com/zeiler/models/model1/versions/2
126
+ https://clarifai.com/zeiler/concepts/concept1
127
+ https://clarifai.com/zeiler/workflows/workflow1
128
+ https://clarifai.com/zeiler/tasks/task1
129
+ https://clarifai.com/zeiler/installed_module_versions/module_manager_install
130
+
131
+ Args:
132
+ user_id: the author of the resource.
133
+ app_id: the author's app the resource was created in.
134
+ resource_type: the type of resource. One of "modules", "models", "concepts", "inputs", "workflows", "tasks", "installed_module_versions"
135
+ resource_id: the resource ID
136
+ version_id: the version of the resource.
137
+ """
138
+ self._validate_resource_type(resource_type)
71
139
  if version_id is None:
72
- return "%s/%s/%s/%s/%s" % (self.auth.ui, user_id, app_id, resource_type, resource_id)
140
+ return "%s/%s/%s/%s/%s" % (self.ui, user_id, app_id, resource_type, resource_id)
73
141
  return "%s/%s/%s/%s/%s/versions/%s" % (
74
- self.auth.ui,
142
+ self.ui,
75
143
  user_id,
76
144
  app_id,
77
145
  resource_type,
clarifai/utils/config.py CHANGED
@@ -102,6 +102,25 @@ class Context(OrderedDict):
102
102
  envvar_name = 'CLARIFAI_' + envvar_name
103
103
  os.environ[envvar_name] = str(v)
104
104
 
105
+ def print_env_vars(self):
106
+ """prints the context env vars to the terminal
107
+
108
+ Example:
109
+ # This is helpful in scripts so you can do
110
+
111
+ from clarifai.utils.config import Config
112
+
113
+ Config.from_yaml().current.print_env_vars()
114
+
115
+ """
116
+ for k, v in sorted(self['env'].items()):
117
+ if isinstance(v, dict):
118
+ continue
119
+ envvar_name = k.upper()
120
+ if not envvar_name.startswith('CLARIFAI_'):
121
+ envvar_name = 'CLARIFAI_' + envvar_name
122
+ print(f"export {envvar_name}=\"{v}\"")
123
+
105
124
 
106
125
  @dataclass
107
126
  class Config:
@@ -1,5 +1,9 @@
1
1
  import os
2
2
 
3
+ DEFAULT_UI = os.environ.get("CLARIFAI_UI", "https://clarifai.com")
4
+ DEFAULT_BASE = os.environ.get("CLARIFAI_API_BASE", "https://api.clarifai.com")
5
+
6
+
3
7
  CLARIFAI_PAT_ENV_VAR = "CLARIFAI_PAT"
4
8
  CLARIFAI_SESSION_TOKEN_ENV_VAR = "CLARIFAI_SESSION_TOKEN"
5
9
  CLARIFAI_USER_ID_ENV_VAR = "CLARIFAI_USER_ID"
clarifai/utils/logging.py CHANGED
@@ -10,6 +10,8 @@ import traceback
10
10
  from collections import defaultdict
11
11
  from typing import Any, Dict, List, Optional, Union
12
12
 
13
+ from clarifai.errors import UserError
14
+
13
15
  # The default logger to use throughout the SDK is defined at bottom of this file.
14
16
 
15
17
  # For the json logger.
@@ -80,8 +82,13 @@ def get_req_id_from_context():
80
82
 
81
83
  def display_workflow_tree(nodes_data: List[Dict]) -> None:
82
84
  """Displays a tree of the workflow nodes."""
83
- from rich import print as rprint
84
- from rich.tree import Tree
85
+ try:
86
+ from rich import print as rprint
87
+ from rich.tree import Tree
88
+ except ImportError:
89
+ raise UserError(
90
+ "Rich library is not installed. Please install it using pip install rich>=13.4.2"
91
+ )
85
92
 
86
93
  # Create a mapping of node_id to the list of node_ids that are connected to it.
87
94
  node_adj_mapping = defaultdict(list)
@@ -131,7 +138,12 @@ def display_workflow_tree(nodes_data: List[Dict]) -> None:
131
138
 
132
139
  def table_from_dict(data: List[Dict], column_names: List[str], title: str = "") -> 'rich.Table': # noqa F821
133
140
  """Use this function for printing tables from a list of dicts."""
134
- from rich.table import Table
141
+ try:
142
+ from rich.table import Table
143
+ except ImportError:
144
+ raise UserError(
145
+ "Rich library is not installed. Please install it using pip install rich>=13.4.2"
146
+ )
135
147
 
136
148
  table = Table(title=title, show_lines=False, show_header=True, header_style="blue")
137
149
  for column_name in column_names:
@@ -233,8 +245,13 @@ def display_concept_relations_tree(relations_dict: Dict[str, Any]) -> None:
233
245
  Args:
234
246
  relations_dict (dict): A dict of concept relations info.
235
247
  """
236
- from rich import print as rprint
237
- from rich.tree import Tree
248
+ try:
249
+ from rich import print as rprint
250
+ from rich.tree import Tree
251
+ except ImportError:
252
+ raise UserError(
253
+ "Rich library is not installed. Please install it using pip install rich>=13.4.2"
254
+ )
238
255
 
239
256
  for parent, children in relations_dict.items():
240
257
  tree = Tree(parent)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarifai
3
- Version: 11.4.1
3
+ Version: 11.4.3
4
4
  Home-page: https://github.com/Clarifai/clarifai-python
5
5
  Author: Clarifai
6
6
  Author-email: support@clarifai.com
@@ -23,7 +23,6 @@ Requires-Dist: clarifai-grpc>=11.3.4
23
23
  Requires-Dist: clarifai-protocol>=0.0.23
24
24
  Requires-Dist: numpy>=1.22.0
25
25
  Requires-Dist: tqdm>=4.65.0
26
- Requires-Dist: rich>=13.4.2
27
26
  Requires-Dist: PyYAML>=6.0.1
28
27
  Requires-Dist: schema==0.7.5
29
28
  Requires-Dist: Pillow>=9.5.0
@@ -1,33 +1,33 @@
1
- clarifai/__init__.py,sha256=2En8s3vAF6UtYOsy9zZZ7y0N_jqRJPbqJoD5cTWTleo,23
1
+ clarifai/__init__.py,sha256=WC-Q7uwDymQD3TdIUlUDTeqf9vxRXHJ_xDIRpvTVvsw,23
2
2
  clarifai/cli.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  clarifai/errors.py,sha256=GXa6D4v_L404J83jnRNFPH7s-1V9lk7w6Ws99f1g-AY,2772
4
4
  clarifai/versions.py,sha256=ecSuEB_nOL2XSoYHDw2n23XUbm_KPOGjudMXmQrGdS8,224
5
5
  clarifai/cli/README.md,sha256=YGApHfeUyu5P0Pdth-mqQCQftWHDxz6bugDlvDXDhOE,1942
6
6
  clarifai/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  clarifai/cli/__main__.py,sha256=7nPbLW7Jr2shkgMPvnxpn4xYGMvIcnqluJ69t9w4H_k,74
8
- clarifai/cli/base.py,sha256=Bp5wWHTFNPgruQ5qitPzYFSK-w6LqWQg0kS49bdB1Ls,8067
8
+ clarifai/cli/base.py,sha256=Rk87oliNs3q-pVX2ubyjycgo4Gtd0hcDSgr9MqDxyko,8227
9
9
  clarifai/cli/compute_cluster.py,sha256=8Xss0Obrp6l1XuxJe0luOqU_pf8vXGDRi6jyIe8qR6k,2282
10
10
  clarifai/cli/deployment.py,sha256=9C4I6_kyMxRkWl6h681wc79-3mAtDHtTUaxRv05OZMs,4262
11
- clarifai/cli/model.py,sha256=TXpjcm1My5F1QK8mMW1FwRx1EkS1GRpm1y6gR1qYfV4,27433
11
+ clarifai/cli/model.py,sha256=M1O0QCdIyTcn2GzrkROAtgWR-8SX2WV9nz0l84rkiG4,27375
12
12
  clarifai/cli/nodepool.py,sha256=H6OIdUW_EiyDUwZogzEDoYmVwEjLMsgoDlPyE7gjIuU,4245
13
13
  clarifai/client/__init__.py,sha256=NhpNFRJY6mTi8ca-5hUeTEmYeDKHDNXY48FN63pDuos,703
14
- clarifai/client/app.py,sha256=LmIz06Tf1SVNd5SdLV5iqttEiY1x_8r5zX85MCfuXlo,41344
14
+ clarifai/client/app.py,sha256=D0FG9v07g1dExLnQsYt0OQjsJCkVvuw76BOpcqaCzfM,41380
15
15
  clarifai/client/base.py,sha256=zOmB5HJP_-NmF2BPka14W7VUeJ1OF-fNxeacLsaRj3E,8775
16
- clarifai/client/compute_cluster.py,sha256=Tf4Svvx96pC2dMwdtpUsMiope-Nq941dpOViH4uDx5k,10218
17
- clarifai/client/dataset.py,sha256=AMFlOIMa7Rvn9BDAM6bDXxhvnYv9a1fAEOwM5hswtaU,35043
18
- clarifai/client/deployment.py,sha256=MQ3Kd8Ldp_JTC1hqhRqPiHe0RVUjb6iBY5DiA2Q7NxA,2839
19
- clarifai/client/input.py,sha256=Oswf3sp8PLs39jGIqfbJ89afh9GTCSsaQ--lYPtEtRo,51169
16
+ clarifai/client/compute_cluster.py,sha256=ViPyh-FibXL1J0ypsVOTaQnR1ymKohmZEuA13RwA-hc,10254
17
+ clarifai/client/dataset.py,sha256=OgdpZkQ_vYmRxL8-qphcNozpvPV1bWTlte9Jv6UkKb8,35299
18
+ clarifai/client/deployment.py,sha256=QBf0tzkKBEpzNgmOEmWUJMOlVWdFEFc70Y44o8y75Gs,2875
19
+ clarifai/client/input.py,sha256=jpX47qwn7aUBBIEuSSLHF5jk70XaWEh0prD065c9b-E,51205
20
20
  clarifai/client/lister.py,sha256=1YEm2suNxPaJO4x9V5szgD_YX6N_00vgSO-7m0HagY8,2208
21
- clarifai/client/model.py,sha256=6KHMxKBb5EbOS_FC3lf3q9jl8p2-mitDhaZ1PejKVo8,86231
22
- clarifai/client/model_client.py,sha256=YCmbUQjMy3pzDzIB7_4hMro7sZCZTMwBFvNpyHpmPtY,22380
23
- clarifai/client/module.py,sha256=LDFpJciJUX-y9EzmLwAY86UGKlzabMSzUXxujoh8C9o,4501
24
- clarifai/client/nodepool.py,sha256=DXTa5Ap-TgcUiwd2tcdHuBFaqe3IgW4RkG05n9iUm98,16379
25
- clarifai/client/runner.py,sha256=Bs7kNk0YiLFKKOWkLZIyAHZxVWf1B5YIl2bsMhIYJw8,2217
26
- clarifai/client/search.py,sha256=Z-8PJJYAw5IlF0ac1M0GCz6TRQhouI8fwZryOJZkP1Q,15625
27
- clarifai/client/user.py,sha256=Ey-sqW5dFE_3HLC-E4mHncKth-nQ1j_q6Tp80TMOfwI,18358
28
- clarifai/client/workflow.py,sha256=55fO5IYhER-kHL1FwP3IiWjWEZYNG3jpe7vBRIi_PJQ,13381
21
+ clarifai/client/model.py,sha256=XptnbfvNnaRCvv6Sdc7hfZnEPL8z9_-nFB3OmKujfAE,86267
22
+ clarifai/client/model_client.py,sha256=V0rDa1Qnol2qfAvJI6SwZfbtXqNowPRRMOYBH2Em0so,22386
23
+ clarifai/client/module.py,sha256=jLViQYvVV3FmRN_ivvbk83uwsx7CgYGeEx4dYAr6yD4,4537
24
+ clarifai/client/nodepool.py,sha256=Y5zQ0JLdTjAp2TmVnx7AAOwaB2YUslk3nl7s6BQ90FQ,16415
25
+ clarifai/client/runner.py,sha256=5xCiqByGGscfNm0IjHelhDTx8-9l8G0C3HL-3YZogK8,2253
26
+ clarifai/client/search.py,sha256=3LLfATrdU43a0mRNITmJV-E53bhfafZkYsbwkTtlnyU,15661
27
+ clarifai/client/user.py,sha256=VqY5j75wJqw1AeaWpZLvbNfSjQHGQm_bdjknDjX_fQY,18394
28
+ clarifai/client/workflow.py,sha256=Bqh8lAmJcSbviJebckchTxucYlU11UQEhFSov7elpsk,13417
29
29
  clarifai/client/auth/__init__.py,sha256=7EwR0NrozkAUwpUnCsqXvE_p0wqx_SelXlSpKShKJK0,136
30
- clarifai/client/auth/helper.py,sha256=10Ow_eCgWMKURYW2aT46GLEax-GYoEUHwbcdt7tX6jg,15199
30
+ clarifai/client/auth/helper.py,sha256=kHBi8GTX19EUiD9n_QgCqilv127TDIpP0_o5MMtzFdY,15167
31
31
  clarifai/client/auth/register.py,sha256=pyY-Kg_64WpN6rXz1SyEzfqL14BS4yADtuYMxLJ4jx4,554
32
32
  clarifai/client/auth/stub.py,sha256=pU4FYeghooCBZmCRyNTdDfJaVe4WyeRBqE3xVwfmMTY,5388
33
33
  clarifai/constants/base.py,sha256=ogmFSZYoF0YhGjHg5aiOc3MLqPr_poKAls6xaD0_C3U,89
@@ -67,29 +67,32 @@ clarifai/runners/__init__.py,sha256=cDJ31l41dDsqW4Xn6sFMkKxxdIMTnGH9IW6sVkq0TNw,
67
67
  clarifai/runners/server.py,sha256=9qVAs8pRHmtyY0RCNIQ1uP8nqDADIFZ03LnkoDt1h4U,4692
68
68
  clarifai/runners/dockerfile_template/Dockerfile.template,sha256=5cjv7U8PmWa3DB_5B1CqSYh_6GE0E0np52TIAa7EIDE,2312
69
69
  clarifai/runners/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- clarifai/runners/models/model_builder.py,sha256=BupeN3yforFC-BadSTYQ3zoSBzi27Of2DCy0PD0zrkM,42511
71
- clarifai/runners/models/model_class.py,sha256=MRmLmRlC5J0FmiesrlQm-plMu1VzUSnKNEDOXZfYQ00,16409
72
- clarifai/runners/models/model_run_locally.py,sha256=l5P-BbcWlDkKdOPnsmZJPxkNkY85oah_sBaW5IVOz5M,20286
70
+ clarifai/runners/models/mcp_class.py,sha256=trtChVaesNSrb-Z3hdr0sdJjX7U7TlX4EMuO00vznTA,5960
71
+ clarifai/runners/models/model_builder.py,sha256=PiqPyTGPSKsYvOQNpBzs4e1_wuEbtE-P3yEkLE4Py10,49231
72
+ clarifai/runners/models/model_class.py,sha256=OHVd0tMOXDyl9v1vWeHOmYGx_dvP77N4zlLGMyTakag,15575
73
+ clarifai/runners/models/model_run_locally.py,sha256=6-6WjEKc0ba3gAv4wOLdMs2XOzS3b-2bZHJS0wdVqJY,20088
73
74
  clarifai/runners/models/model_runner.py,sha256=SccX-RxTgruSpQaM21uMSl-z1x6fOa13fQZMQW8NNRY,7297
74
75
  clarifai/runners/models/model_servicer.py,sha256=rRd_fNEXwqiBSzTUtPI2r07EBdcCPd8tcSPHeqTe0_I,3445
76
+ clarifai/runners/models/visual_classifier_class.py,sha256=f9ZP8KFamMUdMpUG3AlL9nVCdcggy_E5n9RJY3ixR1U,2739
77
+ clarifai/runners/models/visual_detector_class.py,sha256=ky4oFAkGCKPpGPdgaOso-n6D3HcmnbKee_8hBsNiV8U,2883
75
78
  clarifai/runners/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
- clarifai/runners/utils/code_script.py,sha256=CeIhBYX-vB17ThQy5x4ObQoehYo3w4Nms5Qh1p5pTDk,10382
77
- clarifai/runners/utils/const.py,sha256=czPVidLCb2S1HbA8YbNkoDYphqr0-W7oeqrkf8LsTc4,1068
78
- clarifai/runners/utils/data_utils.py,sha256=e6aJdQf0NlOynoMUuJD8F5lHnmKMfO9JNRFClBVrovM,18836
79
- clarifai/runners/utils/loader.py,sha256=KliTvPgi_7SkN3PhOeDFDATRaKFbqRU4CxOq6Gkh9T0,10070
80
- clarifai/runners/utils/method_signatures.py,sha256=sZdHr1F9MmJSLCOR64PzVU1yZO4EqXNm5aCbh8KbBcY,19222
81
- clarifai/runners/utils/openai_convertor.py,sha256=QhbytqGU856gEFggaamZy01hhCwjiWz8ju48iubvbeI,5074
79
+ clarifai/runners/utils/code_script.py,sha256=3_zBuMKs-eKfC4rbxKf-atVMz36djKH5QvDY2Fgs6Jk,11418
80
+ clarifai/runners/utils/const.py,sha256=Q4Ps6gIEJCyTdQCfmT6PaS61WHmhT25XigV1NugWz-E,1544
81
+ clarifai/runners/utils/data_utils.py,sha256=GspFOTgUPdqSQG-Zy6lrB1V55gQhGDG3Co6AxiqAr1I,20792
82
+ clarifai/runners/utils/loader.py,sha256=K5Y8MPbIe5STw2gDnrL8KqFgKNxEo7bz-RV0ip1T4PM,10900
83
+ clarifai/runners/utils/method_signatures.py,sha256=3EqrTLxynaBC4clj23iw9fZApFDQeapCzVlre6uybbI,19152
84
+ clarifai/runners/utils/openai_convertor.py,sha256=2emAgi9YXpxlOGRw5MG9jhyUUrdDjD9Sv3mnGtwcgts,8192
82
85
  clarifai/runners/utils/serializers.py,sha256=pI7GqMTC0T3Lu_X8v8TO4RiplO-gC_49Ns37jYwsPtg,7908
83
86
  clarifai/runners/utils/url_fetcher.py,sha256=Segkvi-ktPa3-koOpUu8DNZeWOaK6G82Ya9b7_oIKwo,1778
84
87
  clarifai/runners/utils/data_types/__init__.py,sha256=iBtmPkIoLK9ew6ZiXElGt2YBBTDLEA0fmxE_eOYzvhk,478
85
- clarifai/runners/utils/data_types/data_types.py,sha256=4o2sReR4kMu8B8mLkFntNbBR4tFpfp5hi7dm2MEg5Qs,17948
88
+ clarifai/runners/utils/data_types/data_types.py,sha256=UBHTNPshr94qUs2KqkYis0VlArm23rcSG_EyO_Uetgc,19823
86
89
  clarifai/schema/search.py,sha256=o9-ct8ulLZByB3RCVwZWPgaDwdcW7cM5s-g8oyAz89s,2421
87
- clarifai/urls/helper.py,sha256=mnCWw2JcV67xWMS1Wf36lcEG1RwtDviYpYivpeRaNj8,5342
90
+ clarifai/urls/helper.py,sha256=UshKiEnBAZfMyoWiM3Xx6USXEYmXRFTd4kNpuQSQQM8,7868
88
91
  clarifai/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
92
  clarifai/utils/cli.py,sha256=7lHajIsWzyEU7jfgH1nykwYG63wcHCZ3ep7a6amWZH4,5413
90
- clarifai/utils/config.py,sha256=-mZwJEtv31pfchavgmiaNxRgwbcUhWpxJATH2hU8kwQ,4591
91
- clarifai/utils/constants.py,sha256=goxDnTuI6jtDhP2pWasMGcfd4FL3k6qUs2PE67EZOeM,1882
92
- clarifai/utils/logging.py,sha256=DY6lsr-w6t56JrPovKBe82lvmDNO0foNnx1Mz_swY3w,14653
93
+ clarifai/utils/config.py,sha256=AguQ4UPFxNwDT8hTBrdV4grQ0t4m-pW2V9XKxBWfnNg,5177
94
+ clarifai/utils/constants.py,sha256=RYfDVFpaW7V5ISIvY7uvu5nqTvQ2NEwFOd0dcCytyGk,2030
95
+ clarifai/utils/logging.py,sha256=0we53uTqUvzrulC86whu-oeWNxn1JjJL0OQ98Bwf9vo,15198
93
96
  clarifai/utils/misc.py,sha256=x7JP8oxU672Z9yAav47Y1anFiL4RD8WvlKBHMVlbyZM,3137
94
97
  clarifai/utils/model_train.py,sha256=0XSAoTkSsrwf4f-W9yw2mkXZtkal7LBLJSoi86CFCn4,9250
95
98
  clarifai/utils/protobuf.py,sha256=VMhnNsPuWQ16VarKm8BOr5zccXMe26UlrxdJxIzEZNM,6220
@@ -101,9 +104,9 @@ clarifai/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
101
104
  clarifai/workflows/export.py,sha256=Oq3RVNKvv1iH46U6oIjXa-MXWJ4sTlXr_NSfwoxr3H4,2149
102
105
  clarifai/workflows/utils.py,sha256=ESL3INcouNcLKCh-nMpfXX-YbtCzX7tz7hT57_RGQ3M,2079
103
106
  clarifai/workflows/validate.py,sha256=UhmukyHkfxiMFrPPeBdUTiCOHQT5-shqivlBYEyKTlU,2931
104
- clarifai-11.4.1.dist-info/licenses/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
105
- clarifai-11.4.1.dist-info/METADATA,sha256=0lxRlfleSaiJMEgPr4Brf-H9UNWbdVz9b1stmpRPuwo,22426
106
- clarifai-11.4.1.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
107
- clarifai-11.4.1.dist-info/entry_points.txt,sha256=X9FZ4Z-i_r2Ud1RpZ9sNIFYuu_-9fogzCMCRUD9hyX0,51
108
- clarifai-11.4.1.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
109
- clarifai-11.4.1.dist-info/RECORD,,
107
+ clarifai-11.4.3.dist-info/licenses/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
108
+ clarifai-11.4.3.dist-info/METADATA,sha256=ZtwykytAB7xvh8sEZVa84cPoTAM7nX15TQowlnejPE0,22398
109
+ clarifai-11.4.3.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
110
+ clarifai-11.4.3.dist-info/entry_points.txt,sha256=X9FZ4Z-i_r2Ud1RpZ9sNIFYuu_-9fogzCMCRUD9hyX0,51
111
+ clarifai-11.4.3.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
112
+ clarifai-11.4.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5