clarifai 11.6.4__tar.gz → 11.6.4rc2__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 (275) hide show
  1. {clarifai-11.6.4/clarifai.egg-info → clarifai-11.6.4rc2}/PKG-INFO +1 -1
  2. clarifai-11.6.4rc2/clarifai/__init__.py +1 -0
  3. clarifai-11.6.4rc2/clarifai/__pycache__/__init__.cpython-311.pyc +0 -0
  4. clarifai-11.6.4rc2/clarifai/__pycache__/__init__.cpython-39.pyc +0 -0
  5. clarifai-11.6.4rc2/clarifai/__pycache__/errors.cpython-311.pyc +0 -0
  6. clarifai-11.6.4rc2/clarifai/__pycache__/errors.cpython-39.pyc +0 -0
  7. clarifai-11.6.4rc2/clarifai/__pycache__/versions.cpython-311.pyc +0 -0
  8. clarifai-11.6.4rc2/clarifai/__pycache__/versions.cpython-39.pyc +0 -0
  9. clarifai-11.6.4rc2/clarifai/cli/__pycache__/__init__.cpython-39.pyc +0 -0
  10. clarifai-11.6.4rc2/clarifai/cli/__pycache__/base.cpython-39.pyc +0 -0
  11. clarifai-11.6.4rc2/clarifai/cli/__pycache__/compute_cluster.cpython-39.pyc +0 -0
  12. clarifai-11.6.4rc2/clarifai/cli/__pycache__/deployment.cpython-39.pyc +0 -0
  13. clarifai-11.6.4rc2/clarifai/cli/__pycache__/model.cpython-39.pyc +0 -0
  14. clarifai-11.6.4rc2/clarifai/cli/__pycache__/nodepool.cpython-39.pyc +0 -0
  15. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/base.py +11 -27
  16. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/model.py +171 -41
  17. clarifai-11.6.4rc2/clarifai/client/__pycache__/__init__.cpython-311.pyc +0 -0
  18. clarifai-11.6.4rc2/clarifai/client/__pycache__/__init__.cpython-39.pyc +0 -0
  19. clarifai-11.6.4rc2/clarifai/client/__pycache__/app.cpython-311.pyc +0 -0
  20. clarifai-11.6.4rc2/clarifai/client/__pycache__/app.cpython-39.pyc +0 -0
  21. clarifai-11.6.4rc2/clarifai/client/__pycache__/base.cpython-311.pyc +0 -0
  22. clarifai-11.6.4rc2/clarifai/client/__pycache__/base.cpython-39.pyc +0 -0
  23. clarifai-11.6.4rc2/clarifai/client/__pycache__/compute_cluster.cpython-311.pyc +0 -0
  24. clarifai-11.6.4rc2/clarifai/client/__pycache__/dataset.cpython-311.pyc +0 -0
  25. clarifai-11.6.4rc2/clarifai/client/__pycache__/dataset.cpython-39.pyc +0 -0
  26. clarifai-11.6.4rc2/clarifai/client/__pycache__/deployment.cpython-311.pyc +0 -0
  27. clarifai-11.6.4rc2/clarifai/client/__pycache__/deployment.cpython-39.pyc +0 -0
  28. clarifai-11.6.4rc2/clarifai/client/__pycache__/input.cpython-311.pyc +0 -0
  29. clarifai-11.6.4rc2/clarifai/client/__pycache__/input.cpython-39.pyc +0 -0
  30. clarifai-11.6.4rc2/clarifai/client/__pycache__/lister.cpython-311.pyc +0 -0
  31. clarifai-11.6.4rc2/clarifai/client/__pycache__/lister.cpython-39.pyc +0 -0
  32. clarifai-11.6.4rc2/clarifai/client/__pycache__/model.cpython-311.pyc +0 -0
  33. clarifai-11.6.4rc2/clarifai/client/__pycache__/model.cpython-39.pyc +0 -0
  34. clarifai-11.6.4rc2/clarifai/client/__pycache__/model_client.cpython-311.pyc +0 -0
  35. clarifai-11.6.4rc2/clarifai/client/__pycache__/model_client.cpython-39.pyc +0 -0
  36. clarifai-11.6.4rc2/clarifai/client/__pycache__/module.cpython-311.pyc +0 -0
  37. clarifai-11.6.4rc2/clarifai/client/__pycache__/nodepool.cpython-311.pyc +0 -0
  38. clarifai-11.6.4rc2/clarifai/client/__pycache__/runner.cpython-311.pyc +0 -0
  39. clarifai-11.6.4rc2/clarifai/client/__pycache__/search.cpython-311.pyc +0 -0
  40. clarifai-11.6.4rc2/clarifai/client/__pycache__/user.cpython-311.pyc +0 -0
  41. clarifai-11.6.4rc2/clarifai/client/__pycache__/workflow.cpython-311.pyc +0 -0
  42. clarifai-11.6.4rc2/clarifai/client/auth/__pycache__/__init__.cpython-311.pyc +0 -0
  43. clarifai-11.6.4rc2/clarifai/client/auth/__pycache__/__init__.cpython-39.pyc +0 -0
  44. clarifai-11.6.4rc2/clarifai/client/auth/__pycache__/helper.cpython-311.pyc +0 -0
  45. clarifai-11.6.4rc2/clarifai/client/auth/__pycache__/helper.cpython-39.pyc +0 -0
  46. clarifai-11.6.4rc2/clarifai/client/auth/__pycache__/register.cpython-311.pyc +0 -0
  47. clarifai-11.6.4rc2/clarifai/client/auth/__pycache__/register.cpython-39.pyc +0 -0
  48. clarifai-11.6.4rc2/clarifai/client/auth/__pycache__/stub.cpython-311.pyc +0 -0
  49. clarifai-11.6.4rc2/clarifai/client/auth/__pycache__/stub.cpython-39.pyc +0 -0
  50. clarifai-11.6.4rc2/clarifai/constants/__pycache__/base.cpython-311.pyc +0 -0
  51. clarifai-11.6.4rc2/clarifai/constants/__pycache__/base.cpython-39.pyc +0 -0
  52. clarifai-11.6.4rc2/clarifai/constants/__pycache__/dataset.cpython-311.pyc +0 -0
  53. clarifai-11.6.4rc2/clarifai/constants/__pycache__/dataset.cpython-39.pyc +0 -0
  54. clarifai-11.6.4rc2/clarifai/constants/__pycache__/input.cpython-311.pyc +0 -0
  55. clarifai-11.6.4rc2/clarifai/constants/__pycache__/input.cpython-39.pyc +0 -0
  56. clarifai-11.6.4rc2/clarifai/constants/__pycache__/model.cpython-311.pyc +0 -0
  57. clarifai-11.6.4rc2/clarifai/constants/__pycache__/model.cpython-39.pyc +0 -0
  58. clarifai-11.6.4rc2/clarifai/constants/__pycache__/search.cpython-311.pyc +0 -0
  59. clarifai-11.6.4rc2/clarifai/constants/__pycache__/workflow.cpython-311.pyc +0 -0
  60. clarifai-11.6.4rc2/clarifai/datasets/__pycache__/__init__.cpython-311.pyc +0 -0
  61. clarifai-11.6.4rc2/clarifai/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
  62. clarifai-11.6.4rc2/clarifai/datasets/export/__pycache__/__init__.cpython-311.pyc +0 -0
  63. clarifai-11.6.4rc2/clarifai/datasets/export/__pycache__/__init__.cpython-39.pyc +0 -0
  64. clarifai-11.6.4rc2/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-311.pyc +0 -0
  65. clarifai-11.6.4rc2/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-39.pyc +0 -0
  66. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/__init__.cpython-311.pyc +0 -0
  67. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/__init__.cpython-39.pyc +0 -0
  68. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/base.cpython-311.pyc +0 -0
  69. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/base.cpython-39.pyc +0 -0
  70. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/features.cpython-311.pyc +0 -0
  71. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/features.cpython-39.pyc +0 -0
  72. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/image.cpython-311.pyc +0 -0
  73. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/image.cpython-39.pyc +0 -0
  74. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/multimodal.cpython-311.pyc +0 -0
  75. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/multimodal.cpython-39.pyc +0 -0
  76. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/text.cpython-311.pyc +0 -0
  77. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/text.cpython-39.pyc +0 -0
  78. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/utils.cpython-311.pyc +0 -0
  79. clarifai-11.6.4rc2/clarifai/datasets/upload/__pycache__/utils.cpython-39.pyc +0 -0
  80. clarifai-11.6.4rc2/clarifai/runners/__pycache__/__init__.cpython-311.pyc +0 -0
  81. clarifai-11.6.4rc2/clarifai/runners/__pycache__/__init__.cpython-39.pyc +0 -0
  82. clarifai-11.6.4rc2/clarifai/runners/models/__pycache__/__init__.cpython-311.pyc +0 -0
  83. clarifai-11.6.4rc2/clarifai/runners/models/__pycache__/__init__.cpython-39.pyc +0 -0
  84. clarifai-11.6.4rc2/clarifai/runners/models/__pycache__/mcp_class.cpython-311.pyc +0 -0
  85. clarifai-11.6.4rc2/clarifai/runners/models/__pycache__/model_builder.cpython-311.pyc +0 -0
  86. clarifai-11.6.4rc2/clarifai/runners/models/__pycache__/model_builder.cpython-39.pyc +0 -0
  87. clarifai-11.6.4rc2/clarifai/runners/models/__pycache__/model_class.cpython-311.pyc +0 -0
  88. clarifai-11.6.4rc2/clarifai/runners/models/__pycache__/model_runner.cpython-311.pyc +0 -0
  89. clarifai-11.6.4rc2/clarifai/runners/models/__pycache__/openai_class.cpython-311.pyc +0 -0
  90. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/server.py +1 -0
  91. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  92. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  93. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/code_script.cpython-311.pyc +0 -0
  94. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/code_script.cpython-39.pyc +0 -0
  95. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/const.cpython-311.pyc +0 -0
  96. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/data_utils.cpython-311.pyc +0 -0
  97. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/data_utils.cpython-39.pyc +0 -0
  98. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/loader.cpython-311.pyc +0 -0
  99. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/method_signatures.cpython-311.pyc +0 -0
  100. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/model_utils.cpython-311.pyc +0 -0
  101. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/openai_convertor.cpython-311.pyc +0 -0
  102. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/serializers.cpython-311.pyc +0 -0
  103. clarifai-11.6.4rc2/clarifai/runners/utils/__pycache__/url_fetcher.cpython-311.pyc +0 -0
  104. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/code_script.py +52 -46
  105. clarifai-11.6.4rc2/clarifai/runners/utils/data_types/__pycache__/__init__.cpython-311.pyc +0 -0
  106. clarifai-11.6.4rc2/clarifai/runners/utils/data_types/__pycache__/__init__.cpython-39.pyc +0 -0
  107. clarifai-11.6.4rc2/clarifai/runners/utils/data_types/__pycache__/data_types.cpython-311.pyc +0 -0
  108. clarifai-11.6.4rc2/clarifai/runners/utils/data_types/__pycache__/data_types.cpython-39.pyc +0 -0
  109. clarifai-11.6.4rc2/clarifai/schema/__pycache__/search.cpython-311.pyc +0 -0
  110. clarifai-11.6.4rc2/clarifai/urls/__pycache__/helper.cpython-311.pyc +0 -0
  111. clarifai-11.6.4rc2/clarifai/urls/__pycache__/helper.cpython-39.pyc +0 -0
  112. clarifai-11.6.4rc2/clarifai/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  113. clarifai-11.6.4rc2/clarifai/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  114. clarifai-11.6.4rc2/clarifai/utils/__pycache__/cli.cpython-39.pyc +0 -0
  115. clarifai-11.6.4rc2/clarifai/utils/__pycache__/config.cpython-311.pyc +0 -0
  116. clarifai-11.6.4rc2/clarifai/utils/__pycache__/config.cpython-39.pyc +0 -0
  117. clarifai-11.6.4rc2/clarifai/utils/__pycache__/constants.cpython-311.pyc +0 -0
  118. clarifai-11.6.4rc2/clarifai/utils/__pycache__/constants.cpython-39.pyc +0 -0
  119. clarifai-11.6.4rc2/clarifai/utils/__pycache__/logging.cpython-311.pyc +0 -0
  120. clarifai-11.6.4rc2/clarifai/utils/__pycache__/logging.cpython-39.pyc +0 -0
  121. clarifai-11.6.4rc2/clarifai/utils/__pycache__/misc.cpython-311.pyc +0 -0
  122. clarifai-11.6.4rc2/clarifai/utils/__pycache__/misc.cpython-39.pyc +0 -0
  123. clarifai-11.6.4rc2/clarifai/utils/__pycache__/model_train.cpython-311.pyc +0 -0
  124. clarifai-11.6.4rc2/clarifai/utils/__pycache__/protobuf.cpython-311.pyc +0 -0
  125. clarifai-11.6.4rc2/clarifai/utils/__pycache__/protobuf.cpython-39.pyc +0 -0
  126. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/cli.py +14 -15
  127. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/constants.py +2 -0
  128. clarifai-11.6.4rc2/clarifai/utils/misc.py +549 -0
  129. clarifai-11.6.4rc2/clarifai/workflows/__pycache__/__init__.cpython-311.pyc +0 -0
  130. clarifai-11.6.4rc2/clarifai/workflows/__pycache__/export.cpython-311.pyc +0 -0
  131. clarifai-11.6.4rc2/clarifai/workflows/__pycache__/utils.cpython-311.pyc +0 -0
  132. clarifai-11.6.4rc2/clarifai/workflows/__pycache__/validate.cpython-311.pyc +0 -0
  133. {clarifai-11.6.4 → clarifai-11.6.4rc2/clarifai.egg-info}/PKG-INFO +1 -1
  134. clarifai-11.6.4rc2/clarifai.egg-info/SOURCES.txt +270 -0
  135. clarifai-11.6.4/clarifai/__init__.py +0 -1
  136. clarifai-11.6.4/clarifai/utils/misc.py +0 -168
  137. clarifai-11.6.4/clarifai.egg-info/SOURCES.txt +0 -147
  138. {clarifai-11.6.4 → clarifai-11.6.4rc2}/LICENSE +0 -0
  139. {clarifai-11.6.4 → clarifai-11.6.4rc2}/MANIFEST.in +0 -0
  140. {clarifai-11.6.4 → clarifai-11.6.4rc2}/README.md +0 -0
  141. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/README.md +0 -0
  142. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/__init__.py +0 -0
  143. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/__main__.py +0 -0
  144. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/compute_cluster.py +0 -0
  145. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/deployment.py +0 -0
  146. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/nodepool.py +0 -0
  147. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/pipeline.py +0 -0
  148. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/pipeline_step.py +0 -0
  149. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/templates/__init__.py +0 -0
  150. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/templates/model_templates.py +0 -0
  151. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/templates/pipeline_step_templates.py +0 -0
  152. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli/templates/pipeline_templates.py +0 -0
  153. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/cli.py +0 -0
  154. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/__init__.py +0 -0
  155. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/app.py +0 -0
  156. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/auth/__init__.py +0 -0
  157. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/auth/helper.py +0 -0
  158. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/auth/register.py +0 -0
  159. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/auth/stub.py +0 -0
  160. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/base.py +0 -0
  161. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/compute_cluster.py +0 -0
  162. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/dataset.py +0 -0
  163. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/deployment.py +0 -0
  164. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/input.py +0 -0
  165. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/lister.py +0 -0
  166. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/model.py +0 -0
  167. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/model_client.py +0 -0
  168. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/module.py +0 -0
  169. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/nodepool.py +0 -0
  170. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/pipeline.py +0 -0
  171. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/runner.py +0 -0
  172. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/search.py +0 -0
  173. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/user.py +0 -0
  174. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/client/workflow.py +0 -0
  175. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/constants/base.py +0 -0
  176. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/constants/dataset.py +0 -0
  177. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/constants/input.py +0 -0
  178. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/constants/model.py +0 -0
  179. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/constants/rag.py +0 -0
  180. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/constants/search.py +0 -0
  181. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/constants/workflow.py +0 -0
  182. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/__init__.py +0 -0
  183. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/export/__init__.py +0 -0
  184. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/export/inputs_annotations.py +0 -0
  185. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/__init__.py +0 -0
  186. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/base.py +0 -0
  187. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/features.py +0 -0
  188. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/image.py +0 -0
  189. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/loaders/README.md +0 -0
  190. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/loaders/__init__.py +0 -0
  191. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/loaders/coco_captions.py +0 -0
  192. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/loaders/coco_detection.py +0 -0
  193. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/loaders/imagenet_classification.py +0 -0
  194. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/loaders/xview_detection.py +0 -0
  195. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/multimodal.py +0 -0
  196. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/text.py +0 -0
  197. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/datasets/upload/utils.py +0 -0
  198. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/errors.py +0 -0
  199. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/models/__init__.py +0 -0
  200. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/models/api.py +0 -0
  201. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/modules/README.md +0 -0
  202. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/modules/__init__.py +0 -0
  203. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/modules/css.py +0 -0
  204. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/modules/pages.py +0 -0
  205. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/modules/style.css +0 -0
  206. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/rag/__init__.py +0 -0
  207. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/rag/rag.py +0 -0
  208. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/rag/utils.py +0 -0
  209. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/__init__.py +0 -0
  210. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/dockerfile_template/Dockerfile.template +0 -0
  211. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/__init__.py +0 -0
  212. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/dummy_openai_model.py +0 -0
  213. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/mcp_class.py +0 -0
  214. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/model_builder.py +0 -0
  215. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/model_class.py +0 -0
  216. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/model_run_locally.py +0 -0
  217. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/model_runner.py +0 -0
  218. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/model_servicer.py +0 -0
  219. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/openai_class.py +0 -0
  220. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/visual_classifier_class.py +0 -0
  221. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/models/visual_detector_class.py +0 -0
  222. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/pipeline_steps/__init__.py +0 -0
  223. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/pipeline_steps/pipeline_step_builder.py +0 -0
  224. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/pipelines/__init__.py +0 -0
  225. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/pipelines/pipeline_builder.py +0 -0
  226. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/__init__.py +0 -0
  227. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/const.py +0 -0
  228. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/data_types/__init__.py +0 -0
  229. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/data_types/data_types.py +0 -0
  230. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/data_utils.py +0 -0
  231. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/loader.py +0 -0
  232. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/method_signatures.py +0 -0
  233. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/model_utils.py +0 -0
  234. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/openai_convertor.py +0 -0
  235. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/pipeline_validation.py +0 -0
  236. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/serializers.py +0 -0
  237. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/runners/utils/url_fetcher.py +0 -0
  238. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/schema/search.py +0 -0
  239. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/urls/helper.py +0 -0
  240. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/__init__.py +0 -0
  241. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/config.py +0 -0
  242. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/evaluation/__init__.py +0 -0
  243. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/evaluation/helpers.py +0 -0
  244. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/evaluation/main.py +0 -0
  245. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/evaluation/testset_annotation_parser.py +0 -0
  246. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/logging.py +0 -0
  247. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/model_train.py +0 -0
  248. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/utils/protobuf.py +0 -0
  249. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/versions.py +0 -0
  250. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/workflows/__init__.py +0 -0
  251. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/workflows/export.py +0 -0
  252. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/workflows/utils.py +0 -0
  253. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai/workflows/validate.py +0 -0
  254. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai.egg-info/dependency_links.txt +0 -0
  255. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai.egg-info/entry_points.txt +0 -0
  256. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai.egg-info/requires.txt +0 -0
  257. {clarifai-11.6.4 → clarifai-11.6.4rc2}/clarifai.egg-info/top_level.txt +0 -0
  258. {clarifai-11.6.4 → clarifai-11.6.4rc2}/pyproject.toml +0 -0
  259. {clarifai-11.6.4 → clarifai-11.6.4rc2}/requirements.txt +0 -0
  260. {clarifai-11.6.4 → clarifai-11.6.4rc2}/setup.cfg +0 -0
  261. {clarifai-11.6.4 → clarifai-11.6.4rc2}/setup.py +0 -0
  262. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_app.py +0 -0
  263. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_async_stub.py +0 -0
  264. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_auth.py +0 -0
  265. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_data_upload.py +0 -0
  266. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_eval.py +0 -0
  267. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_list_models.py +0 -0
  268. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_misc.py +0 -0
  269. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_model_predict.py +0 -0
  270. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_model_train.py +0 -0
  271. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_modules.py +0 -0
  272. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_pipeline_client.py +0 -0
  273. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_rag.py +0 -0
  274. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_search.py +0 -0
  275. {clarifai-11.6.4 → clarifai-11.6.4rc2}/tests/test_stub.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarifai
3
- Version: 11.6.4
3
+ Version: 11.6.4rc2
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.6.4rc2"
@@ -159,7 +159,7 @@ def env(ctx_obj):
159
159
  @click.pass_context
160
160
  def login(ctx, api_url, user_id):
161
161
  """Login command to set PAT and other configurations."""
162
- from clarifai.utils.cli import validate_pat_token
162
+ from clarifai.utils.cli import validate_context_auth
163
163
 
164
164
  name = input('context name (default: "default"): ')
165
165
  user_id = user_id if user_id is not None else input('user id: ')
@@ -168,17 +168,8 @@ def login(ctx, api_url, user_id):
168
168
  'ENVVAR',
169
169
  )
170
170
 
171
- # Validate the PAT token if it's not "ENVVAR"
172
- if pat != "ENVVAR":
173
- print("Validating PAT token...")
174
- is_valid, error_message = validate_pat_token(pat, user_id, api_url)
175
-
176
- if not is_valid:
177
- print(f"❌ PAT token validation failed: {error_message}")
178
- print("Please check your token and try again.")
179
- return # Exit without saving the configuration
180
- else:
181
- print("✓ PAT token is valid")
171
+ # Validate the Context Credentials
172
+ validate_context_auth(pat, user_id, api_url)
182
173
 
