clarifai 11.5.3rc2__tar.gz → 11.5.4__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 (312) hide show
  1. {clarifai-11.5.3rc2/clarifai.egg-info → clarifai-11.5.4}/PKG-INFO +1 -1
  2. clarifai-11.5.4/clarifai/__init__.py +1 -0
  3. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/model_runner.py +31 -5
  4. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/model_servicer.py +26 -3
  5. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/data_types/data_types.py +5 -22
  6. clarifai-11.5.4/clarifai/runners/utils/url_fetcher.py +94 -0
  7. {clarifai-11.5.3rc2 → clarifai-11.5.4/clarifai.egg-info}/PKG-INFO +1 -1
  8. clarifai-11.5.4/clarifai.egg-info/SOURCES.txt +145 -0
  9. clarifai-11.5.3rc2/clarifai/__init__.py +0 -1
  10. clarifai-11.5.3rc2/clarifai/__pycache__/__init__.cpython-312.pyc +0 -0
  11. clarifai-11.5.3rc2/clarifai/__pycache__/__init__.cpython-38.pyc +0 -0
  12. clarifai-11.5.3rc2/clarifai/__pycache__/__init__.cpython-39.pyc +0 -0
  13. clarifai-11.5.3rc2/clarifai/__pycache__/errors.cpython-312.pyc +0 -0
  14. clarifai-11.5.3rc2/clarifai/__pycache__/errors.cpython-38.pyc +0 -0
  15. clarifai-11.5.3rc2/clarifai/__pycache__/errors.cpython-39.pyc +0 -0
  16. clarifai-11.5.3rc2/clarifai/__pycache__/versions.cpython-312.pyc +0 -0
  17. clarifai-11.5.3rc2/clarifai/__pycache__/versions.cpython-38.pyc +0 -0
  18. clarifai-11.5.3rc2/clarifai/__pycache__/versions.cpython-39.pyc +0 -0
  19. clarifai-11.5.3rc2/clarifai/client/__pycache__/__init__.cpython-312.pyc +0 -0
  20. clarifai-11.5.3rc2/clarifai/client/__pycache__/__init__.cpython-38.pyc +0 -0
  21. clarifai-11.5.3rc2/clarifai/client/__pycache__/__init__.cpython-39.pyc +0 -0
  22. clarifai-11.5.3rc2/clarifai/client/__pycache__/app.cpython-312.pyc +0 -0
  23. clarifai-11.5.3rc2/clarifai/client/__pycache__/app.cpython-38.pyc +0 -0
  24. clarifai-11.5.3rc2/clarifai/client/__pycache__/app.cpython-39.pyc +0 -0
  25. clarifai-11.5.3rc2/clarifai/client/__pycache__/base.cpython-312.pyc +0 -0
  26. clarifai-11.5.3rc2/clarifai/client/__pycache__/base.cpython-38.pyc +0 -0
  27. clarifai-11.5.3rc2/clarifai/client/__pycache__/base.cpython-39.pyc +0 -0
  28. clarifai-11.5.3rc2/clarifai/client/__pycache__/compute_cluster.cpython-312.pyc +0 -0
  29. clarifai-11.5.3rc2/clarifai/client/__pycache__/compute_cluster.cpython-38.pyc +0 -0
  30. clarifai-11.5.3rc2/clarifai/client/__pycache__/compute_cluster.cpython-39.pyc +0 -0
  31. clarifai-11.5.3rc2/clarifai/client/__pycache__/dataset.cpython-312.pyc +0 -0
  32. clarifai-11.5.3rc2/clarifai/client/__pycache__/dataset.cpython-38.pyc +0 -0
  33. clarifai-11.5.3rc2/clarifai/client/__pycache__/dataset.cpython-39.pyc +0 -0
  34. clarifai-11.5.3rc2/clarifai/client/__pycache__/deployment.cpython-312.pyc +0 -0
  35. clarifai-11.5.3rc2/clarifai/client/__pycache__/deployment.cpython-38.pyc +0 -0
  36. clarifai-11.5.3rc2/clarifai/client/__pycache__/deployment.cpython-39.pyc +0 -0
  37. clarifai-11.5.3rc2/clarifai/client/__pycache__/input.cpython-312.pyc +0 -0
  38. clarifai-11.5.3rc2/clarifai/client/__pycache__/input.cpython-38.pyc +0 -0
  39. clarifai-11.5.3rc2/clarifai/client/__pycache__/input.cpython-39.pyc +0 -0
  40. clarifai-11.5.3rc2/clarifai/client/__pycache__/lister.cpython-312.pyc +0 -0
  41. clarifai-11.5.3rc2/clarifai/client/__pycache__/lister.cpython-38.pyc +0 -0
  42. clarifai-11.5.3rc2/clarifai/client/__pycache__/lister.cpython-39.pyc +0 -0
  43. clarifai-11.5.3rc2/clarifai/client/__pycache__/model.cpython-312.pyc +0 -0
  44. clarifai-11.5.3rc2/clarifai/client/__pycache__/model.cpython-38.pyc +0 -0
  45. clarifai-11.5.3rc2/clarifai/client/__pycache__/model.cpython-39.pyc +0 -0
  46. clarifai-11.5.3rc2/clarifai/client/__pycache__/model_client.cpython-39.pyc +0 -0
  47. clarifai-11.5.3rc2/clarifai/client/__pycache__/module.cpython-312.pyc +0 -0
  48. clarifai-11.5.3rc2/clarifai/client/__pycache__/module.cpython-38.pyc +0 -0
  49. clarifai-11.5.3rc2/clarifai/client/__pycache__/module.cpython-39.pyc +0 -0
  50. clarifai-11.5.3rc2/clarifai/client/__pycache__/nodepool.cpython-312.pyc +0 -0
  51. clarifai-11.5.3rc2/clarifai/client/__pycache__/nodepool.cpython-38.pyc +0 -0
  52. clarifai-11.5.3rc2/clarifai/client/__pycache__/nodepool.cpython-39.pyc +0 -0
  53. clarifai-11.5.3rc2/clarifai/client/__pycache__/runner.cpython-39.pyc +0 -0
  54. clarifai-11.5.3rc2/clarifai/client/__pycache__/search.cpython-312.pyc +0 -0
  55. clarifai-11.5.3rc2/clarifai/client/__pycache__/search.cpython-38.pyc +0 -0
  56. clarifai-11.5.3rc2/clarifai/client/__pycache__/search.cpython-39.pyc +0 -0
  57. clarifai-11.5.3rc2/clarifai/client/__pycache__/user.cpython-312.pyc +0 -0
  58. clarifai-11.5.3rc2/clarifai/client/__pycache__/user.cpython-38.pyc +0 -0
  59. clarifai-11.5.3rc2/clarifai/client/__pycache__/user.cpython-39.pyc +0 -0
  60. clarifai-11.5.3rc2/clarifai/client/__pycache__/workflow.cpython-312.pyc +0 -0
  61. clarifai-11.5.3rc2/clarifai/client/__pycache__/workflow.cpython-38.pyc +0 -0
  62. clarifai-11.5.3rc2/clarifai/client/__pycache__/workflow.cpython-39.pyc +0 -0
  63. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/__init__.cpython-312.pyc +0 -0
  64. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/__init__.cpython-38.pyc +0 -0
  65. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/__init__.cpython-39.pyc +0 -0
  66. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/helper.cpython-312.pyc +0 -0
  67. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/helper.cpython-38.pyc +0 -0
  68. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/helper.cpython-39.pyc +0 -0
  69. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/register.cpython-312.pyc +0 -0
  70. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/register.cpython-38.pyc +0 -0
  71. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/register.cpython-39.pyc +0 -0
  72. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/stub.cpython-312.pyc +0 -0
  73. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/stub.cpython-38.pyc +0 -0
  74. clarifai-11.5.3rc2/clarifai/client/auth/__pycache__/stub.cpython-39.pyc +0 -0
  75. clarifai-11.5.3rc2/clarifai/constants/__pycache__/base.cpython-312.pyc +0 -0
  76. clarifai-11.5.3rc2/clarifai/constants/__pycache__/base.cpython-38.pyc +0 -0
  77. clarifai-11.5.3rc2/clarifai/constants/__pycache__/base.cpython-39.pyc +0 -0
  78. clarifai-11.5.3rc2/clarifai/constants/__pycache__/dataset.cpython-312.pyc +0 -0
  79. clarifai-11.5.3rc2/clarifai/constants/__pycache__/dataset.cpython-38.pyc +0 -0
  80. clarifai-11.5.3rc2/clarifai/constants/__pycache__/dataset.cpython-39.pyc +0 -0
  81. clarifai-11.5.3rc2/clarifai/constants/__pycache__/input.cpython-312.pyc +0 -0
  82. clarifai-11.5.3rc2/clarifai/constants/__pycache__/input.cpython-38.pyc +0 -0
  83. clarifai-11.5.3rc2/clarifai/constants/__pycache__/input.cpython-39.pyc +0 -0
  84. clarifai-11.5.3rc2/clarifai/constants/__pycache__/model.cpython-312.pyc +0 -0
  85. clarifai-11.5.3rc2/clarifai/constants/__pycache__/model.cpython-38.pyc +0 -0
  86. clarifai-11.5.3rc2/clarifai/constants/__pycache__/model.cpython-39.pyc +0 -0
  87. clarifai-11.5.3rc2/clarifai/constants/__pycache__/search.cpython-312.pyc +0 -0
  88. clarifai-11.5.3rc2/clarifai/constants/__pycache__/search.cpython-38.pyc +0 -0
  89. clarifai-11.5.3rc2/clarifai/constants/__pycache__/search.cpython-39.pyc +0 -0
  90. clarifai-11.5.3rc2/clarifai/constants/__pycache__/workflow.cpython-312.pyc +0 -0
  91. clarifai-11.5.3rc2/clarifai/constants/__pycache__/workflow.cpython-38.pyc +0 -0
  92. clarifai-11.5.3rc2/clarifai/constants/__pycache__/workflow.cpython-39.pyc +0 -0
  93. clarifai-11.5.3rc2/clarifai/datasets/__pycache__/__init__.cpython-312.pyc +0 -0
  94. clarifai-11.5.3rc2/clarifai/datasets/__pycache__/__init__.cpython-38.pyc +0 -0
  95. clarifai-11.5.3rc2/clarifai/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
  96. clarifai-11.5.3rc2/clarifai/datasets/export/__pycache__/__init__.cpython-312.pyc +0 -0
  97. clarifai-11.5.3rc2/clarifai/datasets/export/__pycache__/__init__.cpython-38.pyc +0 -0
  98. clarifai-11.5.3rc2/clarifai/datasets/export/__pycache__/__init__.cpython-39.pyc +0 -0
  99. clarifai-11.5.3rc2/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-312.pyc +0 -0
  100. clarifai-11.5.3rc2/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-38.pyc +0 -0
  101. clarifai-11.5.3rc2/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-39.pyc +0 -0
  102. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/__init__.cpython-312.pyc +0 -0
  103. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/__init__.cpython-38.pyc +0 -0
  104. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/__init__.cpython-39.pyc +0 -0
  105. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/base.cpython-312.pyc +0 -0
  106. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/base.cpython-38.pyc +0 -0
  107. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/base.cpython-39.pyc +0 -0
  108. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/features.cpython-312.pyc +0 -0
  109. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/features.cpython-38.pyc +0 -0
  110. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/features.cpython-39.pyc +0 -0
  111. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/image.cpython-312.pyc +0 -0
  112. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/image.cpython-38.pyc +0 -0
  113. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/image.cpython-39.pyc +0 -0
  114. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/multimodal.cpython-312.pyc +0 -0
  115. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/multimodal.cpython-38.pyc +0 -0
  116. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/multimodal.cpython-39.pyc +0 -0
  117. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/text.cpython-312.pyc +0 -0
  118. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/text.cpython-38.pyc +0 -0
  119. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/text.cpython-39.pyc +0 -0
  120. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/utils.cpython-312.pyc +0 -0
  121. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/utils.cpython-38.pyc +0 -0
  122. clarifai-11.5.3rc2/clarifai/datasets/upload/__pycache__/utils.cpython-39.pyc +0 -0
  123. clarifai-11.5.3rc2/clarifai/runners/__pycache__/__init__.cpython-39.pyc +0 -0
  124. clarifai-11.5.3rc2/clarifai/runners/models/__pycache__/__init__.cpython-39.pyc +0 -0
  125. clarifai-11.5.3rc2/clarifai/runners/models/__pycache__/mcp_class.cpython-39.pyc +0 -0
  126. clarifai-11.5.3rc2/clarifai/runners/models/__pycache__/model_class.cpython-39.pyc +0 -0
  127. clarifai-11.5.3rc2/clarifai/runners/models/__pycache__/model_runner.cpython-39.pyc +0 -0
  128. clarifai-11.5.3rc2/clarifai/runners/models/__pycache__/openai_class.cpython-39.pyc +0 -0
  129. clarifai-11.5.3rc2/clarifai/runners/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  130. clarifai-11.5.3rc2/clarifai/runners/utils/__pycache__/code_script.cpython-39.pyc +0 -0
  131. clarifai-11.5.3rc2/clarifai/runners/utils/__pycache__/data_utils.cpython-39.pyc +0 -0
  132. clarifai-11.5.3rc2/clarifai/runners/utils/__pycache__/method_signatures.cpython-39.pyc +0 -0
  133. clarifai-11.5.3rc2/clarifai/runners/utils/__pycache__/openai_convertor.cpython-39.pyc +0 -0
  134. clarifai-11.5.3rc2/clarifai/runners/utils/__pycache__/serializers.cpython-39.pyc +0 -0
  135. clarifai-11.5.3rc2/clarifai/runners/utils/__pycache__/url_fetcher.cpython-39.pyc +0 -0
  136. clarifai-11.5.3rc2/clarifai/runners/utils/data_types/__pycache__/__init__.cpython-39.pyc +0 -0
  137. clarifai-11.5.3rc2/clarifai/runners/utils/data_types/__pycache__/data_types.cpython-39.pyc +0 -0
  138. clarifai-11.5.3rc2/clarifai/runners/utils/url_fetcher.py +0 -49
  139. clarifai-11.5.3rc2/clarifai/schema/__pycache__/search.cpython-312.pyc +0 -0
  140. clarifai-11.5.3rc2/clarifai/schema/__pycache__/search.cpython-38.pyc +0 -0
  141. clarifai-11.5.3rc2/clarifai/schema/__pycache__/search.cpython-39.pyc +0 -0
  142. clarifai-11.5.3rc2/clarifai/urls/__pycache__/helper.cpython-312.pyc +0 -0
  143. clarifai-11.5.3rc2/clarifai/urls/__pycache__/helper.cpython-38.pyc +0 -0
  144. clarifai-11.5.3rc2/clarifai/urls/__pycache__/helper.cpython-39.pyc +0 -0
  145. clarifai-11.5.3rc2/clarifai/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  146. clarifai-11.5.3rc2/clarifai/utils/__pycache__/__init__.cpython-38.pyc +0 -0
  147. clarifai-11.5.3rc2/clarifai/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  148. clarifai-11.5.3rc2/clarifai/utils/__pycache__/constants.cpython-312.pyc +0 -0
  149. clarifai-11.5.3rc2/clarifai/utils/__pycache__/constants.cpython-38.pyc +0 -0
  150. clarifai-11.5.3rc2/clarifai/utils/__pycache__/constants.cpython-39.pyc +0 -0
  151. clarifai-11.5.3rc2/clarifai/utils/__pycache__/logging.cpython-312.pyc +0 -0
  152. clarifai-11.5.3rc2/clarifai/utils/__pycache__/logging.cpython-38.pyc +0 -0
  153. clarifai-11.5.3rc2/clarifai/utils/__pycache__/logging.cpython-39.pyc +0 -0
  154. clarifai-11.5.3rc2/clarifai/utils/__pycache__/misc.cpython-312.pyc +0 -0
  155. clarifai-11.5.3rc2/clarifai/utils/__pycache__/misc.cpython-38.pyc +0 -0
  156. clarifai-11.5.3rc2/clarifai/utils/__pycache__/misc.cpython-39.pyc +0 -0
  157. clarifai-11.5.3rc2/clarifai/utils/__pycache__/model_train.cpython-312.pyc +0 -0
  158. clarifai-11.5.3rc2/clarifai/utils/__pycache__/model_train.cpython-38.pyc +0 -0
  159. clarifai-11.5.3rc2/clarifai/utils/__pycache__/model_train.cpython-39.pyc +0 -0
  160. clarifai-11.5.3rc2/clarifai/utils/__pycache__/protobuf.cpython-39.pyc +0 -0
  161. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/__init__.cpython-312.pyc +0 -0
  162. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/__init__.cpython-38.pyc +0 -0
  163. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/__init__.cpython-39.pyc +0 -0
  164. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/export.cpython-312.pyc +0 -0
  165. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/export.cpython-38.pyc +0 -0
  166. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/export.cpython-39.pyc +0 -0
  167. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/utils.cpython-312.pyc +0 -0
  168. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/utils.cpython-38.pyc +0 -0
  169. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/utils.cpython-39.pyc +0 -0
  170. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/validate.cpython-312.pyc +0 -0
  171. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/validate.cpython-38.pyc +0 -0
  172. clarifai-11.5.3rc2/clarifai/workflows/__pycache__/validate.cpython-39.pyc +0 -0
  173. clarifai-11.5.3rc2/clarifai.egg-info/SOURCES.txt +0 -307
  174. {clarifai-11.5.3rc2 → clarifai-11.5.4}/LICENSE +0 -0
  175. {clarifai-11.5.3rc2 → clarifai-11.5.4}/MANIFEST.in +0 -0
  176. {clarifai-11.5.3rc2 → clarifai-11.5.4}/README.md +0 -0
  177. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/README.md +0 -0
  178. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/__init__.py +0 -0
  179. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/__main__.py +0 -0
  180. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/base.py +0 -0
  181. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/compute_cluster.py +0 -0
  182. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/deployment.py +0 -0
  183. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/model.py +0 -0
  184. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/nodepool.py +0 -0
  185. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/pipeline.py +0 -0
  186. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/pipeline_step.py +0 -0
  187. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/templates/__init__.py +0 -0
  188. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/templates/model_templates.py +0 -0
  189. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/templates/pipeline_step_templates.py +0 -0
  190. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli/templates/pipeline_templates.py +0 -0
  191. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/cli.py +0 -0
  192. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/__init__.py +0 -0
  193. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/app.py +0 -0
  194. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/auth/__init__.py +0 -0
  195. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/auth/helper.py +0 -0
  196. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/auth/register.py +0 -0
  197. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/auth/stub.py +0 -0
  198. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/base.py +0 -0
  199. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/compute_cluster.py +0 -0
  200. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/dataset.py +0 -0
  201. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/deployment.py +0 -0
  202. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/input.py +0 -0
  203. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/lister.py +0 -0
  204. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/model.py +0 -0
  205. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/model_client.py +0 -0
  206. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/module.py +0 -0
  207. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/nodepool.py +0 -0
  208. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/runner.py +0 -0
  209. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/search.py +0 -0
  210. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/user.py +0 -0
  211. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/client/workflow.py +0 -0
  212. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/constants/base.py +0 -0
  213. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/constants/dataset.py +0 -0
  214. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/constants/input.py +0 -0
  215. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/constants/model.py +0 -0
  216. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/constants/rag.py +0 -0
  217. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/constants/search.py +0 -0
  218. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/constants/workflow.py +0 -0
  219. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/__init__.py +0 -0
  220. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/export/__init__.py +0 -0
  221. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/export/inputs_annotations.py +0 -0
  222. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/__init__.py +0 -0
  223. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/base.py +0 -0
  224. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/features.py +0 -0
  225. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/image.py +0 -0
  226. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/loaders/README.md +0 -0
  227. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/loaders/__init__.py +0 -0
  228. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/loaders/coco_captions.py +0 -0
  229. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/loaders/coco_detection.py +0 -0
  230. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/loaders/imagenet_classification.py +0 -0
  231. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/loaders/xview_detection.py +0 -0
  232. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/multimodal.py +0 -0
  233. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/text.py +0 -0
  234. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/datasets/upload/utils.py +0 -0
  235. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/errors.py +0 -0
  236. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/models/__init__.py +0 -0
  237. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/models/api.py +0 -0
  238. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/modules/README.md +0 -0
  239. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/modules/__init__.py +0 -0
  240. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/modules/css.py +0 -0
  241. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/modules/pages.py +0 -0
  242. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/modules/style.css +0 -0
  243. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/rag/__init__.py +0 -0
  244. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/rag/rag.py +0 -0
  245. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/rag/utils.py +0 -0
  246. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/__init__.py +0 -0
  247. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/dockerfile_template/Dockerfile.template +0 -0
  248. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/__init__.py +0 -0
  249. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/dummy_openai_model.py +0 -0
  250. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/mcp_class.py +0 -0
  251. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/model_builder.py +0 -0
  252. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/model_class.py +0 -0
  253. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/model_run_locally.py +0 -0
  254. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/openai_class.py +0 -0
  255. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/visual_classifier_class.py +0 -0
  256. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/models/visual_detector_class.py +0 -0
  257. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/pipeline_steps/__init__.py +0 -0
  258. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/pipeline_steps/pipeline_step_builder.py +0 -0
  259. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/pipelines/__init__.py +0 -0
  260. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/pipelines/pipeline_builder.py +0 -0
  261. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/server.py +0 -0
  262. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/__init__.py +0 -0
  263. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/code_script.py +0 -0
  264. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/const.py +0 -0
  265. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/data_types/__init__.py +0 -0
  266. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/data_utils.py +0 -0
  267. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/loader.py +0 -0
  268. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/method_signatures.py +0 -0
  269. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/model_utils.py +0 -0
  270. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/openai_convertor.py +0 -0
  271. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/pipeline_validation.py +0 -0
  272. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/runners/utils/serializers.py +0 -0
  273. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/schema/search.py +0 -0
  274. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/urls/helper.py +0 -0
  275. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/__init__.py +0 -0
  276. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/cli.py +0 -0
  277. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/config.py +0 -0
  278. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/constants.py +0 -0
  279. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/evaluation/__init__.py +0 -0
  280. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/evaluation/helpers.py +0 -0
  281. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/evaluation/main.py +0 -0
  282. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/evaluation/testset_annotation_parser.py +0 -0
  283. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/logging.py +0 -0
  284. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/misc.py +0 -0
  285. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/model_train.py +0 -0
  286. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/utils/protobuf.py +0 -0
  287. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/versions.py +0 -0
  288. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/workflows/__init__.py +0 -0
  289. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/workflows/export.py +0 -0
  290. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/workflows/utils.py +0 -0
  291. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai/workflows/validate.py +0 -0
  292. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai.egg-info/dependency_links.txt +0 -0
  293. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai.egg-info/entry_points.txt +0 -0
  294. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai.egg-info/requires.txt +0 -0
  295. {clarifai-11.5.3rc2 → clarifai-11.5.4}/clarifai.egg-info/top_level.txt +0 -0
  296. {clarifai-11.5.3rc2 → clarifai-11.5.4}/pyproject.toml +0 -0
  297. {clarifai-11.5.3rc2 → clarifai-11.5.4}/requirements.txt +0 -0
  298. {clarifai-11.5.3rc2 → clarifai-11.5.4}/setup.cfg +0 -0
  299. {clarifai-11.5.3rc2 → clarifai-11.5.4}/setup.py +0 -0
  300. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_app.py +0 -0
  301. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_async_stub.py +0 -0
  302. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_auth.py +0 -0
  303. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_data_upload.py +0 -0
  304. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_eval.py +0 -0
  305. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_list_models.py +0 -0
  306. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_misc.py +0 -0
  307. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_model_predict.py +0 -0
  308. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_model_train.py +0 -0
  309. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_modules.py +0 -0
  310. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_rag.py +0 -0
  311. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_search.py +0 -0
  312. {clarifai-11.5.3rc2 → clarifai-11.5.4}/tests/test_stub.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarifai
