clarifai 10.8.1__tar.gz → 10.8.2__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 (135) hide show
  1. {clarifai-10.8.1/clarifai.egg-info → clarifai-10.8.2}/PKG-INFO +2 -2
  2. clarifai-10.8.2/clarifai/__init__.py +1 -0
  3. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/model.py +46 -13
  4. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/constants/model.py +6 -0
  5. {clarifai-10.8.1 → clarifai-10.8.2/clarifai.egg-info}/PKG-INFO +2 -2
  6. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai.egg-info/requires.txt +1 -1
  7. {clarifai-10.8.1 → clarifai-10.8.2}/requirements.txt +1 -1
  8. clarifai-10.8.1/clarifai/__init__.py +0 -1
  9. {clarifai-10.8.1 → clarifai-10.8.2}/LICENSE +0 -0
  10. {clarifai-10.8.1 → clarifai-10.8.2}/MANIFEST.in +0 -0
  11. {clarifai-10.8.1 → clarifai-10.8.2}/README.md +0 -0
  12. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/cli.py +0 -0
  13. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/__init__.py +0 -0
  14. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/app.py +0 -0
  15. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/auth/__init__.py +0 -0
  16. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/auth/helper.py +0 -0
  17. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/auth/register.py +0 -0
  18. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/auth/stub.py +0 -0
  19. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/base.py +0 -0
  20. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/dataset.py +0 -0
  21. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/input.py +0 -0
  22. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/lister.py +0 -0
  23. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/module.py +0 -0
  24. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/search.py +0 -0
  25. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/user.py +0 -0
  26. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/client/workflow.py +0 -0
  27. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/constants/dataset.py +0 -0
  28. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/constants/input.py +0 -0
  29. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/constants/rag.py +0 -0
  30. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/constants/search.py +0 -0
  31. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/constants/workflow.py +0 -0
  32. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/__init__.py +0 -0
  33. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/export/__init__.py +0 -0
  34. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/export/inputs_annotations.py +0 -0
  35. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/__init__.py +0 -0
  36. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/base.py +0 -0
  37. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/features.py +0 -0
  38. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/image.py +0 -0
  39. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/loaders/README.md +0 -0
  40. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/loaders/__init__.py +0 -0
  41. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/loaders/coco_captions.py +0 -0
  42. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/loaders/coco_detection.py +0 -0
  43. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/loaders/imagenet_classification.py +0 -0
  44. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/loaders/xview_detection.py +0 -0
  45. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/text.py +0 -0
  46. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/datasets/upload/utils.py +0 -0
  47. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/errors.py +0 -0
  48. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/__init__.py +0 -0
  49. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/api.py +0 -0
  50. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/README.md +0 -0
  51. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/__init__.py +0 -0
  52. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/cli/__init__.py +0 -0
  53. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/cli/_utils.py +0 -0
  54. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/cli/base.py +0 -0
  55. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/cli/build.py +0 -0
  56. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/cli/clarifai_clis.py +0 -0
  57. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/cli/create.py +0 -0
  58. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/cli/example_cli.py +0 -0
  59. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/cli/login.py +0 -0
  60. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/cli/upload.py +0 -0
  61. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/constants.py +0 -0
  62. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/docs/cli.md +0 -0
  63. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/docs/concepts.md +0 -0
  64. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/docs/dependencies.md +0 -0
  65. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/docs/inference_parameters.md +0 -0
  66. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/docs/model_types.md +0 -0
  67. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/__init__.py +0 -0
  68. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/base.py +0 -0
  69. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/config.py +0 -0
  70. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/inference_parameter.py +0 -0
  71. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -0
  72. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -0
  73. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -0
  74. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -0
  75. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -0
  76. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -0
  77. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -0
  78. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -0
  79. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -0
  80. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/output.py +0 -0
  81. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/triton/__init__.py +0 -0
  82. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/triton/serializer.py +0 -0
  83. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/triton/triton_config.py +0 -0
  84. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/model_config/triton/wrappers.py +0 -0
  85. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/repo_build/__init__.py +0 -0
  86. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/repo_build/build.py +0 -0
  87. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/repo_build/static_files/_requirements.txt +0 -0
  88. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/repo_build/static_files/base_test.py +0 -0
  89. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/repo_build/static_files/inference.py +0 -0
  90. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/repo_build/static_files/sample_clarifai_config.yaml +0 -0
  91. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/repo_build/static_files/test.py +0 -0
  92. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/repo_build/static_files/triton/model.py +0 -0
  93. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/models/model_serving/utils.py +0 -0
  94. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/modules/README.md +0 -0
  95. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/modules/__init__.py +0 -0
  96. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/modules/css.py +0 -0
  97. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/modules/pages.py +0 -0
  98. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/modules/style.css +0 -0
  99. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/rag/__init__.py +0 -0
  100. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/rag/rag.py +0 -0
  101. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/rag/utils.py +0 -0
  102. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/schema/search.py +0 -0
  103. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/urls/helper.py +0 -0
  104. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/utils/__init__.py +0 -0
  105. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/utils/constants.py +0 -0
  106. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/utils/evaluation/__init__.py +0 -0
  107. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/utils/evaluation/helpers.py +0 -0
  108. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/utils/evaluation/main.py +0 -0
  109. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/utils/evaluation/testset_annotation_parser.py +0 -0
  110. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/utils/logging.py +0 -0
  111. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/utils/misc.py +0 -0
  112. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/utils/model_train.py +0 -0
  113. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/versions.py +0 -0
  114. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/workflows/__init__.py +0 -0
  115. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/workflows/export.py +0 -0
  116. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/workflows/utils.py +0 -0
  117. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai/workflows/validate.py +0 -0
  118. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai.egg-info/SOURCES.txt +0 -0
  119. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai.egg-info/dependency_links.txt +0 -0
  120. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai.egg-info/entry_points.txt +0 -0
  121. {clarifai-10.8.1 → clarifai-10.8.2}/clarifai.egg-info/top_level.txt +0 -0
  122. {clarifai-10.8.1 → clarifai-10.8.2}/pyproject.toml +0 -0
  123. {clarifai-10.8.1 → clarifai-10.8.2}/setup.cfg +0 -0
  124. {clarifai-10.8.1 → clarifai-10.8.2}/setup.py +0 -0
  125. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_app.py +0 -0
  126. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_auth.py +0 -0
  127. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_data_upload.py +0 -0
  128. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_eval.py +0 -0
  129. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_misc.py +0 -0
  130. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_model_predict.py +0 -0
  131. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_model_train.py +0 -0
  132. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_modules.py +0 -0
  133. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_rag.py +0 -0
  134. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_search.py +0 -0
  135. {clarifai-10.8.1 → clarifai-10.8.2}/tests/test_stub.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: clarifai