183
174
  context = Context(
184
175
  name,
@@ -194,7 +185,9 @@ def login(ctx, api_url, user_id):
194
185
  ctx.obj.current_context = context.name
195
186
 
196
187
  ctx.obj.to_yaml()
197
- print(f"✓ Configuration saved successfully for context '{context.name}'")
188
+ logger.info(
189
+ f"Login successful and Configuration saved successfully for context '{context.name}'"
190
+ )
198
191
 
199
192
 
200
193
  @cli.group(cls=AliasedGroup)
@@ -225,10 +218,10 @@ def create(
225
218
  pat=None,
226
219
  ):
227
220
  """Create a new context"""
228
- from clarifai.utils.cli import validate_pat_token
221
+ from clarifai.utils.cli import validate_context_auth
229
222
 
230
223
  if name in ctx.obj.contexts:
231
- print(f'{name} already exists')
224
+ logger.info(f'"{name}" context already exists')
232
225
  sys.exit(1)
233
226
  if not user_id:
234
227
  user_id = input('user id: ')
@@ -242,22 +235,13 @@ def create(
242
235
  'ENVVAR',
243
236
  )
244
237
 
245
- # Validate the PAT token if it's not "ENVVAR"
246
- if pat != "ENVVAR":
247
- print("Validating PAT token...")
248
- is_valid, error_message = validate_pat_token(pat, user_id, base_url)
249
-
250
- if not is_valid:
251
- print(f"❌ PAT token validation failed: {error_message}")
252
- print("Please check your token and try again.")
253
- return # Exit without saving the configuration
254
- else:
255
- print("✓ PAT token is valid")
238
+ # Validate the Context Credentials
239
+ validate_context_auth(pat, user_id, base_url)
256
240
 
257
241
  context = Context(name, CLARIFAI_USER_ID=user_id, CLARIFAI_API_BASE=base_url, CLARIFAI_PAT=pat)
258
242
  ctx.obj.contexts[context.name] = context
259
243
  ctx.obj.to_yaml()
260
- print(f"Context '{name}' created successfully")
244
+ logger.info(f"Context '{name}' created successfully")
261
245
 
262
246
 
263
247
  # write a click command to delete a context
@@ -4,7 +4,7 @@ import tempfile
4
4
 
5
5
  import click
6
6
 
7
- from clarifai.cli.base import cli
7
+ from clarifai.cli.base import cli, pat_display
8
8
  from clarifai.utils.cli import validate_context
9
9
  from clarifai.utils.constants import (
10
10
  DEFAULT_LOCAL_RUNNER_APP_ID,
@@ -15,9 +15,54 @@ from clarifai.utils.constants import (
15
15
  DEFAULT_LOCAL_RUNNER_MODEL_TYPE,
16
16
  DEFAULT_LOCAL_RUNNER_NODEPOOL_CONFIG,
17
17
  DEFAULT_LOCAL_RUNNER_NODEPOOL_ID,
18
+ DEFAULT_OLLAMA_MODEL_REPO,
19
+ DEFAULT_OLLAMA_MODEL_REPO_BRANCH,
18
20
  )
19
21
  from clarifai.utils.logging import logger
20
- from clarifai.utils.misc import clone_github_repo, format_github_repo_url
22
+ from clarifai.utils.misc import GitHubDownloader, clone_github_repo, format_github_repo_url
23
+
24
+
25
+ def customize_ollama_model(model_path, model_name, port, context_length):
26
+ """Customize the Ollama model name in the cloned template files.
27
+ Args:
28
+ model_path: Path to the cloned model directory
29
+ model_name: The model name to set (e.g., 'llama3.1', 'mistral')
30
+
31
+ """
32
+ model_py_path = os.path.join(model_path, "1", "model.py")
33
+
34
+ if not os.path.exists(model_py_path):
35
+ logger.warning(f"Model file {model_py_path} not found, skipping model name customization")
36
+ return
37
+
38
+ try:
39
+ # Read the model.py file
40
+ with open(model_py_path, 'r') as file:
41
+ content = file.read()
42
+ if model_name:
43
+ # Replace the default model name in the load_model method
44
+ content = content.replace(
45
+ 'self.model = os.environ.get("OLLAMA_MODEL_NAME", \'llama3.2\')',
46
+ f'self.model = os.environ.get("OLLAMA_MODEL_NAME", \'{model_name}\')',
47
+ )
48
+
49
+ if port:
50
+ # Replace the default port variable in the model.py file
51
+ content = content.replace("PORT = '23333'", f"PORT = '{port}'")
52
+
53
+ if context_length:
54
+ # Replace the default context length variable in the model.py file
55
+ content = content.replace(
56
+ "context_length = '8192'", f"context_length = '{context_length}'"
57
+ )
58
+
59
+ # Write the modified content back to model.py
60
+ with open(model_py_path, 'w') as file:
61
+ file.write(content)
62
+
63
+ except Exception as e:
64
+ logger.error(f"Failed to customize Ollama model name in {model_py_path}: {e}")
65
+ raise
21
66
 
22
67
 
23
68
  @cli.group(
@@ -48,21 +93,36 @@ def model():
48
93
  help='GitHub Personal Access Token for authentication when cloning private repositories.',
49
94
  )
50
95
  @click.option(
51
- '--github-repo',
96
+ '--github-url',
52
97
  required=False,
53
98
  help='GitHub repository URL or "user/repo" format to clone a repository from. If provided, the entire repository contents will be copied to the target directory instead of using default templates.',
54
99
  )
55
100
  @click.option(
56
- '--branch',
101
+ '--toolkit',
102
+ type=click.Choice(['ollama'], case_sensitive=False),
57
103
  required=False,
58
- help='Git branch to clone from the GitHub repository. If not specified, the default branch will be used.',
104
+ help='Toolkit to use for model initialization. Currently supports "ollama".',
59
105
  )
60
106
  @click.option(
61
- '--local-ollama-model',
62
- is_flag=True,
63
- help='Create an Ollama model template by cloning from GitHub repository.',
107
+ '--model-name',
108
+ required=False,
109
+ help='Model name to configure when using --toolkit. For ollama toolkit, this sets the Ollama model to use (e.g., "llama3.1", "mistral", etc.).',
110
+ )
111
+ @click.option(
112
+ '--port',
113
+ type=str,
114
+ help='Port to run the Ollama server on. Defaults to 23333.',
115
+ required=False,
116
+ )
117
+ @click.option(
118
+ '--context-length',
119
+ type=str,
120
+ help='Context length for the Ollama model. Defaults to 8192.',
121
+ required=False,
64
122
  )
65
- def init(model_path, model_type_id, github_pat, github_repo, branch, local_ollama_model):
123
+ def init(
124
+ model_path, model_type_id, github_pat, github_url, toolkit, model_name, port, context_length
125
+ ):
66
126
  """Initialize a new model directory structure.
67
127
 
68
128
  Creates the following structure in the specified directory:
@@ -77,42 +137,99 @@ def init(model_path, model_type_id, github_pat, github_repo, branch, local_ollam
77
137
  branch to clone from.
78
138
 
79
139
  MODEL_PATH: Path where to create the model directory structure. If not specified, the current directory is used by default.
140
+ model_type_id: Type of model to initialize. Options are 'mcp' for MCPModelClass or 'openai' for OpenAIModelClass.
141
+ github_pat: GitHub Personal Access Token for cloning private repositories.
142
+ github_url: GitHub repository URL or "user/repo" format or the github folder URL to clone a model files from. If provided, the entire contents of repo/folder will be copied to the target directory instead of using default templates.
143
+ toolkit: Toolkit to use for model initialization. Currently supports 'ollama'.
144
+ model_name: Model name to configure when using --toolkit. For ollama toolkit, this sets the Ollama model to use (e.g., 'llama3.1', 'mistral', etc.).
145
+ port: Port to run the Ollama server on. Defaults to 23333.
146
+ context_length: Context length for the Ollama model. Defaults to 8192.
80
147
  """
81
- # Handle the --local-ollama-model flag
82
- if local_ollama_model:
83
- if github_repo or branch:
84
- raise click.ClickException(
85
- "Cannot specify both --local-ollama-model and --github-repo/--branch"
86
- )
87
- github_repo = "https://github.com/Clarifai/runners-examples"
88
- branch = "ollama"
89
-
90
148
  # Resolve the absolute path
91
149
  model_path = os.path.abspath(model_path)
92
150
 
93
151
  # Create the model directory if it doesn't exist
94
152
  os.makedirs(model_path, exist_ok=True)
95
153
 
96
- # Handle GitHub repository cloning if provided
97
- if github_repo:
98
- logger.info(f"Initializing model from GitHub repository: {github_repo}")
154
+ # Validate parameters
155
+ if port and not port.isdigit():
156
+ logger.error("Invalid value: --port must be a number")
157
+ raise click.Abort()
158
+
159
+ if context_length and not context_length.isdigit():
160
+ logger.error("Invalid value: --context-length must be a number")
161
+ raise click.Abort()
162
+
163
+ # Validate option combinations
164
+ if model_name and not (toolkit):
165
+ logger.error("--model-name can only be used with --toolkit")
166
+ raise click.Abort()
167
+
168
+ if toolkit and (github_url):
169
+ logger.error("Cannot specify both --toolkit and --github-repo")
170
+ raise click.Abort()
171
+
172
+ # --toolkit option
173
+ if toolkit == 'ollama':
174
+ github_url = DEFAULT_OLLAMA_MODEL_REPO
175
+ branch = DEFAULT_OLLAMA_MODEL_REPO_BRANCH
176
+
177
+ if github_url:
178
+ if not toolkit:
179
+ owner, repo, branch, folder_path = GitHubDownloader().parse_github_url(url=github_url)
180
+ logger.info(
181
+ f"Parsed GitHub repository: owner={owner}, repo={repo}, branch={branch}, folder_path={folder_path}"
182
+ )
183
+ if folder_path != "":
184
+ downloader = GitHubDownloader(
185
+ max_retries=3,
186
+ github_token=github_pat,
187
+ )
188
+ try:
189
+ downloader.download_github_folder(
190
+ url=github_url,
191
+ output_dir=model_path,
192
+ github_token=github_pat,
193
+ )
194
+ logger.info(f"Successfully downloaded folder contents to {model_path}")
195
+ logger.info("Model initialization complete with GitHub folder download")
196
+ return
197
+
198
+ except Exception as e:
199
+ logger.error(f"Failed to download GitHub folder: {e}")
200
+ # Continue with the rest of the initialization process
201
+ github_url = None # Fall back to template mode
202
+
203
+ elif branch and folder_path == "":
204
+ # When we have a branch but no specific folder path
205
+ logger.info(
206
+ f"Initializing model from GitHub repository: {github_url} (branch: {branch})"
207
+ )
208
+
209
+ # Check if it's a local path or normalize the GitHub repo URL
210
+ if os.path.exists(github_url):
211
+ repo_url = github_url
212
+ else:
213
+ repo_url = format_github_repo_url(github_url)
214
+ repo_url = f"https://github.com/{owner}/{repo}"
215
+
216
+ if toolkit:
217
+ logger.info(f"Initializing model from GitHub repository: {github_url}")
99
218
 
100
219
  # Check if it's a local path or normalize the GitHub repo URL
101
- if os.path.exists(github_repo):
102
- repo_url = github_repo
220
+ if os.path.exists(github_url):
221
+ repo_url = github_url
103
222
  else:
104
- repo_url = format_github_repo_url(github_repo)
223
+ repo_url = format_github_repo_url(github_url)
105
224
 
225
+ try:
106
226
  # Create a temporary directory for cloning
107
- with tempfile.TemporaryDirectory() as temp_dir:
108
- clone_dir = os.path.join(temp_dir, "repo")
109
-
110
- # Clone the repository
227
+ with tempfile.TemporaryDirectory(prefix="clarifai_model_") as clone_dir:
228
+ # Clone the repository with explicit branch parameter
111
229
  if not clone_github_repo(repo_url, clone_dir, github_pat, branch):
112
- logger.error(
113
- "Failed to clone repository. Falling back to template-based initialization."
114
- )
115
- github_repo = None # Fall back to template mode
230
+ logger.error(f"Failed to clone repository from {repo_url}")
231
+ github_url = None # Fall back to template mode
232
+
116
233
  else:
117
234
  # Copy the entire repository content to target directory (excluding .git)
118
235
  for item in os.listdir(clone_dir):
@@ -127,15 +244,21 @@ def init(model_path, model_type_id, github_pat, github_repo, branch, local_ollam
127
244
  else:
128
245
  shutil.copy2(source_path, target_path)
129
246
 
130
- logger.info("Model initialization complete with GitHub repository")
131
- logger.info("Next steps:")
132
- logger.info("1. Review the model configuration")
133
- logger.info("2. Install any required dependencies manually")
134
- logger.info("3. Test the model locally using 'clarifai model local-test'")
135
- return
247
+ except Exception as e:
248
+ logger.error(f"Failed to clone GitHub repository: {e}")
249
+ github_url = None
250
+
251
+ if (model_name or port or context_length) and (toolkit == 'ollama'):
252
+ customize_ollama_model(model_path, model_name, port, context_length)
253
+
254
+ logger.info("Model initialization complete with GitHub repository")
255
+ logger.info("Next steps:")
256
+ logger.info("1. Review the model configuration")
257
+ logger.info("2. Install any required dependencies manually")
258
+ logger.info("3. Test the model locally using 'clarifai model local-test'")
136
259
 
137
260
  # Fall back to template-based initialization if no GitHub repo or if GitHub repo failed
138
- if not github_repo:
261
+ if not github_url:
139
262
  from clarifai.cli.templates.model_templates import (
140
263
  get_config_template,
141
264
  get_model_template,
@@ -473,9 +596,16 @@ def local_runner(ctx, model_path, pool_size):
473
596
  user_id = ctx.obj.current.user_id
474
597
  logger.info(f"Current user_id: {user_id}")
475
598
  if not user_id:
476
- raise ValueError(
477
- f"User with ID '{user_id}' not found. Use 'clarifai login' to setup context."
599
+ logger.error(f"User with ID '{user_id}' not found. Use 'clarifai login' to setup context.")
600
+ raise click.Abort()
601
+ pat = ctx.obj.current.pat
602
+ display_pat = pat_display(pat) if pat else ""
603
+ logger.info(f"Current PAT: {display_pat}")
604
+ if not pat:
605
+ logger.error(
606
+ "Personal Access Token (PAT) not found. Use 'clarifai login' to setup context."
478
607
  )
608
+ raise click.Abort()
479
609
  user = User(user_id=user_id, pat=ctx.obj.current.pat, base_url=ctx.obj.current.api_base)
480
610
  logger.debug("Checking if a local runner compute cluster exists...")
481
611
 
@@ -133,6 +133,7 @@ def serve(
133
133
  pat=pat,
134
134
  num_parallel_polls=num_threads,
135
135
  )
136
+ logger.info("Runner started successfully and is waiting for work from the API...")
136
137
  runner.start() # start the runner to fetch work from the API.
137
138
 
138
139