clarifai 11.0.4__tar.gz → 11.0.6__tar.gz

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 (120) hide show
  1. {clarifai-11.0.4/clarifai.egg-info → clarifai-11.0.6}/PKG-INFO +2 -4
  2. clarifai-11.0.6/clarifai/__init__.py +1 -0
  3. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/models/model_run_locally.py +48 -18
  4. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/models/model_upload.py +16 -12
  5. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/utils/const.py +1 -11
  6. {clarifai-11.0.4 → clarifai-11.0.6/clarifai.egg-info}/PKG-INFO +2 -4
  7. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai.egg-info/requires.txt +1 -3
  8. {clarifai-11.0.4 → clarifai-11.0.6}/requirements.txt +1 -3
  9. clarifai-11.0.4/clarifai/__init__.py +0 -1
  10. {clarifai-11.0.4 → clarifai-11.0.6}/LICENSE +0 -0
  11. {clarifai-11.0.4 → clarifai-11.0.6}/MANIFEST.in +0 -0
  12. {clarifai-11.0.4 → clarifai-11.0.6}/README.md +0 -0
  13. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/cli/README.md +0 -0
  14. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/cli/__init__.py +0 -0
  15. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/cli/base.py +0 -0
  16. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/cli/compute_cluster.py +0 -0
  17. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/cli/deployment.py +0 -0
  18. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/cli/model.py +0 -0
  19. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/cli/nodepool.py +0 -0
  20. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/cli.py +0 -0
  21. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/__init__.py +0 -0
  22. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/app.py +0 -0
  23. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/auth/__init__.py +0 -0
  24. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/auth/helper.py +0 -0
  25. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/auth/register.py +0 -0
  26. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/auth/stub.py +0 -0
  27. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/base.py +0 -0
  28. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/compute_cluster.py +0 -0
  29. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/dataset.py +0 -0
  30. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/deployment.py +0 -0
  31. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/input.py +0 -0
  32. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/lister.py +0 -0
  33. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/model.py +0 -0
  34. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/module.py +0 -0
  35. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/nodepool.py +0 -0
  36. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/search.py +0 -0
  37. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/user.py +0 -0
  38. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/client/workflow.py +0 -0
  39. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/constants/base.py +0 -0
  40. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/constants/dataset.py +0 -0
  41. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/constants/input.py +0 -0
  42. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/constants/model.py +0 -0
  43. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/constants/rag.py +0 -0
  44. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/constants/search.py +0 -0
  45. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/constants/workflow.py +0 -0
  46. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/__init__.py +0 -0
  47. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/export/__init__.py +0 -0
  48. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/export/inputs_annotations.py +0 -0
  49. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/__init__.py +0 -0
  50. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/base.py +0 -0
  51. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/features.py +0 -0
  52. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/image.py +0 -0
  53. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/loaders/README.md +0 -0
  54. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/loaders/__init__.py +0 -0
  55. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/loaders/coco_captions.py +0 -0
  56. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/loaders/coco_detection.py +0 -0
  57. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/loaders/imagenet_classification.py +0 -0
  58. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/loaders/xview_detection.py +0 -0
  59. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/multimodal.py +0 -0
  60. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/text.py +0 -0
  61. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/datasets/upload/utils.py +0 -0
  62. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/errors.py +0 -0
  63. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/models/__init__.py +0 -0
  64. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/models/api.py +0 -0
  65. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/modules/README.md +0 -0
  66. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/modules/__init__.py +0 -0
  67. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/modules/css.py +0 -0
  68. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/modules/pages.py +0 -0
  69. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/modules/style.css +0 -0
  70. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/rag/__init__.py +0 -0
  71. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/rag/rag.py +0 -0
  72. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/rag/utils.py +0 -0
  73. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/__init__.py +0 -0
  74. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/dockerfile_template/Dockerfile.template +0 -0
  75. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/models/__init__.py +0 -0
  76. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/models/base_typed_model.py +0 -0
  77. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/models/model_class.py +0 -0
  78. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/models/model_runner.py +0 -0
  79. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/models/model_servicer.py +0 -0
  80. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/server.py +0 -0
  81. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/utils/__init__.py +0 -0
  82. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/utils/data_handler.py +0 -0
  83. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/utils/data_utils.py +0 -0
  84. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/utils/loader.py +0 -0
  85. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/runners/utils/url_fetcher.py +0 -0
  86. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/schema/search.py +0 -0
  87. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/urls/helper.py +0 -0
  88. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/__init__.py +0 -0
  89. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/cli.py +0 -0
  90. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/constants.py +0 -0
  91. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/evaluation/__init__.py +0 -0
  92. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/evaluation/helpers.py +0 -0
  93. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/evaluation/main.py +0 -0
  94. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/evaluation/testset_annotation_parser.py +0 -0
  95. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/logging.py +0 -0
  96. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/misc.py +0 -0
  97. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/utils/model_train.py +0 -0
  98. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/versions.py +0 -0
  99. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/workflows/__init__.py +0 -0
  100. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/workflows/export.py +0 -0
  101. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/workflows/utils.py +0 -0
  102. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai/workflows/validate.py +0 -0
  103. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai.egg-info/SOURCES.txt +0 -0
  104. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai.egg-info/dependency_links.txt +0 -0
  105. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai.egg-info/entry_points.txt +0 -0
  106. {clarifai-11.0.4 → clarifai-11.0.6}/clarifai.egg-info/top_level.txt +0 -0
  107. {clarifai-11.0.4 → clarifai-11.0.6}/pyproject.toml +0 -0
  108. {clarifai-11.0.4 → clarifai-11.0.6}/setup.cfg +0 -0
  109. {clarifai-11.0.4 → clarifai-11.0.6}/setup.py +0 -0
  110. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_app.py +0 -0
  111. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_auth.py +0 -0
  112. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_data_upload.py +0 -0
  113. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_eval.py +0 -0
  114. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_misc.py +0 -0
  115. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_model_predict.py +0 -0
  116. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_model_train.py +0 -0
  117. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_modules.py +0 -0
  118. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_rag.py +0 -0
  119. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_search.py +0 -0
  120. {clarifai-11.0.4 → clarifai-11.0.6}/tests/test_stub.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: clarifai