3
- Version: 10.8.1
3
+ Version: 10.8.2
4
4
  Summary: Clarifai Python SDK
5
5
  Home-page: https://github.com/Clarifai/clarifai-python
6
6
  Author: Clarifai
@@ -20,7 +20,7 @@ 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>=10.8.3
23
+ Requires-Dist: clarifai-grpc>=10.8.6
24
24
  Requires-Dist: numpy>=1.22.0
25
25
  Requires-Dist: tqdm>=4.65.0
26
26
  Requires-Dist: tritonclient>=2.34.0
@@ -0,0 +1 @@
1
+ __version__ = "10.8.2"
@@ -18,8 +18,9 @@ from clarifai.client.base import BaseClient
18
18
  from clarifai.client.dataset import Dataset
19
19
  from clarifai.client.input import Inputs
20
20
  from clarifai.client.lister import Lister
21
- from clarifai.constants.model import (MAX_MODEL_PREDICT_INPUTS, MODEL_EXPORT_TIMEOUT,
22
- TRAINABLE_MODEL_TYPES)
21
+ from clarifai.constants.model import (CHUNK_SIZE, MAX_CHUNK_SIZE, MAX_MODEL_PREDICT_INPUTS,
22
+ MAX_RANGE_SIZE, MIN_CHUNK_SIZE, MIN_RANGE_SIZE,
23
+ MODEL_EXPORT_TIMEOUT, RANGE_SIZE, TRAINABLE_MODEL_TYPES)
23
24
  from clarifai.errors import UserError
24
25
  from clarifai.urls.helper import ClarifaiUrlHelper
25
26
  from clarifai.utils.logging import get_logger
@@ -1296,20 +1297,52 @@ class Model(Lister, BaseClient):
1296
1297
  model_export_url = get_model_export_response.export.url
1297
1298
  model_export_file_size = get_model_export_response.export.size
1298
1299
 
1299
- session = requests.Session()
1300
- retries = Retry(total=10, backoff_factor=1, status_forcelist=[500, 502, 503, 504])
1301
- session.mount('https://', HTTPAdapter(max_retries=retries))
1302
- session.headers.update({'Authorization': self.metadata[0][1]})
1303
- response = session.get(model_export_url, stream=True)
1304
- response.raise_for_status()
1305
-
1306
1300
  with open(local_filepath, 'wb') as f:
1307
1301
  progress = tqdm(
1308
1302
  total=model_export_file_size, unit='B', unit_scale=True, desc="Exporting model")
1309
- for chunk in response.iter_content(chunk_size=8192):
1310
- f.write(chunk)
1311
- progress.update(len(chunk))
1312
- progress.close()
1303
+ downloaded_size = 0
1304
+ range_size = RANGE_SIZE
1305
+ chunk_size = CHUNK_SIZE
1306
+ retry = False
1307
+ retry_count = 0
1308
+ while downloaded_size < model_export_file_size:
1309
+ if downloaded_size + range_size >= model_export_file_size:
1310
+ range_header = f"bytes={downloaded_size}-"
1311
+ else:
1312
+ range_header = f"bytes={downloaded_size}-{(downloaded_size+range_size-1)}"
1313
+ try:
1314
+ session = requests.Session()
1315
+ retries = Retry(total=5, backoff_factor=0.1, status_forcelist=[500, 502, 503, 504])
1316
+ session.mount('https://', HTTPAdapter(max_retries=retries))
1317
+ session.headers.update({'Authorization': self.metadata[0][1], 'Range': range_header})
1318
+ response = session.get(model_export_url, stream=True)
1319
+ response.raise_for_status()
1320
+
1321
+ for chunk in response.iter_content(chunk_size=chunk_size):
1322
+ f.write(chunk)
1323
+ progress.update(len(chunk))
1324
+ f.flush()
1325
+ os.fsync(f.fileno())
1326
+ downloaded_size += range_size
1327
+ if not retry:
1328
+ range_size = (
1329
+ range_size * 2) if (range_size * 2) < MAX_RANGE_SIZE else MAX_RANGE_SIZE
1330
+ chunk_size = (
1331
+ chunk_size * 2) if (chunk_size * 2) < MAX_CHUNK_SIZE else MAX_CHUNK_SIZE
1332
+ except Exception as e:
1333
+ self.logger.error(f"Error downloading model: {e}")
1334
+ range_size = (
1335
+ range_size // 2) if (range_size // 2) > MIN_RANGE_SIZE else MIN_RANGE_SIZE
1336
+ chunk_size = (
1337
+ chunk_size // 2) if (chunk_size // 2) > MIN_CHUNK_SIZE else MIN_CHUNK_SIZE
1338
+ retry = True
1339
+ retry_count += 1
1340
+ f.seek(downloaded_size)
1341
+ progress.reset(total=model_export_file_size)
1342
+ progress.update(downloaded_size)
1343
+ if retry_count > 5:
1344
+ break
1345
+ progress.close()
1313
1346
 
1314
1347
  self.logger.info(
1315
1348
  f"Model ID {self.id} with version {self.model_info.model_version.id} exported successfully to {export_dir}/model.tar"
@@ -4,3 +4,9 @@ TRAINABLE_MODEL_TYPES = [
4
4
  ]
5
5
  MAX_MODEL_PREDICT_INPUTS = 128
6
6
  MODEL_EXPORT_TIMEOUT = 1800
7
+ MIN_RANGE_SIZE = 4194304 # 4MB
8
+ MAX_RANGE_SIZE = 314572800 # 300MB
9
+ MIN_CHUNK_SIZE = 131072 # 128KB
10
+ MAX_CHUNK_SIZE = 10485760 # 10MB
11
+ RANGE_SIZE = 31457280 # 30MB
12
+ CHUNK_SIZE = 1048576 # 1MB
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: clarifai
3
- Version: 10.8.1
3
+ Version: 10.8.2
4
4
  Summary: Clarifai Python SDK
5
5
  Home-page: https://github.com/Clarifai/clarifai-python
6
6
  Author: Clarifai
@@ -20,7 +20,7 @@ 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>=10.8.3
23
+ Requires-Dist: clarifai-grpc>=10.8.6
24
24
  Requires-Dist: numpy>=1.22.0
25
25
  Requires-Dist: tqdm>=4.65.0
26
26
  Requires-Dist: tritonclient>=2.34.0
@@ -1,4 +1,4 @@
1
- clarifai-grpc>=10.8.3
1
+ clarifai-grpc>=10.8.6
2
2
  numpy>=1.22.0
3
3
  tqdm>=4.65.0
4
4
  tritonclient>=2.34.0
@@ -1,4 +1,4 @@
1
- clarifai-grpc>=10.8.3
1
+ clarifai-grpc>=10.8.6
2
2
  numpy>=1.22.0
3
3
  tqdm>=4.65.0
4
4
  tritonclient>=2.34.0
@@ -1 +0,0 @@
1
- __version__ = "10.8.1"
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