clarifai 11.6.5__py3-none-any.whl → 11.6.7__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.
clarifai/utils/cli.py CHANGED
@@ -4,10 +4,12 @@ import pkgutil
4
4
  import sys
5
5
  import typing as t
6
6
  from collections import defaultdict
7
+ from pathlib import Path
7
8
  from typing import OrderedDict
8
9
 
9
10
  import click
10
11
  import yaml
12
+ from google.protobuf.timestamp_pb2 import Timestamp
11
13
  from tabulate import tabulate
12
14
 
13
15
  from clarifai.utils.logging import logger
@@ -46,8 +48,24 @@ def display_co_resources(
46
48
  'USER_ID': lambda c: c.user_id,
47
49
  'DESCRIPTION': lambda c: c.description,
48
50
  },
51
+ sort_by_columns=None,
49
52
  ):
50
- """Display compute orchestration resources listing results using rich."""
53
+ """
54
+ Display compute orchestration resources listing results using rich.
55
+
56
+ :param response: Iterable of resource objects to display.
57
+ :param custom_columns: A dictionary mapping column names to extractor functions.
58
+ Defaults to ID, USER_ID, and DESCRIPTION.
59
+ :param sort_by_columns: Optional list of (column_name, order) tuples specifying sort order.
60
+ Only column names present in `custom_columns` are considered.
61
+ Order should be 'asc' or 'desc'.
62
+ :return: None. Prints the formatted table.
63
+ """
64
+ if sort_by_columns:
65
+ for column, order in reversed(sort_by_columns): # reversed for stable multi-level sort
66
+ if column in custom_columns:
67
+ reverse = order.lower() == 'desc'
68
+ response = sorted(response, key=custom_columns[column], reverse=reverse)
51
69
 
52
70
  formatter = TableFormatter(custom_columns)
53
71
  print(formatter.format(list(response), fmt="plain"))
@@ -205,28 +223,21 @@ def validate_context_auth(pat: str, user_id: str, api_base: str = None):
205
223
  logger.info("✅ Context is valid")
206
224
 
207
225
  except Exception as e:
208
- error_msg = str(e)
209
-
210
226
  # Check for common authentication errors and provide user-friendly messages
211
- if "PERMISSION_DENIED" in error_msg or "Unauthorized" in error_msg:
212
- logger.error(f"Invalid PAT token or incorrect user ID '{user_id}': {error_msg}")
213
- elif "UNAUTHENTICATED" in error_msg:
214
- logger.error(f"Invalid PAT token or user ID: {error_msg}")
215
- elif "SSL" in error_msg or "certificate" in error_msg:
216
- logger.error(f"SSL/Certificate error: {error_msg}")
217
- elif "Connection" in error_msg or "timeout" in error_msg:
218
- logger.error(f"Network connection error: {error_msg}")
219
- else:
220
- logger.error(f"❌ Validation failed: \n{error_msg}")
221
- logger.error("Please check your credentials and try again.")
227
+ logger.error(" Authentication failed. Please check your token and user ID.")
222
228
  raise click.Abort() # Exit without saving the configuration
223
229
 
224
230
 
225
- def customize_ollama_model(model_path, model_name, port, context_length):
231
+ def customize_ollama_model(
232
+ model_path, model_name=None, port=None, context_length=None, verbose=False
233
+ ):
226
234
  """Customize the Ollama model name in the cloned template files.
227
235
  Args:
228
236
  model_path: Path to the cloned model directory
229
- model_name: The model name to set (e.g., 'llama3.1', 'mistral')
237
+ model_name: The model name to set (e.g., 'llama3.1', 'mistral') - optional
238
+ port: Port for Ollama server - optional
239
+ context_length: Context length for the model - optional
240
+ verbose: Whether to enable verbose logging - optional (defaults to False)
230
241
 
231
242
  """
232
243
  model_py_path = os.path.join(model_path, "1", "model.py")
@@ -256,6 +267,12 @@ def customize_ollama_model(model_path, model_name, port, context_length):
256
267
  "context_length = '8192'", f"context_length = '{context_length}'"
257
268
  )
258
269
 
270
+ verbose_str = str(verbose)
271
+ if "VERBOSE_OLLAMA = True" in content:
272
+ content = content.replace("VERBOSE_OLLAMA = True", f"VERBOSE_OLLAMA = {verbose_str}")
273
+ elif "VERBOSE_OLLAMA = False" in content:
274
+ content = content.replace("VERBOSE_OLLAMA = False", f"VERBOSE_OLLAMA = {verbose_str}")
275
+
259
276
  # Write the modified content back to model.py
260
277
  with open(model_py_path, 'w') as file:
261
278
  file.write(content)
@@ -297,28 +314,35 @@ def _is_package_installed(package_name):
297
314
  return False
298
315
 
299
316
 
300
- def check_requirements_installed(model_path):
301
- """Check if all dependencies in requirements.txt are installed."""
302
- import re
303
- from pathlib import Path
317
+ def parse_requirements(model_path: str):
318
+ """Parse requirements.txt in the model directory and return a dictionary of dependencies."""
319
+ from packaging.requirements import Requirement
304
320
 
305
321
  requirements_path = Path(model_path) / "requirements.txt"
306
322
 
307
323
  if not requirements_path.exists():
308
324
  logger.warning(f"requirements.txt not found at {requirements_path}")
309
- return True
325
+ return []
310
326
 
311
- try:
312
- package_pattern = re.compile(r'^([a-zA-Z0-9_-]+)')
327
+ deps = {}
328
+ for line in requirements_path.read_text().splitlines():
329
+ line = line.strip()
330
+ if not line or line.startswith("#"):
331
+ continue
332
+ try:
333
+ req = Requirement(line)
334
+ deps[req.name] = str(req.specifier) if req.specifier else None
335
+ except Exception as e:
336
+ logger.warning(f"⚠️ Could not parse line: {line!r} — {e}")
337
+ return deps
338
+
339
+
340
+ def check_requirements_installed(model_path):
341
+ """Check if all dependencies in requirements.txt are installed."""
313
342
 
343
+ try:
314
344
  # Getting package name and version (for logging)
315
- requirements = [
316
- (match.group(1), pack)
317
- for line in requirements_path.read_text().splitlines()
318
- if (pack := line.strip())
319
- and not line.startswith('#')
320
- and (match := package_pattern.match(line))
321
- ]
345
+ requirements = parse_requirements(model_path)
322
346
 
323
347
  if not requirements:
324
348
  logger.info("No dependencies found in requirements.txt")
@@ -328,7 +352,7 @@ def check_requirements_installed(model_path):
328
352
 
329
353
  missing = [
330
354
  full_req
331
- for package_name, full_req in requirements
355
+ for package_name, full_req in requirements.items()
332
356
  if not _is_package_installed(package_name)
333
357
  ]
334
358
 
@@ -341,9 +365,27 @@ def check_requirements_installed(model_path):
341
365
  f"❌ {len(missing)} of {len(requirements)} required packages are missing in the current environment"
342
366
  )
343
367
  logger.error("\n".join(f" - {pkg}" for pkg in missing))
368
+ requirements_path = Path(model_path) / "requirements.txt"
344
369
  logger.warning(f"To install: pip install -r {requirements_path}")
345
370
  return False
346
371
 
347
372
  except Exception as e:
348
373
  logger.error(f"Failed to check requirements: {e}")
349
374
  return False
375
+
376
+
377
+ def convert_timestamp_to_string(timestamp: Timestamp) -> str:
378
+ """Converts a Timestamp object to a string.
379
+
380
+ Args:
381
+ timestamp (Timestamp): The Timestamp object to convert.
382
+
383
+ Returns:
384
+ str: The converted string in ISO 8601 format.
385
+ """
386
+ if not timestamp:
387
+ return ""
388
+
389
+ datetime_obj = timestamp.ToDatetime()
390
+
391
+ return datetime_obj.strftime('%Y-%m-%dT%H:%M:%SZ')
clarifai/utils/config.py CHANGED
@@ -68,6 +68,19 @@ class Context(OrderedDict):
68
68
  except KeyError as e:
69
69
  raise AttributeError(f"'{type(self).__name__}' object has no attribute '{key}'") from e
70
70
 
71
+ def get(self, key, default=None):
72
+ """Get the key from the config. You can pass a lowercase
73
+ key like "pat" and it will check if the environment variable CLARIFAI_PAT set and use that
74
+ first.
75
+ If no env var, then it checks if that env var name is in the config and use that.
76
+ If not then checks if "pat" is in the config, if not then it falls back to CLARIFAI_PAT in
77
+ the environment variables, else returns the default value.
78
+ """
79
+ try:
80
+ return self.__getattr__(key)
81
+ except AttributeError:
82
+ return default
83
+
71
84
  def __hasattr__(self, key):
72
85
  if key == "name":
73
86
  return True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarifai
3
- Version: 11.6.5
3
+ Version: 11.6.7
4
4
  Home-page: https://github.com/Clarifai/clarifai-python
5
5
  Author: Clarifai
6
6
  Author-email: support@clarifai.com
@@ -19,7 +19,7 @@ Classifier: Operating System :: OS Independent
19
19
  Requires-Python: >=3.8
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
- Requires-Dist: clarifai-grpc>=11.6.4
22
+ Requires-Dist: clarifai-grpc>=11.6.6
23
23
  Requires-Dist: clarifai-protocol>=0.0.25
24
24
  Requires-Dist: numpy>=1.22.0
25
25
  Requires-Dist: tqdm>=4.65.0
@@ -1,23 +1,23 @@
1
- clarifai/__init__.py,sha256=v1UMok1JAGjDjikTzsL5Gx86ndvD68_szNQj1A3xaVk,23
1
+ clarifai/__init__.py,sha256=vHcuCYQBbVvJPdk__Lp8UGY_w9oIIXRPc0xgnIK6beI,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
- clarifai/cli/README.md,sha256=u-7Mgg1ZrygEokXS3RJepddq3GjhkSVkdUzXvxnCoIE,2633
5
+ clarifai/cli/README.md,sha256=Rm0Sk61u7PrWQBgA6idv0R6ldJGhnVHSlIF2rVzRk8g,3428
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=rMmbjo5VIiAq35cTFb9IrNPVFBfiXU366_rv7V4ULus,8889
8
+ clarifai/cli/base.py,sha256=_nXkRu3F8s1SL1LspxUWo5MCbdq7e6gI-iYb3B0-2Oc,9605
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=bL6jiM8UMBZUG7yDPVNvrulWgV2-PfGWj3R52kyG0PI,41276
11
+ clarifai/cli/model.py,sha256=r_-loAszX8vOYlW1YI7TgNA4CFPZy4dicqtywoZ39R8,43546
12
12
  clarifai/cli/nodepool.py,sha256=H6OIdUW_EiyDUwZogzEDoYmVwEjLMsgoDlPyE7gjIuU,4245
13
- clarifai/cli/pipeline.py,sha256=smWPCK9kLCqnjTCb3w8BAeiAcowY20Bdxfk-OCzCi0I,10601
14
- clarifai/cli/pipeline_step.py,sha256=Unrq63w5rjwyhHHmRhV-enztO1HuVTnimAXltNCotQs,3814
13
+ clarifai/cli/pipeline.py,sha256=9ZWVLokXHxqXy0g1_1ACuRX20ckrzyKwnsFfuJZm6Nw,13130
14
+ clarifai/cli/pipeline_step.py,sha256=dvoC2vAsDcxOCy88VV0X42PG22_7JSu9sfBVsk-Cix4,6133
15
15
  clarifai/cli/templates/__init__.py,sha256=HbMlZuYOMyVJde73ijNAevmSRUpIttGlHdwyO4W-JOs,44
16
16
  clarifai/cli/templates/model_templates.py,sha256=q1dKF5jHhX_1g4qtiYcEbJdWQaxCv2BSEAXI4AR2JOo,9709
17
- clarifai/cli/templates/pipeline_step_templates.py,sha256=HU1BoU7wG71MviQAvyecxT_qo70XhTtPGYtoIQ-U-l0,1663
18
- clarifai/cli/templates/pipeline_templates.py,sha256=mfHrEoRxICIv00zxfgIct2IpxcMmZ6zjHG8WLF1TPcI,4409
19
- clarifai/client/__init__.py,sha256=KXvZFE9TCJf1k_GNUHCZ4icsUlKr1lz0cnBR91LuY8M,765
20
- clarifai/client/app.py,sha256=eMXFYea-bopfcQ30JuAQqdhzhEsxAB3w4vDOsXOVO6c,41445
17
+ clarifai/cli/templates/pipeline_step_templates.py,sha256=w1IJghF_4wWyEmHR1925N0hpGKocy3G7ezhxTH-0XCc,1716
18
+ clarifai/cli/templates/pipeline_templates.py,sha256=l7-0yj1aw4jVZb0xjuhc9sW9LJfG3qaGqgwt7bLURCc,4462
19
+ clarifai/client/__init__.py,sha256=MWEG_jTGn6UWbGCznsZxObJ5h65k2igD1462qID2pgI,840
20
+ clarifai/client/app.py,sha256=8_Y5esptlFSGW2WS0uly9IBop37hJVpxnhs-vBIZrtc,47205
21
21
  clarifai/client/base.py,sha256=aduMVVSPUSQ-MsDpj4yuHmCTUNbCTPt76dhRZ14euVg,10284
22
22
  clarifai/client/compute_cluster.py,sha256=q-JuBai4pKpSeDAn-P61IKyGjizX-IV-O5huWAYx5DU,10279
23
23
  clarifai/client/dataset.py,sha256=OgdpZkQ_vYmRxL8-qphcNozpvPV1bWTlte9Jv6UkKb8,35299
@@ -25,13 +25,14 @@ clarifai/client/deployment.py,sha256=QBf0tzkKBEpzNgmOEmWUJMOlVWdFEFc70Y44o8y75Gs
25
25
  clarifai/client/input.py,sha256=jpX47qwn7aUBBIEuSSLHF5jk70XaWEh0prD065c9b-E,51205
26
26
  clarifai/client/lister.py,sha256=1YEm2suNxPaJO4x9V5szgD_YX6N_00vgSO-7m0HagY8,2208
27
27
  clarifai/client/model.py,sha256=DeB-es6rp0FJQVY46oO2eR_-Ux5tTmkM_qYsN1X6WcE,90793
28
- clarifai/client/model_client.py,sha256=4gIS0mKBdiNMA1x_6Wo6H7WbfLsmQix64EpONcQjQV4,37129
28
+ clarifai/client/model_client.py,sha256=pyPg1C3gb5Q3_DXmMmOB5AeORR1IDaaM7n0LGc3ciLk,38217
29
29
  clarifai/client/module.py,sha256=jLViQYvVV3FmRN_ivvbk83uwsx7CgYGeEx4dYAr6yD4,4537
30
- clarifai/client/nodepool.py,sha256=Qjk_-GfjtdlQdR5hHh28kRENW7rLi6zNqxeFYf7dioc,16473
31
- clarifai/client/pipeline.py,sha256=Hy3qnSX1pcoi-OAtdzr-qxkRYi1CxsaUzsfS3GDtETM,14358
30
+ clarifai/client/nodepool.py,sha256=0E8-VgNMpdx2sAGotS3ZwfeUc9k3DBa3QJEJ1wKroVA,16700
31
+ clarifai/client/pipeline.py,sha256=Kawnp16iWwty4TZGDbZvU_G5PJzCXQqf50Dc-AYLaAI,14880
32
+ clarifai/client/pipeline_step.py,sha256=_R0PhVCspAQatCss-0O0O9p9CpvU_y9cSSEeUp_7cV0,2765
32
33
  clarifai/client/runner.py,sha256=5xCiqByGGscfNm0IjHelhDTx8-9l8G0C3HL-3YZogK8,2253
33
34
  clarifai/client/search.py,sha256=3LLfATrdU43a0mRNITmJV-E53bhfafZkYsbwkTtlnyU,15661
34
- clarifai/client/user.py,sha256=ssfqHAE_GOh1c4dX74HH1xC09Rv4pVWxD08PTIfSjS8,22071
35
+ clarifai/client/user.py,sha256=-D7itPC_XCMtFnsWUOMCPU5PQd8s-ER8k-RIG2V673Y,24798
35
36
  clarifai/client/workflow.py,sha256=Bqh8lAmJcSbviJebckchTxucYlU11UQEhFSov7elpsk,13417
36
37
  clarifai/client/auth/__init__.py,sha256=7EwR0NrozkAUwpUnCsqXvE_p0wqx_SelXlSpKShKJK0,136
37
38
  clarifai/client/auth/helper.py,sha256=eitq1uQBoJ1TPjsTtbJ9g7eqT3mFm9vgc4HQR1s-zNg,16283
@@ -71,7 +72,7 @@ clarifai/rag/__init__.py,sha256=wu3PzAzo7uqgrEzuaC9lY_3gj1HFiR3GU3elZIKTT5g,40
71
72
  clarifai/rag/rag.py,sha256=EG3GoFrHFCmA70Tz49_0Jo1-3WIaHSgWGHecPeErcdc,14170
72
73
  clarifai/rag/utils.py,sha256=_gVZdABuMnraCKViLruV75x0F3IpgFXN6amYSGE5_xc,4462
73
74
  clarifai/runners/__init__.py,sha256=wXLaSljH7qLeJCrZdKEnlQh2tNqTQAIZKWOu2rZ6wGs,279
74
- clarifai/runners/server.py,sha256=E7VtQcGuFYS_CIfrBIvdRVgjLwzHO9LEUpD_gtU-ye4,4873
75
+ clarifai/runners/server.py,sha256=5xX0Pj_XCKRyEfF4v8DQqvdj94DMWY75sxTetdM9dKg,6253
75
76
  clarifai/runners/dockerfile_template/Dockerfile.template,sha256=nEnIMqzhAXDbd0Ht7QQm0U7AVPIHWQD6kYnFZ0TKJUM,2428
76
77
  clarifai/runners/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
78
  clarifai/runners/models/dummy_openai_model.py,sha256=pcmAVbqTTGG4J3BLVjKfvM_SQ-GET_XexIUdLcr9Zvo,8373
@@ -87,16 +88,16 @@ clarifai/runners/models/visual_detector_class.py,sha256=ky4oFAkGCKPpGPdgaOso-n6D
87
88
  clarifai/runners/pipeline_steps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
89
  clarifai/runners/pipeline_steps/pipeline_step_builder.py,sha256=X2xWg4QM4kX3cr8JkG1RmAiVE8-XH8XbomjmXa16zmY,21333
89
90
  clarifai/runners/pipelines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- clarifai/runners/pipelines/pipeline_builder.py,sha256=z_bCwjwQPFa_1AYkorhh5r6t6r5hC5K2D8Z1LTEzIpg,12801
91
+ clarifai/runners/pipelines/pipeline_builder.py,sha256=0FBjb8l7mWlCwBsBLkHM3znNQB9HPLEOYrrE53ntjCE,13810
91
92
  clarifai/runners/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
- clarifai/runners/utils/code_script.py,sha256=dzvHKgD-3B25KtQVCnCLz9rGzvgrxi4w7DoVkd6AxaI,14312
93
+ clarifai/runners/utils/code_script.py,sha256=zZ5xjd13z2oV4CUWgMU0w6J6dRr01Kl2K-8pPyw0MiY,14346
93
94
  clarifai/runners/utils/const.py,sha256=MK7lTzzJKbOiyiUtG_jlJXfz_xNKMn5LjkQ9vjbttXE,1538
94
95
  clarifai/runners/utils/data_utils.py,sha256=HRpMYR2O0OiDpXXhOManLHTeomC4bFnXMHVAiT_12yE,20856
95
96
  clarifai/runners/utils/loader.py,sha256=K5Y8MPbIe5STw2gDnrL8KqFgKNxEo7bz-RV0ip1T4PM,10900
96
97
  clarifai/runners/utils/method_signatures.py,sha256=qdHaO8ZIgP6BBXXMhMPhcQ46dse-XMP2t4VJCNG7O3Q,18335
97
- clarifai/runners/utils/model_utils.py,sha256=eTIGOZpt0icOGfVnmYM9yO9g7CTsb_plLkzvJIH1QRo,6288
98
+ clarifai/runners/utils/model_utils.py,sha256=MCYhV_00anptIO1Qtxgzn3DlGI2UHV0ESFT3wLNcAMM,6413
98
99
  clarifai/runners/utils/openai_convertor.py,sha256=ZlIrvvfHttD_DavLvmKZdL8gNq_TQvQtZVnYamwdWz4,8248