3
- Version: 11.0.4
3
+ Version: 11.0.6
4
4
  Summary: Clarifai Python SDK
5
5
  Home-page: https://github.com/Clarifai/clarifai-python
6
6
  Author: Clarifai
@@ -20,16 +20,14 @@ Classifier: Operating System :: OS Independent
20
20
  Requires-Python: >=3.8
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: clarifai-grpc>=11.0.0
23
+ Requires-Dist: clarifai-grpc>=11.0.4
24
24
  Requires-Dist: clarifai-protocol>=0.0.14
25
25
  Requires-Dist: numpy>=1.22.0
26
26
  Requires-Dist: tqdm>=4.65.0
27
- Requires-Dist: tritonclient>=2.34.0
28
27
  Requires-Dist: rich>=13.4.2
29
28
  Requires-Dist: PyYAML>=6.0.1
30
29
  Requires-Dist: schema==0.7.5
31
30
  Requires-Dist: Pillow>=9.5.0
32
- Requires-Dist: inquirerpy==0.3.4
33
31
  Requires-Dist: tabulate>=0.9.0
34
32
  Requires-Dist: fsspec==2024.6.1
35
33
  Requires-Dist: click==8.1.7
@@ -0,0 +1 @@
1
+ __version__ = "11.0.6"
@@ -2,6 +2,7 @@ import hashlib
2
2
  import importlib.util
3
3
  import inspect
4
4
  import os
5
+ import platform
5
6
  import shutil
6
7
  import signal
7
8
  import subprocess
@@ -27,7 +28,7 @@ class ModelRunLocally:
27
28
  self.requirements_file = os.path.join(self.model_path, "requirements.txt")
28
29
 
29
30
  # ModelUploader contains multiple useful methods to interact with the model
30
- self.uploader = ModelUploader(self.model_path)
31
+ self.uploader = ModelUploader(self.model_path, download_validation_only=True)
31
32
  self.config = self.uploader.config
32
33
 
33
34
  def _requirements_hash(self):
@@ -35,6 +36,23 @@ class ModelRunLocally:
35
36
  with open(self.requirements_file, "r") as f:
36
37
  return hashlib.md5(f.read().encode('utf-8')).hexdigest()
37
38
 