3
- Version: 11.5.3rc2
3
+ Version: 11.5.4
4
4
  Home-page: https://github.com/Clarifai/clarifai-python
5
5
  Author: Clarifai
6
6
  Author-email: support@clarifai.com
@@ -0,0 +1 @@
1
+ __version__ = "11.5.4"
@@ -5,6 +5,8 @@ from clarifai_grpc.grpc.api.status import status_code_pb2, status_pb2
5
5
  from clarifai_protocol import BaseRunner
6
6
  from clarifai_protocol.utils.health import HealthProbeRequestHandler
7
7
 
8
+ from clarifai.client.auth.helper import ClarifaiAuthHelper
9
+
8
10
  from ..utils.url_fetcher import ensure_urls_downloaded
9
11
  from .model_class import ModelClass
10
12
 
@@ -42,6 +44,28 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
42
44
  )
43
45
  self.model = model
44
46
 
47
+ # Store authentication parameters for URL fetching
48
+ self._user_id = user_id
49
+ self._pat = pat
50
+ self._token = token
51
+ self._base_url = base_url
52
+
53
+ # Create auth helper if we have sufficient authentication information
54
+ self._auth_helper = None
55
+ if self._user_id and (self._pat or self._token):
56
+ try:
57
+ self._auth_helper = ClarifaiAuthHelper(
58
+ user_id=self._user_id,
59
+ app_id="", # app_id not needed for URL fetching
60
+ pat=self._pat or "",
61
+ token=self._token or "",
62
+ base=self._base_url,
63
+ validate=False, # Don't validate since app_id is empty
64
+ )
65
+ except Exception:
66
+ # If auth helper creation fails, proceed without authentication
67
+ self._auth_helper = None
68
+
45
69
  # After model load successfully set the health probe to ready and startup
46
70
  HealthProbeRequestHandler.is_ready = True
47
71
  HealthProbeRequestHandler.is_startup = True
@@ -81,7 +105,7 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
81
105
  if not runner_item.HasField('post_model_outputs_request'):
82
106
  raise Exception("Unexpected work item type: {}".format(runner_item))
83
107
  request = runner_item.post_model_outputs_request
84
- ensure_urls_downloaded(request)
108
+ ensure_urls_downloaded(request, auth_helper=self._auth_helper)
85
109
 
86
110
  resp = self.model.predict_wrapper(request)
87
111
  if resp.status.code != status_code_pb2.SUCCESS:
@@ -114,7 +138,7 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
114
138
  if not runner_item.HasField('post_model_outputs_request'):
115
139
  raise Exception("Unexpected work item type: {}".format(runner_item))
116
140
  request = runner_item.post_model_outputs_request
117
- ensure_urls_downloaded(request)
141
+ ensure_urls_downloaded(request, auth_helper=self._auth_helper)
118
142
 
119
143
  for resp in self.model.generate_wrapper(request):
120
144
  if resp.status.code != status_code_pb2.SUCCESS:
@@ -150,7 +174,9 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
150
174
  self, runner_item_iterator: Iterator[service_pb2.RunnerItem]
151
175
  ) -> Iterator[service_pb2.RunnerItemOutput]:
152
176
  # Call the generate() method the underlying model implements.
153
- for resp in self.model.stream_wrapper(pmo_iterator(runner_item_iterator)):
177
+ for resp in self.model.stream_wrapper(
178
+ pmo_iterator(runner_item_iterator, self._auth_helper)
179
+ ):
154
180
  if resp.status.code != status_code_pb2.SUCCESS:
155
181
  yield service_pb2.RunnerItemOutput(multi_output_response=resp)
156
182
  continue
@@ -181,9 +207,9 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
181
207
  yield service_pb2.RunnerItemOutput(multi_output_response=resp)
182
208
 
183
209
 
184
- def pmo_iterator(runner_item_iterator):
210
+ def pmo_iterator(runner_item_iterator, auth_helper=None):
185
211
  for runner_item in runner_item_iterator:
186
212
  if not runner_item.HasField('post_model_outputs_request'):
187
213
  raise Exception("Unexpected work item type: {}".format(runner_item))
188
- ensure_urls_downloaded(runner_item.post_model_outputs_request)
214
+ ensure_urls_downloaded(runner_item.post_model_outputs_request, auth_helper=auth_helper)
189
215
  yield runner_item.post_model_outputs_request
@@ -5,6 +5,8 @@ from typing import Iterator
5
5
  from clarifai_grpc.grpc.api import service_pb2, service_pb2_grpc
6
6
  from clarifai_grpc.grpc.api.status import status_code_pb2, status_pb2
7
7
 
8
+ from clarifai.client.auth.helper import ClarifaiAuthHelper
9
+
8
10
  from ..utils.url_fetcher import ensure_urls_downloaded
9
11
 
10
12
  _RAISE_EXCEPTIONS = os.getenv("RAISE_EXCEPTIONS", "false").lower() in ("true", "1")
@@ -23,6 +25,27 @@ class ModelServicer(service_pb2_grpc.V2Servicer):
23
25
  """
24
26
  self.model = model
25
27
 
28
+ # Try to create auth helper from environment variables if available
29
+ self._auth_helper = None
30
+ try:
31
+ user_id = os.environ.get("CLARIFAI_USER_ID")
32
+ pat = os.environ.get("CLARIFAI_PAT")
33
+ token = os.environ.get("CLARIFAI_SESSION_TOKEN")
34
+ base_url = os.environ.get("CLARIFAI_API_BASE", "https://api.clarifai.com")
35
+
36
+ if user_id and (pat or token):
37
+ self._auth_helper = ClarifaiAuthHelper(
38
+ user_id=user_id,
39
+ app_id="", # app_id not needed for URL fetching
40
+ pat=pat or "",
41
+ token=token or "",
42
+ base=base_url,
43
+ validate=False, # Don't validate since app_id is empty
44
+ )
45
+ except Exception:
46
+ # If auth helper creation fails, proceed without authentication
47
+ self._auth_helper = None
48
+
26
49
  def PostModelOutputs(
27
50
  self, request: service_pb2.PostModelOutputsRequest, context=None
28
51
  ) -> service_pb2.MultiOutputResponse:
@@ -32,7 +55,7 @@ class ModelServicer(service_pb2_grpc.V2Servicer):
32
55
  """
33
56
 
34
57
  # Download any urls that are not already bytes.
35
- ensure_urls_downloaded(request)
58
+ ensure_urls_downloaded(request, auth_helper=self._auth_helper)
36
59
 
37
60
  try:
38
61
  return self.model.predict_wrapper(request)
@@ -56,7 +79,7 @@ class ModelServicer(service_pb2_grpc.V2Servicer):
56
79
  returns an output.
57
80
  """
58
81
  # Download any urls that are not already bytes.
59
- ensure_urls_downloaded(request)
82
+ ensure_urls_downloaded(request, auth_helper=self._auth_helper)
60
83
 
61
84
  try:
62
85
  yield from self.model.generate_wrapper(request)
@@ -84,7 +107,7 @@ class ModelServicer(service_pb2_grpc.V2Servicer):
84
107
 
85
108
  # Download any urls that are not already bytes.
86
109
  for req in request:
87
- ensure_urls_downloaded(req)
110
+ ensure_urls_downloaded(req, auth_helper=self._auth_helper)
88
111
 
89
112
  try:
90
113
  yield from self.model.stream_wrapper(request_copy)
@@ -174,13 +174,10 @@ class Text(MessageData):
174
174
 
175
175
 
176
176
  class Concept(MessageData):
177
- def __init__(self, name: str, value: float = 1.0, id: str = None,
178
- user_id: str = None, app_id: str = None):
177
+ def __init__(self, name: str, value: float = 1.0, id: str = None):
179
178
  self.name = name
180
179
  self.value = value
181
180
  self.id = id or Concept._concept_name_to_id(name)
182
- self.user_id = user_id
183
- self.app_id = app_id
184
181
 
185
182
  @staticmethod
186
183
  def _concept_name_to_id(name: str):
@@ -189,14 +186,14 @@ class Concept(MessageData):
189
186
  return _name
190
187
 
191
188
  def __repr__(self) -> str:
192
- return f"Concept(id={self.id!r}, name={self.name!r}, value={self.value!r}, user_id={self.user_id!r}, app_id={self.app_id!r})"
189
+ return f"Concept(id={self.id!r}, name={self.name!r}, value={self.value})"
193
190
 
194
191
  def to_proto(self):
195
- return ConceptProto(id=self.id, name=self.name, value=self.value, user_id=self.user_id, app_id=self.app_id)
192
+ return ConceptProto(id=self.id, name=self.name, value=self.value)
196
193
 
197
194
  @classmethod
198
195
  def from_proto(cls, proto: ConceptProto) -> "Concept":
199
- return cls(id=proto.id, name=proto.name, value=proto.value, user_id=proto.user_id, app_id=proto.app_id)
196
+ return cls(id=proto.id, name=proto.name, value=proto.value)
200
197
 
201
198
 
202
199
  class Region(MessageData):
@@ -210,7 +207,6 @@ class Region(MessageData):
210
207
  track_id: str = None,
211
208
  text: str = None,
212
209
  id: str = None,
213
- value: float = None,
214
210
  ):
215
211
  if proto_region is None:
216
212
  self.proto = RegionProto()
@@ -227,8 +223,6 @@ class Region(MessageData):
227
223
  self.track_id = track_id
228
224
  if text:
229
225
  self.text = text
230
- if value:
231
- self.value = value
232
226
  self.id = id if id is not None else uuid.uuid4().hex
233
227
  elif isinstance(proto_region, RegionProto):
234
228
  self.proto = proto_region
@@ -328,19 +322,8 @@ class Region(MessageData):
328
322
  point_proto = PointProto(col=x, row=y, z=z)
329
323
  self.proto.region_info.point.CopyFrom(point_proto)
330
324
 
331
- @property
332
- def value(self) -> float:
333
- """Value of the region, typically used for confidence scores."""
334
- return self.proto.value
335
-
336
- @value.setter
337
- def value(self, value: float):
338
- if not isinstance(value, (int, float)):
339
- raise TypeError(f"Expected int or float for value, got {type(value).__name__}")
340
- self.proto.value = float(value)
341
-
342
325
  def __repr__(self) -> str:
343
- return f"Region(id={self.id},box={self.box or []}, concepts={self.concepts or None}, point={self.point or None}, mask={self.mask or None}, track_id={self.track_id or None}, value={self.value or None})"
326
+ return f"Region(id={self.id},box={self.box or []}, concepts={self.concepts or None}, point={self.point or None}, mask={self.mask or None}, track_id={self.track_id or None})"
344
327
 
345
328
  def to_proto(self) -> RegionProto:
346
329
  return self.proto
@@ -0,0 +1,94 @@
1
+ import concurrent.futures
2
+
3
+ import fsspec
4
+
5
+ from clarifai.utils.logging import logger
6
+
7
+
8
+ def download_input(input, auth_helper=None):
9
+ _download_input_data(input.data, auth_helper=auth_helper)
10
+ if input.data.parts:
11
+ for i in range(len(input.data.parts)):
12
+ _download_input_data(input.data.parts[i].data, auth_helper=auth_helper)
13
+
14
+
15
+ def _download_input_data(input_data, auth_helper=None):
16
+ """
17
+ This function will download any urls that are not already bytes.
18
+
19
+ Args:
20
+ input_data: The input data containing URLs to download
21
+ auth_helper: Optional ClarifaiAuthHelper instance for authentication
22
+ """
23
+ # Get auth headers if auth_helper is provided
24
+ auth_kwargs = {}
25
+ if auth_helper is not None:
26
+ auth_kwargs = _get_auth_kwargs(auth_helper)
27
+
28
+ if input_data.image.url and not input_data.image.base64:
29
+ # Download the image
30
+ with fsspec.open(input_data.image.url, 'rb', **auth_kwargs) as f:
31
+ input_data.image.base64 = f.read()
32
+ if input_data.video.url and not input_data.video.base64:
33
+ # Download the video
34
+ with fsspec.open(input_data.video.url, 'rb', **auth_kwargs) as f:
35
+ input_data.video.base64 = f.read()
36
+ if input_data.audio.url and not input_data.audio.base64:
37
+ # Download the audio
38
+ with fsspec.open(input_data.audio.url, 'rb', **auth_kwargs) as f:
39
+ input_data.audio.base64 = f.read()
40
+ if input_data.text.url and not input_data.text.raw:
41
+ # Download the text
42
+ with fsspec.open(input_data.text.url, 'r', **auth_kwargs) as f:
43
+ input_data.text.raw = f.read()
44
+
45
+
46
+ def _get_auth_kwargs(auth_helper):
47
+ """
48
+ Convert ClarifaiAuthHelper metadata to fsspec-compatible kwargs.
49
+
50
+ Args:
51
+ auth_helper: ClarifaiAuthHelper instance
52
+
53
+ Returns:
54
+ dict: kwargs to pass to fsspec.open() for authentication
55
+ """
56
+ if auth_helper is None:
57
+ return {}
58
+
59
+ try:
60
+ # Get authentication metadata from the helper
61
+ metadata = auth_helper.metadata
62
+
63
+ # Convert gRPC metadata tuples to HTTP headers dict
64
+ headers = {}
65
+ for key, value in metadata:
66
+ # Skip non-auth headers
67
+ if key in ('authorization', 'x-clarifai-session-token'):
68
+ headers[key] = value
69
+
70
+ # Return fsspec-compatible kwargs
71
+ return {'client_kwargs': {'headers': headers}}
72
+ except Exception as e:
73
+ logger.warning(f"Failed to get authentication headers: {e}")
74
+ return {}
75
+
76
+
77
+ def ensure_urls_downloaded(request, max_threads=128, auth_helper=None):
78
+ """
79
+ This function will download any urls that are not already bytes and parallelize with a thread pool.
80
+
81
+ Args:
82
+ request: The request containing inputs with URLs to download
83
+ max_threads: Maximum number of threads to use for parallel downloads
84
+ auth_helper: Optional ClarifaiAuthHelper instance for authentication
85
+ """
86
+ with concurrent.futures.ThreadPoolExecutor(max_workers=max_threads) as executor:
87
+ futures = []
88
+ for input in request.inputs:
89
+ futures.append(executor.submit(download_input, input, auth_helper))
90
+ for future in concurrent.futures.as_completed(futures):
91
+ try:
92
+ future.result()
93
+ except Exception as e:
94
+ logger.exception(f"Error downloading input: {e}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarifai
3
- Version: 11.5.3rc2
3
+ Version: 11.5.4
4
4
  Home-page: https://github.com/Clarifai/clarifai-python
5
5
  Author: Clarifai
6
6
  Author-email: support@clarifai.com
@@ -0,0 +1,145 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ requirements.txt
6
+ setup.py
7
+ clarifai/__init__.py
8
+ clarifai/cli.py
9
+ clarifai/errors.py
10
+ clarifai/versions.py
11
+ clarifai.egg-info/PKG-INFO
12
+ clarifai.egg-info/SOURCES.txt
13
+ clarifai.egg-info/dependency_links.txt
14
+ clarifai.egg-info/entry_points.txt
15
+ clarifai.egg-info/requires.txt
16
+ clarifai.egg-info/top_level.txt
17
+ clarifai/cli/README.md
18
+ clarifai/cli/__init__.py
19
+ clarifai/cli/__main__.py
20
+ clarifai/cli/base.py
21
+ clarifai/cli/compute_cluster.py
22
+ clarifai/cli/deployment.py
23
+ clarifai/cli/model.py
24
+ clarifai/cli/nodepool.py
25
+ clarifai/cli/pipeline.py
26
+ clarifai/cli/pipeline_step.py
27
+ clarifai/cli/templates/__init__.py
28
+ clarifai/cli/templates/model_templates.py
29
+ clarifai/cli/templates/pipeline_step_templates.py
30
+ clarifai/cli/templates/pipeline_templates.py
31
+ clarifai/client/__init__.py
32
+ clarifai/client/app.py
33
+ clarifai/client/base.py
34
+ clarifai/client/compute_cluster.py
35
+ clarifai/client/dataset.py
36
+ clarifai/client/deployment.py
37
+ clarifai/client/input.py
38
+ clarifai/client/lister.py
39
+ clarifai/client/model.py
40
+ clarifai/client/model_client.py
41
+ clarifai/client/module.py
42
+ clarifai/client/nodepool.py
43
+ clarifai/client/runner.py
44
+ clarifai/client/search.py
45
+ clarifai/client/user.py
46
+ clarifai/client/workflow.py
47
+ clarifai/client/auth/__init__.py
48
+ clarifai/client/auth/helper.py
49
+ clarifai/client/auth/register.py
50
+ clarifai/client/auth/stub.py
51
+ clarifai/constants/base.py
52
+ clarifai/constants/dataset.py
53
+ clarifai/constants/input.py
54
+ clarifai/constants/model.py
55
+ clarifai/constants/rag.py
56
+ clarifai/constants/search.py
57
+ clarifai/constants/workflow.py
58
+ clarifai/datasets/__init__.py
59
+ clarifai/datasets/export/__init__.py
60
+ clarifai/datasets/export/inputs_annotations.py
61
+ clarifai/datasets/upload/__init__.py
62
+ clarifai/datasets/upload/base.py
63
+ clarifai/datasets/upload/features.py
64
+ clarifai/datasets/upload/image.py
65
+ clarifai/datasets/upload/multimodal.py
66
+ clarifai/datasets/upload/text.py
67
+ clarifai/datasets/upload/utils.py
68
+ clarifai/datasets/upload/loaders/README.md
69
+ clarifai/datasets/upload/loaders/__init__.py
70
+ clarifai/datasets/upload/loaders/coco_captions.py
71
+ clarifai/datasets/upload/loaders/coco_detection.py
72
+ clarifai/datasets/upload/loaders/imagenet_classification.py
73
+ clarifai/datasets/upload/loaders/xview_detection.py
74
+ clarifai/models/__init__.py
75
+ clarifai/models/api.py
76
+ clarifai/modules/README.md
77
+ clarifai/modules/__init__.py
78
+ clarifai/modules/css.py
79
+ clarifai/modules/pages.py
80
+ clarifai/modules/style.css
81
+ clarifai/rag/__init__.py
82
+ clarifai/rag/rag.py
83
+ clarifai/rag/utils.py
84
+ clarifai/runners/__init__.py
85
+ clarifai/runners/server.py
86
+ clarifai/runners/dockerfile_template/Dockerfile.template
87
+ clarifai/runners/models/__init__.py
88
+ clarifai/runners/models/dummy_openai_model.py
89
+ clarifai/runners/models/mcp_class.py
90
+ clarifai/runners/models/model_builder.py
91
+ clarifai/runners/models/model_class.py
92
+ clarifai/runners/models/model_run_locally.py
93
+ clarifai/runners/models/model_runner.py
94
+ clarifai/runners/models/model_servicer.py
95
+ clarifai/runners/models/openai_class.py
96
+ clarifai/runners/models/visual_classifier_class.py
97
+ clarifai/runners/models/visual_detector_class.py
98
+ clarifai/runners/pipeline_steps/__init__.py
99
+ clarifai/runners/pipeline_steps/pipeline_step_builder.py
100
+ clarifai/runners/pipelines/__init__.py
101
+ clarifai/runners/pipelines/pipeline_builder.py
102
+ clarifai/runners/utils/__init__.py
103
+ clarifai/runners/utils/code_script.py
104
+ clarifai/runners/utils/const.py
105
+ clarifai/runners/utils/data_utils.py
106
+ clarifai/runners/utils/loader.py
107
+ clarifai/runners/utils/method_signatures.py
108
+ clarifai/runners/utils/model_utils.py
109
+ clarifai/runners/utils/openai_convertor.py
110
+ clarifai/runners/utils/pipeline_validation.py
111
+ clarifai/runners/utils/serializers.py
112
+ clarifai/runners/utils/url_fetcher.py
113
+ clarifai/runners/utils/data_types/__init__.py
114
+ clarifai/runners/utils/data_types/data_types.py
115
+ clarifai/schema/search.py
116
+ clarifai/urls/helper.py
117
+ clarifai/utils/__init__.py
118
+ clarifai/utils/cli.py
119
+ clarifai/utils/config.py
120
+ clarifai/utils/constants.py
121
+ clarifai/utils/logging.py
122
+ clarifai/utils/misc.py
123
+ clarifai/utils/model_train.py
124
+ clarifai/utils/protobuf.py
125
+ clarifai/utils/evaluation/__init__.py
126
+ clarifai/utils/evaluation/helpers.py
127
+ clarifai/utils/evaluation/main.py
128
+ clarifai/utils/evaluation/testset_annotation_parser.py
129
+ clarifai/workflows/__init__.py
130
+ clarifai/workflows/export.py
131
+ clarifai/workflows/utils.py
132
+ clarifai/workflows/validate.py
133
+ tests/test_app.py
134
+ tests/test_async_stub.py
135
+ tests/test_auth.py
136
+ tests/test_data_upload.py
137
+ tests/test_eval.py
138
+ tests/test_list_models.py
139
+ tests/test_misc.py
140
+ tests/test_model_predict.py
141
+ tests/test_model_train.py
142
+ tests/test_modules.py
143
+ tests/test_rag.py
144
+ tests/test_search.py
145
+ tests/test_stub.py
@@ -1 +0,0 @@
1
- __version__ = "11.5.3rc2"