99
- clarifai/runners/utils/pipeline_validation.py,sha256=RWWWUA3mNCXHCSNpuofMGfXfWEYe7LrYKwIc-1VFvQs,6444
100
+ clarifai/runners/utils/pipeline_validation.py,sha256=GFgFbrlS0UvGXcYTS84CyX7hIVU2CUNVQiMnCAjNfhw,6444
100
101
  clarifai/runners/utils/serializers.py,sha256=pI7GqMTC0T3Lu_X8v8TO4RiplO-gC_49Ns37jYwsPtg,7908
101
102
  clarifai/runners/utils/url_fetcher.py,sha256=pGkrpj692FEvMsV6pNbmidfYKzQV7APzjja_fwd1Aig,4792
102
103
  clarifai/runners/utils/data_types/__init__.py,sha256=iBtmPkIoLK9ew6ZiXElGt2YBBTDLEA0fmxE_eOYzvhk,478
@@ -104,8 +105,8 @@ clarifai/runners/utils/data_types/data_types.py,sha256=UBHTNPshr94qUs2KqkYis0VlA
104
105
  clarifai/schema/search.py,sha256=o9-ct8ulLZByB3RCVwZWPgaDwdcW7cM5s-g8oyAz89s,2421
105
106
  clarifai/urls/helper.py,sha256=z6LnLGgLHxD8scFtyRdxqYIRJNhxqPkfLe53UtTLUBY,11727
106
107
  clarifai/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
- clarifai/utils/cli.py,sha256=-r4qtzBQHRo3XeO4GSRwGHv5-_ndTcJ_4IkFY3eXvSg,11574
108
- clarifai/utils/config.py,sha256=jMSWYxJfp_D8eoGqz-HTdsngn5bg_1ymjLidYz6rdLA,7073
108
+ clarifai/utils/cli.py,sha256=xTenEXjhWV-lpTqlfeRO4WNakT5QszNi8GO4yH4qcMs,13184
109
+ clarifai/utils/config.py,sha256=dENYtcWW7Il5MInvIaYe0MZn0hW1fbIb0Lzk8rQ_geQ,7671
109
110
  clarifai/utils/constants.py,sha256=klcdSiVccrdJVRXL9qq08p2lWL3KerXcQOTIG6y9298,2414
110
111
  clarifai/utils/logging.py,sha256=0we53uTqUvzrulC86whu-oeWNxn1JjJL0OQ98Bwf9vo,15198
111
112
  clarifai/utils/misc.py,sha256=ld7_lls4CrjHzKchsSgJs4T-rVpUVEzRy4MDWBEQlyA,22812
@@ -119,9 +120,9 @@ clarifai/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
119
120
  clarifai/workflows/export.py,sha256=HvUYG9N_-UZoRR0-_tdGbZ950_AeBqawSppgUxQebR0,1913
120
121
  clarifai/workflows/utils.py,sha256=ESL3INcouNcLKCh-nMpfXX-YbtCzX7tz7hT57_RGQ3M,2079
121
122
  clarifai/workflows/validate.py,sha256=UhmukyHkfxiMFrPPeBdUTiCOHQT5-shqivlBYEyKTlU,2931
122
- clarifai-11.6.5.dist-info/licenses/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
123
- clarifai-11.6.5.dist-info/METADATA,sha256=2wCjPH9Fg3ojVf27yb5CBrnA2a2ZGuzEoikvnf5U4cY,22737
124
- clarifai-11.6.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
125
- clarifai-11.6.5.dist-info/entry_points.txt,sha256=X9FZ4Z-i_r2Ud1RpZ9sNIFYuu_-9fogzCMCRUD9hyX0,51
126
- clarifai-11.6.5.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
127
- clarifai-11.6.5.dist-info/RECORD,,
123
+ clarifai-11.6.7.dist-info/licenses/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
124
+ clarifai-11.6.7.dist-info/METADATA,sha256=uwUjxG1M12d67EI6GLAU9jly-li-CQr0SJcyBNoK0hc,22737
125
+ clarifai-11.6.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
126
+ clarifai-11.6.7.dist-info/entry_points.txt,sha256=X9FZ4Z-i_r2Ud1RpZ9sNIFYuu_-9fogzCMCRUD9hyX0,51
127
+ clarifai-11.6.7.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
128
+ clarifai-11.6.7.dist-info/RECORD,,