39
+ def _get_env_executable(self):
40
+ """Get the python executable from the virtual environment."""
41
+ # Depending on the platform, venv scripts are placed in either "Scripts" (Windows) or "bin" (Linux/Mac)
42
+ if platform.system().lower().startswith("win"):
43
+ scripts_folder = "Scripts"
44
+ python_exe = "python.exe"
45
+ pip_exe = "pip.exe"
46
+ else:
47
+ scripts_folder = "bin"
48
+ python_exe = "python"
49
+ pip_exe = "pip"
50
+
51
+ self.python_executable = os.path.join(self.venv_dir, scripts_folder, python_exe)
52
+ self.pip_executable = os.path.join(self.venv_dir, scripts_folder, pip_exe)
53
+
54
+ return self.python_executable, self.pip_executable
55
+
38
56
  def create_temp_venv(self):
39
57
  """Create a temporary virtual environment."""
40
58
  requirements_hash = self._requirements_hash()
@@ -53,13 +71,13 @@ class ModelRunLocally:
53
71
 
54
72
  self.venv_dir = venv_dir
55
73
  self.temp_dir = temp_dir
56
- self.python_executable = os.path.join(venv_dir, "bin", "python")
74
+ self.python_executable, self.pip_executable = self._get_env_executable()
57
75
 
58
76
  return use_existing_venv
59
77
 
60
78
  def install_requirements(self):
61
79
  """Install the dependencies from requirements.txt and Clarifai."""
62
- pip_executable = os.path.join(self.venv_dir, "bin", "pip")
80
+ _, pip_executable = self._get_env_executable()
63
81
  try:
64
82
  logger.info(
65
83
  f"Installing requirements from {self.requirements_file}... in the virtual environment {self.venv_dir}"
@@ -104,8 +122,7 @@ class ModelRunLocally:
104
122
  def _build_request(self):
105
123
  """Create a mock inference request for testing the model."""
106
124
 
107
- uploader = ModelUploader(self.model_path)
108
- model_version_proto = uploader.get_model_version_proto()
125
+ model_version_proto = self.uploader.get_model_version_proto()
109
126
  model_version_proto.id = "model_version"
110
127
 
111
128
  return service_pb2.PostModelOutputsRequest(
@@ -213,12 +230,16 @@ class ModelRunLocally:
213
230
 
214
231
  def test_model(self):
215
232
  """Test the model by running it locally in the virtual environment."""
216
- command = [
217
- self.python_executable,
218
- "-c",
219
- f"import sys; sys.path.append('{os.path.dirname(os.path.abspath(__file__))}'); "
220
- f"from model_run_locally import ModelRunLocally; ModelRunLocally('{self.model_path}')._run_test()",
221
- ]
233
+
234
+ import_path = repr(os.path.dirname(os.path.abspath(__file__)))
235
+ model_path = repr(self.model_path)
236
+
237
+ command_string = (f"import sys; "
238
+ f"sys.path.append({import_path}); "
239
+ f"from model_run_locally import ModelRunLocally; "
240
+ f"ModelRunLocally({model_path})._run_test()")
241
+
242
+ command = [self.python_executable, "-c", command_string]
222
243
  process = None
223
244
  try:
224
245
  logger.info("Testing the model locally...")
@@ -335,6 +356,12 @@ class ModelRunLocally:
335
356
  logger.info(f"Docker image '{image_name}' does not exist!")
336
357
  return False
337
358
 
359
+ def _gpu_is_available(self):
360
+ """
361
+ Checks if nvidia-smi is available, indicating a GPU is likely accessible.
362
+ """
363
+ return shutil.which("nvidia-smi") is not None
364
+
338
365
  def run_docker_container(self,
339
366
  image_name,
340
367
  container_name="clarifai-model-container",
@@ -344,9 +371,9 @@ class ModelRunLocally:
344
371
  try:
345
372
  logger.info(f"Running Docker container '{container_name}' from image '{image_name}'...")
346
373
  # Base docker run command
347
- cmd = [
348
- "docker", "run", "--name", container_name, '--rm', "--gpus", "all", "--network", "host"
349
- ]
374
+ cmd = ["docker", "run", "--name", container_name, '--rm', "--network", "host"]
375
+ if self._gpu_is_available():
376
+ cmd.extend(["--gpus", "all"])
350
377
  # Add volume mappings
351
378
  cmd.extend(["-v", f"{self.model_path}:/app/model_dir/main"])
352
379
  # Add environment variables
@@ -393,9 +420,9 @@ class ModelRunLocally:
393
420
  try:
394
421
  logger.info("Testing the model inside the Docker container...")
395
422
  # Base docker run command
396
- cmd = [
397
- "docker", "run", "--name", container_name, '--rm', "--gpus", "all", "--network", "host"
398
- ]
423
+ cmd = ["docker", "run", "--name", container_name, '--rm', "--network", "host"]
424
+ if self._gpu_is_available():
425
+ cmd.extend(["--gpus", "all"])
399
426
  # update the entrypoint for testing the model
400
427
  cmd.extend(["--entrypoint", "python"])
401
428
  # Add volume mappings
@@ -502,7 +529,10 @@ def main(model_path,
502
529
  if not manager.docker_image_exists(image_name):
503
530
  manager.build_docker_image(image_name=image_name)
504
531
  try:
505
- envs = {'CLARIFAI_PAT': os.environ['CLARIFAI_PAT'], 'CLARIFAI_USER_ID': 'n/a'}
532
+ envs = {
533
+ 'CLARIFAI_PAT': os.environ['CLARIFAI_PAT'],
534
+ 'CLARIFAI_API_BASE': os.environ.get('CLARIFAI_API_BASE', 'https://api.clarifai.com')
535
+ }
506
536
  if run_model_server:
507
537
  manager.run_docker_container(
508
538
  image_name=image_name, container_name=container_name, port=port, env_vars=envs)
@@ -1,6 +1,7 @@
1
1
  import os
2
2
  import re
3
3
  import sys
4
+ import tarfile
4
5
  import time
5
6
  from string import Template
6
7
 
@@ -39,6 +40,8 @@ class ModelUploader:
39
40
  just downloading a checkpoint.
40
41
  """
41
42
  self._client = None
43
+ if not validate_api_ids: # for backwards compatibility
44
+ download_validation_only = True
42
45
  self.download_validation_only = download_validation_only
43
46
  self.folder = self._validate_folder(folder)
44
47
  self.config = self._load_config(os.path.join(self.folder, 'config.yaml'))
@@ -52,7 +55,7 @@ class ModelUploader:
52
55
  def _validate_folder(self, folder):
53
56
  if folder == ".":
54
57
  folder = "" # will getcwd() next which ends with /
55
- if not folder.startswith("/"):
58
+ if not os.path.isabs(folder):
56
59
  folder = os.path.join(os.getcwd(), folder)
57
60
  logger.info(f"Validating folder: {folder}")
58
61
  if not os.path.exists(folder):
@@ -426,14 +429,15 @@ class ModelUploader:
426
429
 
427
430
  model_version_proto = self.get_model_version_proto()
428
431
 
429
- if download_checkpoints:
430
- tar_cmd = f"tar --exclude=*~ --exclude={self.tar_file} -czvf {self.tar_file} -C {self.folder} ."
431
- else: # we don't want to send the checkpoints up even if they are in the folder.
432
- logger.info(f"Skipping {self.checkpoint_path} in the tar file that is uploaded.")
433
- tar_cmd = f"tar --exclude={self.checkpoint_suffix} --exclude=*~ --exclude={self.tar_file} -czvf {self.tar_file} -C {self.folder} ."
434
- # Tar the folder
435
- logger.debug(tar_cmd)
436
- os.system(tar_cmd)
432
+ def filter_func(tarinfo):
433
+ name = tarinfo.name
434
+ exclude = [self.tar_file, "*~"]
435
+ if not download_checkpoints:
436
+ exclude.append(self.checkpoint_suffix)
437
+ return None if any(name.endswith(ex) for ex in exclude) else tarinfo
438
+
439
+ with tarfile.open(self.tar_file, "w:gz") as tar:
440
+ tar.add(self.folder, arcname=".", filter=filter_func)
437
441
  logger.info("Tarring complete, about to start upload.")
438
442
 
439
443
  file_size = os.path.getsize(self.tar_file)
@@ -465,9 +469,9 @@ class ModelUploader:
465
469
  self.model_version_id = response.model_version_id
466
470
  logger.info(f"Created Model Version ID: {self.model_version_id}")
467
471
  logger.info(f"Full url to that version is: {self.model_url}")
468
-
469
- success = self.monitor_model_build()
470
- if success: # cleanup the tar_file if it exists
472
+ try:
473
+ self.monitor_model_build()
474
+ finally:
471
475
  if os.path.exists(self.tar_file):
472
476
  logger.info(f"Cleaning up upload file: {self.tar_file}")
473
477
  os.remove(self.tar_file)
@@ -6,27 +6,17 @@ PYTHON_BASE_IMAGE = registry + '/python-base:{python_version}'
6
6
  TORCH_BASE_IMAGE = registry + '/torch:{torch_version}-py{python_version}-cuda{cuda_version}'
7
7
 
8
8
  # List of available python base images
9
- AVAILABLE_PYTHON_IMAGES = ['3.11', '3.12', '3.13']
9
+ AVAILABLE_PYTHON_IMAGES = ['3.11', '3.12']
10
10
 
11
11
  DEFAULT_PYTHON_VERSION = 3.12
12
12
 
13
13
  # List of available torch images
14
14
  AVAILABLE_TORCH_IMAGES = [
15
- '2.2.2-py3.11-cuda121',
16
- '2.3.1-py3.11-cuda121',
17
- '2.4.0-py3.11-cuda121',
18
15
  '2.4.0-py3.11-cuda124',
19
- '2.4.1-py3.11-cuda121',
20
16
  '2.4.1-py3.11-cuda124',
21
- '2.5.1-py3.11-cuda121',
22
17
  '2.5.1-py3.11-cuda124',
23
- '2.2.2-py3.12-cuda121',
24
- '2.3.1-py3.12-cuda121',
25
- '2.4.0-py3.12-cuda121',
26
18
  '2.4.0-py3.12-cuda124',
27
- '2.4.1-py3.12-cuda121',
28
19
  '2.4.1-py3.12-cuda124',
29
- '2.5.1-py3.12-cuda121',
30
20
  '2.5.1-py3.12-cuda124',
31
21
  # '2.2.2-py3.13-cuda121',
32
22
  # '2.3.1-py3.13-cuda121',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: clarifai
3
- Version: 11.0.4
3
+ Version: 11.0.6
4
4
  Summary: Clarifai Python SDK
5
5
  Home-page: https://github.com/Clarifai/clarifai-python
6
6
  Author: Clarifai
@@ -20,16 +20,14 @@ Classifier: Operating System :: OS Independent
20
20
  Requires-Python: >=3.8
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: clarifai-grpc>=11.0.0
23
+ Requires-Dist: clarifai-grpc>=11.0.4
24
24
  Requires-Dist: clarifai-protocol>=0.0.14
25
25
  Requires-Dist: numpy>=1.22.0
26
26
  Requires-Dist: tqdm>=4.65.0
27
- Requires-Dist: tritonclient>=2.34.0
28
27
  Requires-Dist: rich>=13.4.2
29
28
  Requires-Dist: PyYAML>=6.0.1
30
29
  Requires-Dist: schema==0.7.5
31
30
  Requires-Dist: Pillow>=9.5.0
32
- Requires-Dist: inquirerpy==0.3.4
33
31
  Requires-Dist: tabulate>=0.9.0
34
32
  Requires-Dist: fsspec==2024.6.1
35
33
  Requires-Dist: click==8.1.7
@@ -1,13 +1,11 @@
1
- clarifai-grpc>=11.0.0
1
+ clarifai-grpc>=11.0.4
2
2
  clarifai-protocol>=0.0.14
3
3
  numpy>=1.22.0
4
4
  tqdm>=4.65.0
5
- tritonclient>=2.34.0
6
5
  rich>=13.4.2
7
6
  PyYAML>=6.0.1
8
7
  schema==0.7.5
9
8
  Pillow>=9.5.0
10
- inquirerpy==0.3.4
11
9
  tabulate>=0.9.0
12
10
  fsspec==2024.6.1
13
11
  click==8.1.7
@@ -1,13 +1,11 @@
1
- clarifai-grpc>=11.0.0
1
+ clarifai-grpc>=11.0.4
2
2
  clarifai-protocol>=0.0.14
3
3
  numpy>=1.22.0
4
4
  tqdm>=4.65.0
5
- tritonclient>=2.34.0
6
5
  rich>=13.4.2
7
6
  PyYAML>=6.0.1
8
7
  schema==0.7.5
9
8
  Pillow>=9.5.0
10
- inquirerpy==0.3.4
11
9
  tabulate>=0.9.0
12
10
  fsspec==2024.6.1
13
11
  click==8.1.7
@@ -1 +0,0 @@
1
- __version__ = "11.0.4"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes