clarifai 11.3.0rc2__tar.gz → 11.4.0__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 (409) hide show
  1. {clarifai-11.3.0rc2/clarifai.egg-info → clarifai-11.4.0}/PKG-INFO +16 -6
  2. clarifai-11.4.0/clarifai/__init__.py +1 -0
  3. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/cli/__main__.py +1 -1
  4. clarifai-11.4.0/clarifai/cli/base.py +268 -0
  5. clarifai-11.4.0/clarifai/cli/compute_cluster.py +75 -0
  6. clarifai-11.4.0/clarifai/cli/deployment.py +129 -0
  7. clarifai-11.4.0/clarifai/cli/model.py +734 -0
  8. clarifai-11.4.0/clarifai/cli/nodepool.py +130 -0
  9. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/client/__init__.py +12 -2
  10. clarifai-11.4.0/clarifai/client/app.py +1002 -0
  11. clarifai-11.4.0/clarifai/client/auth/helper.py +386 -0
  12. clarifai-11.4.0/clarifai/client/auth/register.py +23 -0
  13. clarifai-11.4.0/clarifai/client/auth/stub.py +155 -0
  14. clarifai-11.4.0/clarifai/client/base.py +207 -0
  15. clarifai-11.4.0/clarifai/client/compute_cluster.py +231 -0
  16. clarifai-11.4.0/clarifai/client/dataset.py +836 -0
  17. clarifai-11.4.0/clarifai/client/deployment.py +71 -0
  18. clarifai-11.4.0/clarifai/client/input.py +1275 -0
  19. clarifai-11.4.0/clarifai/client/lister.py +56 -0
  20. clarifai-11.4.0/clarifai/client/model.py +1994 -0
  21. clarifai-11.4.0/clarifai/client/model_client.py +553 -0
  22. clarifai-11.4.0/clarifai/client/module.py +115 -0
  23. clarifai-11.4.0/clarifai/client/nodepool.py +375 -0
  24. clarifai-11.4.0/clarifai/client/runner.py +58 -0
  25. clarifai-11.4.0/clarifai/client/search.py +370 -0
  26. clarifai-11.4.0/clarifai/client/user.py +439 -0
  27. clarifai-11.4.0/clarifai/client/workflow.py +317 -0
  28. clarifai-11.4.0/clarifai/constants/dataset.py +20 -0
  29. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/constants/model.py +8 -2
  30. clarifai-11.4.0/clarifai/datasets/export/inputs_annotations.py +256 -0
  31. clarifai-11.4.0/clarifai/datasets/upload/base.py +83 -0
  32. clarifai-11.4.0/clarifai/datasets/upload/features.py +66 -0
  33. clarifai-11.4.0/clarifai/datasets/upload/image.py +257 -0
  34. clarifai-11.4.0/clarifai/datasets/upload/loaders/coco_captions.py +56 -0
  35. clarifai-11.4.0/clarifai/datasets/upload/loaders/coco_detection.py +87 -0
  36. clarifai-11.4.0/clarifai/datasets/upload/loaders/imagenet_classification.py +66 -0
  37. clarifai-11.4.0/clarifai/datasets/upload/loaders/xview_detection.py +294 -0
  38. clarifai-11.4.0/clarifai/datasets/upload/multimodal.py +78 -0
  39. clarifai-11.4.0/clarifai/datasets/upload/text.py +68 -0
  40. clarifai-11.4.0/clarifai/datasets/upload/utils.py +270 -0
  41. clarifai-11.4.0/clarifai/errors.py +90 -0
  42. clarifai-11.4.0/clarifai/models/api.py +305 -0
  43. clarifai-11.4.0/clarifai/modules/css.py +60 -0
  44. clarifai-11.4.0/clarifai/modules/pages.py +42 -0
  45. clarifai-11.4.0/clarifai/rag/rag.py +343 -0
  46. clarifai-11.4.0/clarifai/rag/utils.py +125 -0
  47. clarifai-11.4.0/clarifai/runners/models/model_builder.py +979 -0
  48. clarifai-11.4.0/clarifai/runners/models/model_class.py +398 -0
  49. clarifai-11.4.0/clarifai/runners/models/model_run_locally.py +486 -0
  50. clarifai-11.4.0/clarifai/runners/models/model_runner.py +189 -0
  51. clarifai-11.4.0/clarifai/runners/models/model_servicer.py +101 -0
  52. clarifai-11.4.0/clarifai/runners/server.py +138 -0
  53. clarifai-11.4.0/clarifai/runners/utils/code_script.py +255 -0
  54. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/runners/utils/const.py +4 -1
  55. clarifai-11.4.0/clarifai/runners/utils/data_types/__init__.py +12 -0
  56. clarifai-11.4.0/clarifai/runners/utils/data_types/data_types.py +598 -0
  57. clarifai-11.4.0/clarifai/runners/utils/data_utils.py +426 -0
  58. clarifai-11.4.0/clarifai/runners/utils/loader.py +266 -0
  59. clarifai-11.4.0/clarifai/runners/utils/method_signatures.py +533 -0
  60. clarifai-11.4.0/clarifai/runners/utils/openai_convertor.py +166 -0
  61. clarifai-11.4.0/clarifai/runners/utils/serializers.py +218 -0
  62. clarifai-11.4.0/clarifai/runners/utils/url_fetcher.py +49 -0
  63. clarifai-11.4.0/clarifai/schema/search.py +65 -0
  64. clarifai-11.4.0/clarifai/urls/helper.py +143 -0
  65. clarifai-11.4.0/clarifai/utils/cli.py +174 -0
  66. clarifai-11.4.0/clarifai/utils/config.py +145 -0
  67. clarifai-11.4.0/clarifai/utils/constants.py +56 -0
  68. clarifai-11.4.0/clarifai/utils/evaluation/helpers.py +564 -0
  69. clarifai-11.4.0/clarifai/utils/evaluation/main.py +464 -0
  70. clarifai-11.4.0/clarifai/utils/evaluation/testset_annotation_parser.py +160 -0
  71. clarifai-11.4.0/clarifai/utils/logging.py +437 -0
  72. clarifai-11.4.0/clarifai/utils/misc.py +106 -0
  73. clarifai-11.4.0/clarifai/utils/model_train.py +181 -0
  74. clarifai-11.4.0/clarifai/utils/protobuf.py +166 -0
  75. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/versions.py +3 -1
  76. clarifai-11.4.0/clarifai/workflows/export.py +66 -0
  77. clarifai-11.4.0/clarifai/workflows/utils.py +62 -0
  78. clarifai-11.4.0/clarifai/workflows/validate.py +79 -0
  79. {clarifai-11.3.0rc2 → clarifai-11.4.0/clarifai.egg-info}/PKG-INFO +16 -6
  80. clarifai-11.4.0/clarifai.egg-info/SOURCES.txt +126 -0
  81. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai.egg-info/requires.txt +3 -3
  82. clarifai-11.4.0/pyproject.toml +16 -0
  83. {clarifai-11.3.0rc2 → clarifai-11.4.0}/requirements.txt +2 -2
  84. {clarifai-11.3.0rc2 → clarifai-11.4.0}/setup.py +14 -11
  85. clarifai-11.4.0/tests/test_app.py +267 -0
  86. clarifai-11.4.0/tests/test_auth.py +97 -0
  87. clarifai-11.4.0/tests/test_data_upload.py +309 -0
  88. clarifai-11.4.0/tests/test_eval.py +141 -0
  89. clarifai-11.4.0/tests/test_misc.py +87 -0
  90. clarifai-11.4.0/tests/test_model_predict.py +136 -0
  91. clarifai-11.4.0/tests/test_model_train.py +121 -0
  92. clarifai-11.4.0/tests/test_modules.py +168 -0
  93. clarifai-11.4.0/tests/test_rag.py +66 -0
  94. clarifai-11.4.0/tests/test_search.py +206 -0
  95. clarifai-11.4.0/tests/test_stub.py +99 -0
  96. clarifai-11.3.0rc2/clarifai/__init__.py +0 -1
  97. clarifai-11.3.0rc2/clarifai/__pycache__/__init__.cpython-310.pyc +0 -0
  98. clarifai-11.3.0rc2/clarifai/__pycache__/__init__.cpython-311.pyc +0 -0
  99. clarifai-11.3.0rc2/clarifai/__pycache__/__init__.cpython-39.pyc +0 -0
  100. clarifai-11.3.0rc2/clarifai/__pycache__/errors.cpython-310.pyc +0 -0
  101. clarifai-11.3.0rc2/clarifai/__pycache__/errors.cpython-311.pyc +0 -0
  102. clarifai-11.3.0rc2/clarifai/__pycache__/versions.cpython-310.pyc +0 -0
  103. clarifai-11.3.0rc2/clarifai/__pycache__/versions.cpython-311.pyc +0 -0
  104. clarifai-11.3.0rc2/clarifai/cli/__pycache__/__init__.cpython-310.pyc +0 -0
  105. clarifai-11.3.0rc2/clarifai/cli/__pycache__/__init__.cpython-311.pyc +0 -0
  106. clarifai-11.3.0rc2/clarifai/cli/__pycache__/base.cpython-310.pyc +0 -0
  107. clarifai-11.3.0rc2/clarifai/cli/__pycache__/base.cpython-311.pyc +0 -0
  108. clarifai-11.3.0rc2/clarifai/cli/__pycache__/base_cli.cpython-310.pyc +0 -0
  109. clarifai-11.3.0rc2/clarifai/cli/__pycache__/compute_cluster.cpython-310.pyc +0 -0
  110. clarifai-11.3.0rc2/clarifai/cli/__pycache__/compute_cluster.cpython-311.pyc +0 -0
  111. clarifai-11.3.0rc2/clarifai/cli/__pycache__/deployment.cpython-310.pyc +0 -0
  112. clarifai-11.3.0rc2/clarifai/cli/__pycache__/deployment.cpython-311.pyc +0 -0
  113. clarifai-11.3.0rc2/clarifai/cli/__pycache__/model.cpython-310.pyc +0 -0
  114. clarifai-11.3.0rc2/clarifai/cli/__pycache__/model.cpython-311.pyc +0 -0
  115. clarifai-11.3.0rc2/clarifai/cli/__pycache__/model_cli.cpython-310.pyc +0 -0
  116. clarifai-11.3.0rc2/clarifai/cli/__pycache__/nodepool.cpython-310.pyc +0 -0
  117. clarifai-11.3.0rc2/clarifai/cli/__pycache__/nodepool.cpython-311.pyc +0 -0
  118. clarifai-11.3.0rc2/clarifai/cli/base.py +0 -260
  119. clarifai-11.3.0rc2/clarifai/cli/compute_cluster.py +0 -61
  120. clarifai-11.3.0rc2/clarifai/cli/deployment.py +0 -112
  121. clarifai-11.3.0rc2/clarifai/cli/model.py +0 -336
  122. clarifai-11.3.0rc2/clarifai/cli/nodepool.py +0 -112
  123. clarifai-11.3.0rc2/clarifai/client/__pycache__/__init__.cpython-310.pyc +0 -0
  124. clarifai-11.3.0rc2/clarifai/client/__pycache__/__init__.cpython-311.pyc +0 -0
  125. clarifai-11.3.0rc2/clarifai/client/__pycache__/__init__.cpython-39.pyc +0 -0
  126. clarifai-11.3.0rc2/clarifai/client/__pycache__/app.cpython-310.pyc +0 -0
  127. clarifai-11.3.0rc2/clarifai/client/__pycache__/app.cpython-311.pyc +0 -0
  128. clarifai-11.3.0rc2/clarifai/client/__pycache__/app.cpython-39.pyc +0 -0
  129. clarifai-11.3.0rc2/clarifai/client/__pycache__/base.cpython-310.pyc +0 -0
  130. clarifai-11.3.0rc2/clarifai/client/__pycache__/base.cpython-311.pyc +0 -0
  131. clarifai-11.3.0rc2/clarifai/client/__pycache__/compute_cluster.cpython-310.pyc +0 -0
  132. clarifai-11.3.0rc2/clarifai/client/__pycache__/compute_cluster.cpython-311.pyc +0 -0
  133. clarifai-11.3.0rc2/clarifai/client/__pycache__/dataset.cpython-310.pyc +0 -0
  134. clarifai-11.3.0rc2/clarifai/client/__pycache__/dataset.cpython-311.pyc +0 -0
  135. clarifai-11.3.0rc2/clarifai/client/__pycache__/deployment.cpython-310.pyc +0 -0
  136. clarifai-11.3.0rc2/clarifai/client/__pycache__/deployment.cpython-311.pyc +0 -0
  137. clarifai-11.3.0rc2/clarifai/client/__pycache__/input.cpython-310.pyc +0 -0
  138. clarifai-11.3.0rc2/clarifai/client/__pycache__/input.cpython-311.pyc +0 -0
  139. clarifai-11.3.0rc2/clarifai/client/__pycache__/lister.cpython-310.pyc +0 -0
  140. clarifai-11.3.0rc2/clarifai/client/__pycache__/lister.cpython-311.pyc +0 -0
  141. clarifai-11.3.0rc2/clarifai/client/__pycache__/model.cpython-310.pyc +0 -0
  142. clarifai-11.3.0rc2/clarifai/client/__pycache__/model.cpython-311.pyc +0 -0
  143. clarifai-11.3.0rc2/clarifai/client/__pycache__/module.cpython-310.pyc +0 -0
  144. clarifai-11.3.0rc2/clarifai/client/__pycache__/module.cpython-311.pyc +0 -0
  145. clarifai-11.3.0rc2/clarifai/client/__pycache__/nodepool.cpython-310.pyc +0 -0
  146. clarifai-11.3.0rc2/clarifai/client/__pycache__/nodepool.cpython-311.pyc +0 -0
  147. clarifai-11.3.0rc2/clarifai/client/__pycache__/search.cpython-310.pyc +0 -0
  148. clarifai-11.3.0rc2/clarifai/client/__pycache__/search.cpython-311.pyc +0 -0
  149. clarifai-11.3.0rc2/clarifai/client/__pycache__/user.cpython-310.pyc +0 -0
  150. clarifai-11.3.0rc2/clarifai/client/__pycache__/user.cpython-311.pyc +0 -0
  151. clarifai-11.3.0rc2/clarifai/client/__pycache__/workflow.cpython-310.pyc +0 -0
  152. clarifai-11.3.0rc2/clarifai/client/__pycache__/workflow.cpython-311.pyc +0 -0
  153. clarifai-11.3.0rc2/clarifai/client/app.py +0 -940
  154. clarifai-11.3.0rc2/clarifai/client/auth/__pycache__/__init__.cpython-310.pyc +0 -0
  155. clarifai-11.3.0rc2/clarifai/client/auth/__pycache__/__init__.cpython-311.pyc +0 -0
  156. clarifai-11.3.0rc2/clarifai/client/auth/__pycache__/helper.cpython-310.pyc +0 -0
  157. clarifai-11.3.0rc2/clarifai/client/auth/__pycache__/helper.cpython-311.pyc +0 -0
  158. clarifai-11.3.0rc2/clarifai/client/auth/__pycache__/register.cpython-310.pyc +0 -0
  159. clarifai-11.3.0rc2/clarifai/client/auth/__pycache__/register.cpython-311.pyc +0 -0
  160. clarifai-11.3.0rc2/clarifai/client/auth/__pycache__/stub.cpython-310.pyc +0 -0
  161. clarifai-11.3.0rc2/clarifai/client/auth/__pycache__/stub.cpython-311.pyc +0 -0
  162. clarifai-11.3.0rc2/clarifai/client/auth/helper.py +0 -383
  163. clarifai-11.3.0rc2/clarifai/client/auth/register.py +0 -23
  164. clarifai-11.3.0rc2/clarifai/client/auth/stub.py +0 -154
  165. clarifai-11.3.0rc2/clarifai/client/base.py +0 -200
  166. clarifai-11.3.0rc2/clarifai/client/compute_cluster.py +0 -197
  167. clarifai-11.3.0rc2/clarifai/client/dataset.py +0 -741
  168. clarifai-11.3.0rc2/clarifai/client/deployment.py +0 -66
  169. clarifai-11.3.0rc2/clarifai/client/input.py +0 -1140
  170. clarifai-11.3.0rc2/clarifai/client/lister.py +0 -54
  171. clarifai-11.3.0rc2/clarifai/client/model.py +0 -1772
  172. clarifai-11.3.0rc2/clarifai/client/model_client.py +0 -530
  173. clarifai-11.3.0rc2/clarifai/client/module.py +0 -106
  174. clarifai-11.3.0rc2/clarifai/client/nodepool.py +0 -230
  175. clarifai-11.3.0rc2/clarifai/client/search.py +0 -337
  176. clarifai-11.3.0rc2/clarifai/client/user.py +0 -434
  177. clarifai-11.3.0rc2/clarifai/client/workflow.py +0 -297
  178. clarifai-11.3.0rc2/clarifai/constants/__pycache__/base.cpython-310.pyc +0 -0
  179. clarifai-11.3.0rc2/clarifai/constants/__pycache__/base.cpython-311.pyc +0 -0
  180. clarifai-11.3.0rc2/clarifai/constants/__pycache__/dataset.cpython-310.pyc +0 -0
  181. clarifai-11.3.0rc2/clarifai/constants/__pycache__/dataset.cpython-311.pyc +0 -0
  182. clarifai-11.3.0rc2/clarifai/constants/__pycache__/input.cpython-310.pyc +0 -0
  183. clarifai-11.3.0rc2/clarifai/constants/__pycache__/input.cpython-311.pyc +0 -0
  184. clarifai-11.3.0rc2/clarifai/constants/__pycache__/model.cpython-310.pyc +0 -0
  185. clarifai-11.3.0rc2/clarifai/constants/__pycache__/model.cpython-311.pyc +0 -0
  186. clarifai-11.3.0rc2/clarifai/constants/__pycache__/rag.cpython-310.pyc +0 -0
  187. clarifai-11.3.0rc2/clarifai/constants/__pycache__/rag.cpython-311.pyc +0 -0
  188. clarifai-11.3.0rc2/clarifai/constants/__pycache__/search.cpython-310.pyc +0 -0
  189. clarifai-11.3.0rc2/clarifai/constants/__pycache__/search.cpython-311.pyc +0 -0
  190. clarifai-11.3.0rc2/clarifai/constants/__pycache__/workflow.cpython-310.pyc +0 -0
  191. clarifai-11.3.0rc2/clarifai/constants/__pycache__/workflow.cpython-311.pyc +0 -0
  192. clarifai-11.3.0rc2/clarifai/constants/dataset.py +0 -26
  193. clarifai-11.3.0rc2/clarifai/datasets/__pycache__/__init__.cpython-310.pyc +0 -0
  194. clarifai-11.3.0rc2/clarifai/datasets/__pycache__/__init__.cpython-311.pyc +0 -0
  195. clarifai-11.3.0rc2/clarifai/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
  196. clarifai-11.3.0rc2/clarifai/datasets/export/__pycache__/__init__.cpython-310.pyc +0 -0
  197. clarifai-11.3.0rc2/clarifai/datasets/export/__pycache__/__init__.cpython-311.pyc +0 -0
  198. clarifai-11.3.0rc2/clarifai/datasets/export/__pycache__/__init__.cpython-39.pyc +0 -0
  199. clarifai-11.3.0rc2/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-310.pyc +0 -0
  200. clarifai-11.3.0rc2/clarifai/datasets/export/__pycache__/inputs_annotations.cpython-311.pyc +0 -0
  201. clarifai-11.3.0rc2/clarifai/datasets/export/inputs_annotations.py +0 -240
  202. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/__init__.cpython-310.pyc +0 -0
  203. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/__init__.cpython-311.pyc +0 -0
  204. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/__init__.cpython-39.pyc +0 -0
  205. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/base.cpython-310.pyc +0 -0
  206. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/base.cpython-311.pyc +0 -0
  207. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/features.cpython-310.pyc +0 -0
  208. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/features.cpython-311.pyc +0 -0
  209. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/image.cpython-310.pyc +0 -0
  210. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/image.cpython-311.pyc +0 -0
  211. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/multimodal.cpython-310.pyc +0 -0
  212. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/multimodal.cpython-311.pyc +0 -0
  213. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/text.cpython-310.pyc +0 -0
  214. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/text.cpython-311.pyc +0 -0
  215. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/utils.cpython-310.pyc +0 -0
  216. clarifai-11.3.0rc2/clarifai/datasets/upload/__pycache__/utils.cpython-311.pyc +0 -0
  217. clarifai-11.3.0rc2/clarifai/datasets/upload/base.py +0 -71
  218. clarifai-11.3.0rc2/clarifai/datasets/upload/features.py +0 -61
  219. clarifai-11.3.0rc2/clarifai/datasets/upload/image.py +0 -227
  220. clarifai-11.3.0rc2/clarifai/datasets/upload/loaders/__pycache__/__init__.cpython-311.pyc +0 -0
  221. clarifai-11.3.0rc2/clarifai/datasets/upload/loaders/__pycache__/__init__.cpython-39.pyc +0 -0
  222. clarifai-11.3.0rc2/clarifai/datasets/upload/loaders/__pycache__/coco_detection.cpython-311.pyc +0 -0
  223. clarifai-11.3.0rc2/clarifai/datasets/upload/loaders/__pycache__/imagenet_classification.cpython-311.pyc +0 -0
  224. clarifai-11.3.0rc2/clarifai/datasets/upload/loaders/coco_captions.py +0 -54
  225. clarifai-11.3.0rc2/clarifai/datasets/upload/loaders/coco_detection.py +0 -80
  226. clarifai-11.3.0rc2/clarifai/datasets/upload/loaders/imagenet_classification.py +0 -62
  227. clarifai-11.3.0rc2/clarifai/datasets/upload/loaders/xview_detection.py +0 -152
  228. clarifai-11.3.0rc2/clarifai/datasets/upload/multimodal.py +0 -69
  229. clarifai-11.3.0rc2/clarifai/datasets/upload/text.py +0 -60
  230. clarifai-11.3.0rc2/clarifai/datasets/upload/utils.py +0 -254
  231. clarifai-11.3.0rc2/clarifai/errors.py +0 -89
  232. clarifai-11.3.0rc2/clarifai/models/__pycache__/__init__.cpython-39.pyc +0 -0
  233. clarifai-11.3.0rc2/clarifai/models/api.py +0 -283
  234. clarifai-11.3.0rc2/clarifai/modules/__pycache__/__init__.cpython-39.pyc +0 -0
  235. clarifai-11.3.0rc2/clarifai/modules/css.py +0 -60
  236. clarifai-11.3.0rc2/clarifai/modules/pages.py +0 -42
  237. clarifai-11.3.0rc2/clarifai/rag/__pycache__/__init__.cpython-310.pyc +0 -0
  238. clarifai-11.3.0rc2/clarifai/rag/__pycache__/__init__.cpython-311.pyc +0 -0
  239. clarifai-11.3.0rc2/clarifai/rag/__pycache__/__init__.cpython-39.pyc +0 -0
  240. clarifai-11.3.0rc2/clarifai/rag/__pycache__/rag.cpython-310.pyc +0 -0
  241. clarifai-11.3.0rc2/clarifai/rag/__pycache__/rag.cpython-311.pyc +0 -0
  242. clarifai-11.3.0rc2/clarifai/rag/__pycache__/rag.cpython-39.pyc +0 -0
  243. clarifai-11.3.0rc2/clarifai/rag/__pycache__/utils.cpython-310.pyc +0 -0
  244. clarifai-11.3.0rc2/clarifai/rag/__pycache__/utils.cpython-311.pyc +0 -0
  245. clarifai-11.3.0rc2/clarifai/rag/rag.py +0 -319
  246. clarifai-11.3.0rc2/clarifai/rag/utils.py +0 -118
  247. clarifai-11.3.0rc2/clarifai/runners/__pycache__/__init__.cpython-310.pyc +0 -0
  248. clarifai-11.3.0rc2/clarifai/runners/__pycache__/__init__.cpython-311.pyc +0 -0
  249. clarifai-11.3.0rc2/clarifai/runners/__pycache__/__init__.cpython-39.pyc +0 -0
  250. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/__init__.cpython-310.pyc +0 -0
  251. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/__init__.cpython-311.pyc +0 -0
  252. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/__init__.cpython-39.pyc +0 -0
  253. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/base_typed_model.cpython-310.pyc +0 -0
  254. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/base_typed_model.cpython-311.pyc +0 -0
  255. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/base_typed_model.cpython-39.pyc +0 -0
  256. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/model_builder.cpython-311.pyc +0 -0
  257. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/model_class.cpython-310.pyc +0 -0
  258. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/model_class.cpython-311.pyc +0 -0
  259. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/model_run_locally.cpython-310-pytest-7.1.2.pyc +0 -0
  260. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/model_run_locally.cpython-310.pyc +0 -0
  261. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/model_run_locally.cpython-311.pyc +0 -0
  262. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/model_runner.cpython-310.pyc +0 -0
  263. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/model_runner.cpython-311.pyc +0 -0
  264. clarifai-11.3.0rc2/clarifai/runners/models/__pycache__/model_upload.cpython-310.pyc +0 -0
  265. clarifai-11.3.0rc2/clarifai/runners/models/model_builder.py +0 -875
  266. clarifai-11.3.0rc2/clarifai/runners/models/model_class.py +0 -359
  267. clarifai-11.3.0rc2/clarifai/runners/models/model_run_locally.py +0 -446
  268. clarifai-11.3.0rc2/clarifai/runners/models/model_runner.py +0 -181
  269. clarifai-11.3.0rc2/clarifai/runners/models/model_servicer.py +0 -93
  270. clarifai-11.3.0rc2/clarifai/runners/server.py +0 -128
  271. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/__init__.cpython-310.pyc +0 -0
  272. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  273. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/__init__.cpython-38.pyc +0 -0
  274. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  275. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/buffered_stream.cpython-310.pyc +0 -0
  276. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/buffered_stream.cpython-38.pyc +0 -0
  277. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/buffered_stream.cpython-39.pyc +0 -0
  278. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/const.cpython-310.pyc +0 -0
  279. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/const.cpython-311.pyc +0 -0
  280. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/constants.cpython-310.pyc +0 -0
  281. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/constants.cpython-38.pyc +0 -0
  282. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/constants.cpython-39.pyc +0 -0
  283. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/data_handler.cpython-310.pyc +0 -0
  284. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/data_handler.cpython-311.pyc +0 -0
  285. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/data_handler.cpython-38.pyc +0 -0
  286. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/data_handler.cpython-39.pyc +0 -0
  287. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/data_utils.cpython-310.pyc +0 -0
  288. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/data_utils.cpython-311.pyc +0 -0
  289. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/data_utils.cpython-38.pyc +0 -0
  290. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/data_utils.cpython-39.pyc +0 -0
  291. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/grpc_server.cpython-310.pyc +0 -0
  292. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/grpc_server.cpython-38.pyc +0 -0
  293. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/grpc_server.cpython-39.pyc +0 -0
  294. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/health.cpython-310.pyc +0 -0
  295. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/health.cpython-38.pyc +0 -0
  296. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/health.cpython-39.pyc +0 -0
  297. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/loader.cpython-310.pyc +0 -0
  298. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/loader.cpython-311.pyc +0 -0
  299. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/logging.cpython-310.pyc +0 -0
  300. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/logging.cpython-38.pyc +0 -0
  301. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/logging.cpython-39.pyc +0 -0
  302. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/stream_source.cpython-310.pyc +0 -0
  303. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/stream_source.cpython-39.pyc +0 -0
  304. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/url_fetcher.cpython-310.pyc +0 -0
  305. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/url_fetcher.cpython-311.pyc +0 -0
  306. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/url_fetcher.cpython-38.pyc +0 -0
  307. clarifai-11.3.0rc2/clarifai/runners/utils/__pycache__/url_fetcher.cpython-39.pyc +0 -0
  308. clarifai-11.3.0rc2/clarifai/runners/utils/code_script.py +0 -217
  309. clarifai-11.3.0rc2/clarifai/runners/utils/data_types.py +0 -469
  310. clarifai-11.3.0rc2/clarifai/runners/utils/data_utils.py +0 -479
  311. clarifai-11.3.0rc2/clarifai/runners/utils/loader.py +0 -246
  312. clarifai-11.3.0rc2/clarifai/runners/utils/method_signatures.py +0 -508
  313. clarifai-11.3.0rc2/clarifai/runners/utils/openai_convertor.py +0 -167
  314. clarifai-11.3.0rc2/clarifai/runners/utils/serializers.py +0 -222
  315. clarifai-11.3.0rc2/clarifai/runners/utils/url_fetcher.py +0 -49
  316. clarifai-11.3.0rc2/clarifai/schema/__pycache__/search.cpython-310.pyc +0 -0
  317. clarifai-11.3.0rc2/clarifai/schema/__pycache__/search.cpython-311.pyc +0 -0
  318. clarifai-11.3.0rc2/clarifai/schema/search.py +0 -72
  319. clarifai-11.3.0rc2/clarifai/urls/__pycache__/helper.cpython-310.pyc +0 -0
  320. clarifai-11.3.0rc2/clarifai/urls/__pycache__/helper.cpython-311.pyc +0 -0
  321. clarifai-11.3.0rc2/clarifai/urls/helper.py +0 -120
  322. clarifai-11.3.0rc2/clarifai/utils/__pycache__/__init__.cpython-310.pyc +0 -0
  323. clarifai-11.3.0rc2/clarifai/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  324. clarifai-11.3.0rc2/clarifai/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  325. clarifai-11.3.0rc2/clarifai/utils/__pycache__/cli.cpython-310.pyc +0 -0
  326. clarifai-11.3.0rc2/clarifai/utils/__pycache__/cli.cpython-311.pyc +0 -0
  327. clarifai-11.3.0rc2/clarifai/utils/__pycache__/config.cpython-311.pyc +0 -0
  328. clarifai-11.3.0rc2/clarifai/utils/__pycache__/constants.cpython-310.pyc +0 -0
  329. clarifai-11.3.0rc2/clarifai/utils/__pycache__/constants.cpython-311.pyc +0 -0
  330. clarifai-11.3.0rc2/clarifai/utils/__pycache__/logging.cpython-310.pyc +0 -0
  331. clarifai-11.3.0rc2/clarifai/utils/__pycache__/logging.cpython-311.pyc +0 -0
  332. clarifai-11.3.0rc2/clarifai/utils/__pycache__/misc.cpython-310.pyc +0 -0
  333. clarifai-11.3.0rc2/clarifai/utils/__pycache__/misc.cpython-311.pyc +0 -0
  334. clarifai-11.3.0rc2/clarifai/utils/__pycache__/model_train.cpython-310.pyc +0 -0
  335. clarifai-11.3.0rc2/clarifai/utils/__pycache__/model_train.cpython-311.pyc +0 -0
  336. clarifai-11.3.0rc2/clarifai/utils/__pycache__/protobuf.cpython-311.pyc +0 -0
  337. clarifai-11.3.0rc2/clarifai/utils/cli.py +0 -168
  338. clarifai-11.3.0rc2/clarifai/utils/config.py +0 -105
  339. clarifai-11.3.0rc2/clarifai/utils/constants.py +0 -7
  340. clarifai-11.3.0rc2/clarifai/utils/evaluation/__pycache__/__init__.cpython-311.pyc +0 -0
  341. clarifai-11.3.0rc2/clarifai/utils/evaluation/__pycache__/__init__.cpython-39.pyc +0 -0
  342. clarifai-11.3.0rc2/clarifai/utils/evaluation/__pycache__/helpers.cpython-311.pyc +0 -0
  343. clarifai-11.3.0rc2/clarifai/utils/evaluation/__pycache__/main.cpython-311.pyc +0 -0
  344. clarifai-11.3.0rc2/clarifai/utils/evaluation/__pycache__/main.cpython-39.pyc +0 -0
  345. clarifai-11.3.0rc2/clarifai/utils/evaluation/helpers.py +0 -527
  346. clarifai-11.3.0rc2/clarifai/utils/evaluation/main.py +0 -426
  347. clarifai-11.3.0rc2/clarifai/utils/evaluation/testset_annotation_parser.py +0 -150
  348. clarifai-11.3.0rc2/clarifai/utils/logging.py +0 -419
  349. clarifai-11.3.0rc2/clarifai/utils/misc.py +0 -102
  350. clarifai-11.3.0rc2/clarifai/utils/model_train.py +0 -162
  351. clarifai-11.3.0rc2/clarifai/utils/protobuf.py +0 -143
  352. clarifai-11.3.0rc2/clarifai/workflows/__pycache__/__init__.cpython-310.pyc +0 -0
  353. clarifai-11.3.0rc2/clarifai/workflows/__pycache__/__init__.cpython-311.pyc +0 -0
  354. clarifai-11.3.0rc2/clarifai/workflows/__pycache__/__init__.cpython-39.pyc +0 -0
  355. clarifai-11.3.0rc2/clarifai/workflows/__pycache__/export.cpython-310.pyc +0 -0
  356. clarifai-11.3.0rc2/clarifai/workflows/__pycache__/export.cpython-311.pyc +0 -0
  357. clarifai-11.3.0rc2/clarifai/workflows/__pycache__/utils.cpython-310.pyc +0 -0
  358. clarifai-11.3.0rc2/clarifai/workflows/__pycache__/utils.cpython-311.pyc +0 -0
  359. clarifai-11.3.0rc2/clarifai/workflows/__pycache__/validate.cpython-310.pyc +0 -0
  360. clarifai-11.3.0rc2/clarifai/workflows/__pycache__/validate.cpython-311.pyc +0 -0
  361. clarifai-11.3.0rc2/clarifai/workflows/export.py +0 -68
  362. clarifai-11.3.0rc2/clarifai/workflows/utils.py +0 -59
  363. clarifai-11.3.0rc2/clarifai/workflows/validate.py +0 -67
  364. clarifai-11.3.0rc2/clarifai.egg-info/SOURCES.txt +0 -322
  365. clarifai-11.3.0rc2/pyproject.toml +0 -2
  366. clarifai-11.3.0rc2/tests/test_app.py +0 -238
  367. clarifai-11.3.0rc2/tests/test_auth.py +0 -96
  368. clarifai-11.3.0rc2/tests/test_data_upload.py +0 -293
  369. clarifai-11.3.0rc2/tests/test_eval.py +0 -130
  370. clarifai-11.3.0rc2/tests/test_misc.py +0 -79
  371. clarifai-11.3.0rc2/tests/test_model_predict.py +0 -133
  372. clarifai-11.3.0rc2/tests/test_model_train.py +0 -107
  373. clarifai-11.3.0rc2/tests/test_modules.py +0 -156
  374. clarifai-11.3.0rc2/tests/test_rag.py +0 -66
  375. clarifai-11.3.0rc2/tests/test_search.py +0 -240
  376. clarifai-11.3.0rc2/tests/test_stub.py +0 -97
  377. {clarifai-11.3.0rc2 → clarifai-11.4.0}/LICENSE +0 -0
  378. {clarifai-11.3.0rc2 → clarifai-11.4.0}/MANIFEST.in +0 -0
  379. {clarifai-11.3.0rc2 → clarifai-11.4.0}/README.md +0 -0
  380. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/cli/README.md +0 -0
  381. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/cli/__init__.py +0 -0
  382. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/cli.py +0 -0
  383. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/client/auth/__init__.py +0 -0
  384. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/constants/base.py +0 -0
  385. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/constants/input.py +0 -0
  386. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/constants/rag.py +0 -0
  387. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/constants/search.py +0 -0
  388. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/constants/workflow.py +0 -0
  389. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/datasets/__init__.py +0 -0
  390. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/datasets/export/__init__.py +0 -0
  391. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/datasets/upload/__init__.py +0 -0
  392. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/datasets/upload/loaders/README.md +0 -0
  393. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/datasets/upload/loaders/__init__.py +0 -0
  394. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/models/__init__.py +0 -0
  395. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/modules/README.md +0 -0
  396. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/modules/__init__.py +0 -0
  397. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/modules/style.css +0 -0
  398. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/rag/__init__.py +0 -0
  399. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/runners/__init__.py +0 -0
  400. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/runners/dockerfile_template/Dockerfile.template +0 -0
  401. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/runners/models/__init__.py +0 -0
  402. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/runners/utils/__init__.py +0 -0
  403. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/utils/__init__.py +0 -0
  404. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/utils/evaluation/__init__.py +0 -0
  405. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai/workflows/__init__.py +0 -0
  406. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai.egg-info/dependency_links.txt +0 -0
  407. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai.egg-info/entry_points.txt +0 -0
  408. {clarifai-11.3.0rc2 → clarifai-11.4.0}/clarifai.egg-info/top_level.txt +0 -0
  409. {clarifai-11.3.0rc2 → clarifai-11.4.0}/setup.cfg +0 -0
@@ -1,7 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: clarifai
3
- Version: 11.3.0rc2
4
- Summary: Clarifai Python SDK
3
+ Version: 11.4.0
5
4
  Home-page: https://github.com/Clarifai/clarifai-python
6
5
  Author: Clarifai
7
6
  Author-email: support@clarifai.com
@@ -20,8 +19,8 @@ Classifier: Operating System :: OS Independent
20
19
  Requires-Python: >=3.8
21
20
  Description-Content-Type: text/markdown
22
21
  License-File: LICENSE
23
- Requires-Dist: clarifai-grpc>=11.3.3
24
- Requires-Dist: clarifai-protocol>=0.0.22
22
+ Requires-Dist: clarifai-grpc>=11.3.4
23
+ Requires-Dist: clarifai-protocol>=0.0.23
25
24
  Requires-Dist: numpy>=1.22.0
26
25
  Requires-Dist: tqdm>=4.65.0
27
26
  Requires-Dist: rich>=13.4.2
@@ -34,7 +33,18 @@ Requires-Dist: click>=8.1.7
34
33
  Requires-Dist: requests>=2.32.3
35
34
  Requires-Dist: aiohttp>=3.10.0
36
35
  Provides-Extra: all
37
- Requires-Dist: pycocotools==2.0.6; extra == "all"
36
+ Requires-Dist: pycocotools>=2.0.7; extra == "all"
37
+ Dynamic: author
38
+ Dynamic: author-email
39
+ Dynamic: classifier
40
+ Dynamic: description
41
+ Dynamic: description-content-type
42
+ Dynamic: home-page
43
+ Dynamic: license
44
+ Dynamic: license-file
45
+ Dynamic: provides-extra
46
+ Dynamic: requires-dist
47
+ Dynamic: requires-python
38
48
 
39
49
  <h1 align="center">
40
50
  <a href="https://www.clarifai.com/"><img alt="Clarifai" title="Clarifai" src="https://github.com/user-attachments/assets/623b883b-7fe5-4b95-bbfa-8691f5779af4"></a>
@@ -0,0 +1 @@
1
+ __version__ = "11.4.0"
@@ -1,4 +1,4 @@
1
1
  from clarifai.cli.base import main
2
2
 
3
3
  if __name__ == "__main__":
4
- main()
4
+ main()
@@ -0,0 +1,268 @@
1
+ import json
2
+ import os
3
+ import shutil
4
+ import sys
5
+
6
+ import click
7
+ import yaml
8
+
9
+ from clarifai.utils.cli import AliasedGroup, TableFormatter, load_command_modules
10
+ from clarifai.utils.config import Config, Context
11
+ from clarifai.utils.constants import DEFAULT_CONFIG
12
+ from clarifai.utils.logging import logger
13
+
14
+
15
+ # @click.group(cls=CustomMultiGroup)
16
+ @click.group(cls=AliasedGroup)
17
+ @click.option('--config', default=DEFAULT_CONFIG)
18
+ @click.pass_context
19
+ def cli(ctx, config):
20
+ """Clarifai CLI"""
21
+ ctx.ensure_object(dict)
22
+ if os.path.exists(config):
23
+ cfg = Config.from_yaml(filename=config)
24
+ ctx.obj = cfg
25
+ else:
26
+ cfg = Config(
27
+ filename=config,
28
+ current_context='default',
29
+ contexts={
30
+ 'default': Context(
31
+ 'default',
32
+ CLARIFAI_PAT=os.environ.get('CLARIFAI_PAT', ''),
33
+ CLARIFAI_USER_ID=os.environ.get('CLARIFAI_USER_ID', ''),
34
+ CLARIFAI_API_BASE=os.environ.get('CLARIFAI_API_BASE', 'api.clarifai.com'),
35
+ )
36
+ },
37
+ )
38
+ try:
39
+ cfg.to_yaml(config)
40
+ except Exception:
41
+ logger.warning(
42
+ "Could not write configuration to disk. Could be a read only file system."
43
+ )
44
+ ctx.obj = cfg # still have the default config even if couldn't write.
45
+
46
+
47
+ @cli.command()
48
+ @click.argument('shell', type=click.Choice(['bash', 'zsh']))
49
+ def shell_completion(shell):
50
+ """Shell completion script"""
51
+ os.system(f"_CLARIFAI_COMPLETE={shell}_source clarifai")
52
+
53
+
54
+ @cli.group(
55
+ ['cfg'],
56
+ cls=AliasedGroup,
57
+ context_settings={'max_content_width': shutil.get_terminal_size().columns - 10},
58
+ )
59
+ def config():
60
+ """Manage CLI configuration"""
61
+
62
+
63
+ @config.command(['e'])
64
+ @click.pass_context
65
+ def edit(ctx):
66
+ """Edit the configuration file"""
67
+ os.system(f'{os.environ.get("EDITOR", "vi")} {ctx.obj.filename}')
68
+
69
+
70
+ @config.command(['current'])
71
+ @click.option('-o', '--output-format', default='name', type=click.Choice(['name', 'json', 'yaml']))
72
+ @click.pass_context
73
+ def current_context(ctx, output_format):
74
+ """Get the current context"""
75
+ if output_format == 'name':
76
+ print(ctx.obj.current_context)
77
+ elif output_format == 'json':
78
+ print(json.dumps(ctx.obj.contexts[ctx.obj.current_context].to_serializable_dict()))
79
+ else:
80
+ print(yaml.safe_dump(ctx.obj.contexts[ctx.obj.current_context].to_serializable_dict()))
81
+
82
+
83
+ @config.command(['list', 'ls'])
84
+ @click.option(
85
+ '-o', '--output-format', default='wide', type=click.Choice(['wide', 'name', 'json', 'yaml'])
86
+ )
87
+ @click.pass_context
88
+ def get_contexts(ctx, output_format):
89
+ """Get all contexts"""
90
+ if output_format == 'wide':
91
+ columns = {
92
+ '': lambda c: '*' if c.name == ctx.obj.current_context else '',
93
+ 'NAME': lambda c: c.name,
94
+ 'USER_ID': lambda c: c.user_id,
95
+ 'API_BASE': lambda c: c.api_base,
96
+ 'PAT': lambda c: pat_display(c.pat),
97
+ }
98
+ additional_columns = set()
99
+ for cont in ctx.obj.contexts.values():
100
+ if 'env' in cont:
101
+ for key in cont.to_column_names():
102
+ if key not in columns:
103
+ additional_columns.add(key)
104
+ for key in sorted(additional_columns):
105
+ columns[key] = lambda c, k=key: getattr(c, k) if hasattr(c, k) else ""
106
+
107
+ formatter = TableFormatter(
108
+ custom_columns=columns,
109
+ )
110
+ print(formatter.format(ctx.obj.contexts.values(), fmt="plain"))
111
+ elif output_format == 'name':
112
+ print('\n'.join(ctx.obj.contexts))
113
+ elif output_format in ('json', 'yaml'):
114
+ dicts = [v.__dict__ for c, v in ctx.obj.contexts.items()]
115
+ for d in dicts:
116
+ d.pop('pat')
117
+ if output_format == 'json':
118
+ print(json.dumps(dicts))
119
+ elif output_format == 'yaml':
120
+ print(yaml.safe_dump(dicts))
121
+
122
+
123
+ @config.command(['use'])
124
+ @click.argument('context-name', type=str)
125
+ @click.pass_context
126
+ def use_context(ctx, context_name):
127
+ """Set the current context"""
128
+ if context_name not in ctx.obj.contexts:
129
+ raise click.UsageError('Context not found')
130
+ ctx.obj.current_context = context_name
131
+ ctx.obj.to_yaml()
132
+ print(f'Set {context_name} as the current context')
133
+
134
+
135
+ @config.command(['cat'])
136
+ @click.option('-o', '--output-format', default='yaml', type=click.Choice(['yaml', 'json']))
137
+ @click.pass_obj
138
+ def dump(ctx_obj, output_format):
139
+ """Dump the configuration to stdout"""
140
+ if output_format == 'yaml':
141
+ yaml.safe_dump(ctx_obj.to_dict(), sys.stdout)
142
+ else:
143
+ json.dump(ctx_obj.to_dict(), sys.stdout, indent=2)
144
+
145
+
146
+ @cli.command()
147
+ @click.argument('api_url', default="https://api.clarifai.com")
148
+ @click.option('--user_id', required=False, help='User ID')
149
+ @click.pass_context
150
+ def login(ctx, api_url, user_id):
151
+ """Login command to set PAT and other configurations."""
152
+
153
+ name = input('context name (default: "default"): ')
154
+ user_id = user_id if user_id is not None else input('user id: ')
155
+ pat = input_or_default(
156
+ 'personal access token value (default: "ENVVAR" to get our of env var rather than config): ',
157
+ 'ENVVAR',
158
+ )
159
+
160
+ context = Context(
161
+ name,
162
+ CLARIFAI_API_BASE=api_url,
163
+ CLARIFAI_USER_ID=user_id,
164
+ CLARIFAI_PAT=pat,
165
+ )
166
+
167
+ if context.name == '':
168
+ context.name = 'default'
169
+
170
+ ctx.obj.contexts[context.name] = context
171
+ ctx.obj.current_context = context.name
172
+
173
+ ctx.obj.to_yaml()
174
+
175
+
176
+ @cli.group(cls=AliasedGroup)
177
+ def context():
178
+ """Manage contexts"""
179
+
180
+
181
+ def pat_display(pat):
182
+ return pat[:5] + "****"
183
+
184
+
185
+ def input_or_default(prompt, default):
186
+ value = input(prompt)
187
+ return value if value else default
188
+
189
+
190
+ @context.command()
191
+ @click.argument('name')
192
+ @click.option('--user-id', required=False, help='User ID')
193
+ @click.option('--base-url', required=False, help='Base URL')
194
+ @click.option('--pat', required=False, help='Personal access token')
195
+ @click.pass_context
196
+ def create(
197
+ ctx,
198
+ name,
199
+ user_id=None,
200
+ base_url=None,
201
+ pat=None,
202
+ ):
203
+ """Create a new context"""
204
+ if name in ctx.obj.contexts:
205
+ print(f'{name} already exists')
206
+ sys.exit(1)
207
+ if not user_id:
208
+ user_id = input('user id: ')
209
+ if not base_url:
210
+ base_url = input_or_default(
211
+ 'base url (default: https://api.clarifai.com): ', 'https://api.clarifai.com'
212
+ )
213
+ if not pat:
214
+ pat = input_or_default(
215
+ 'personal access token value (default: "ENVVAR" to get our of env var rather than config): ',
216
+ 'ENVVAR',
217
+ )
218
+
219
+ context = Context(name, CLARIFAI_USER_ID=user_id, CLARIFAI_API_BASE=base_url, CLARIFAI_PAT=pat)
220
+ ctx.obj.contexts[context.name] = context
221
+ ctx.obj.to_yaml()
222
+
223
+
224
+ # write a click command to delete a context
225
+ @context.command(['rm'])
226
+ @click.argument('name')
227
+ @click.pass_context
228
+ def delete(ctx, name):
229
+ """Delete a context"""
230
+ if name not in ctx.obj.contexts:
231
+ print(f'{name} is not a valid context')
232
+ sys.exit(1)
233
+ ctx.obj.contexts.pop(name)
234
+ ctx.obj.to_yaml()
235
+ print(f'{name} deleted')
236
+
237
+
238
+ @context.command()
239
+ @click.argument('name', type=str)
240
+ @click.pass_context
241
+ def use(ctx, name):
242
+ """Set the current context"""
243
+ if name not in ctx.obj.contexts:
244
+ raise click.UsageError('Context not found')
245
+ ctx.obj.current_context = name
246
+ ctx.obj.to_yaml()
247
+ print(f'Set {name} as the current context')
248
+
249
+
250
+ @cli.command()
251
+ @click.argument('script', type=str)
252
+ @click.option('--context', type=str, help='Context to use')
253
+ @click.pass_context
254
+ def run(ctx, script, context=None):
255
+ """Execute a script with the current context's environment"""
256
+ context = ctx.obj.current if not context else context
257
+ cmd = f'CLARIFAI_USER_ID={context.user_id} CLARIFAI_API_BASE={context.base_url} CLARIFAI_PAT={context.pat} '
258
+ cmd += ' '.join([f'{k}={v}' for k, v in context.env.items()])
259
+ cmd += f' {script}'
260
+ os.system(cmd)
261
+
262
+
263
+ # Import the CLI commands to register them
264
+ load_command_modules()
265
+
266
+
267
+ def main():
268
+ cli()
@@ -0,0 +1,75 @@
1
+ import shutil
2
+
3
+ import click
4
+
5
+ from clarifai.cli.base import cli
6
+ from clarifai.utils.cli import AliasedGroup, display_co_resources, validate_context
7
+
8
+
9
+ @cli.group(
10
+ ['computecluster', 'cc'],
11
+ cls=AliasedGroup,
12
+ context_settings={'max_content_width': shutil.get_terminal_size().columns - 10},
13
+ )
14
+ def computecluster():
15
+ """Manage Compute Clusters: create, delete, list"""
16
+
17
+
18
+ @computecluster.command(['c'])
19
+ @click.argument('compute_cluster_id')
20
+ @click.option(
21
+ '--config',
22
+ type=click.Path(exists=True),
23
+ required=True,
24
+ help='Path to the compute cluster config file.',
25
+ )
26
+ @click.pass_context
27
+ def create(ctx, compute_cluster_id, config):
28
+ """Create a new Compute Cluster with the given config file."""
29
+ from clarifai.client.user import User
30
+
31
+ validate_context(ctx)
32
+ user = User(
33
+ user_id=ctx.obj.current.user_id, pat=ctx.obj.current.pat, base_url=ctx.obj.current.api_base
34
+ )
35
+ if compute_cluster_id:
36
+ user.create_compute_cluster(config, compute_cluster_id=compute_cluster_id)
37
+ else:
38
+ user.create_compute_cluster(config)
39
+
40
+
41
+ @computecluster.command(['ls'])
42
+ @click.option('--page_no', required=False, help='Page number to list.', default=1)
43
+ @click.option('--per_page', required=False, help='Number of items per page.', default=16)
44
+ @click.pass_context
45
+ def list(ctx, page_no, per_page):
46
+ """List all compute clusters for the user."""
47
+ from clarifai.client.user import User
48
+
49
+ validate_context(ctx)
50
+ user = User(
51
+ user_id=ctx.obj.current.user_id, pat=ctx.obj.current.pat, base_url=ctx.obj.current.api_base
52
+ )
53
+ response = user.list_compute_clusters(page_no, per_page)
54
+ display_co_resources(
55
+ response,
56
+ custom_columns={
57
+ 'ID': lambda c: c.id,
58
+ 'USER_ID': lambda c: c.user_id,
59
+ 'DESCRIPTION': lambda c: c.description,
60
+ },
61
+ )
62
+
63
+
64
+ @computecluster.command(['rm'])
65
+ @click.argument('compute_cluster_id')
66
+ @click.pass_context
67
+ def delete(ctx, compute_cluster_id):
68
+ """Deletes a compute cluster for the user."""
69
+ from clarifai.client.user import User
70
+
71
+ validate_context(ctx)
72
+ user = User(
73
+ user_id=ctx.obj.current.user_id, pat=ctx.obj.current.pat, base_url=ctx.obj.current.api_base
74
+ )
75
+ user.delete_compute_clusters([compute_cluster_id])
@@ -0,0 +1,129 @@
1
+ import shutil
2
+
3
+ import click
4
+
5
+ from clarifai.cli.base import cli
6
+ from clarifai.utils.cli import AliasedGroup, display_co_resources, from_yaml, validate_context
7
+
8
+
9
+ @cli.group(
10
+ ['deployment', 'dp'],
11
+ cls=AliasedGroup,
12
+ context_settings={'max_content_width': shutil.get_terminal_size().columns - 10},
13
+ )
14
+ def deployment():
15
+ """Manage Deployments: create, delete, list"""
16
+
17
+
18
+ @deployment.command(['c'])
19
+ @click.argument('nodepool_id')
20
+ @click.argument('deployment_id')
21
+ @click.option(
22
+ '--config',
23
+ type=click.Path(exists=True),
24
+ required=True,
25
+ help='Path to the deployment config file.',
26
+ )
27
+ @click.pass_context
28
+ def create(ctx, nodepool_id, deployment_id, config):
29
+ """Create a new Deployment with the given config file."""
30
+
31
+ from clarifai.client.nodepool import Nodepool
32
+
33
+ validate_context(ctx)
34
+ if not nodepool_id:
35
+ deployment_config = from_yaml(config)
36
+ nodepool_id = deployment_config['deployment']['nodepools'][0]['id']
37
+
38
+ nodepool = Nodepool(
39
+ nodepool_id=nodepool_id,
40
+ user_id=ctx.obj.current.user_id,
41
+ pat=ctx.obj.current.pat,
42
+ base_url=ctx.obj.current.api_base,
43
+ )
44
+ if deployment_id:
45
+ nodepool.create_deployment(config, deployment_id=deployment_id)
46
+ else:
47
+ nodepool.create_deployment(config)
48
+
49
+
50
+ @deployment.command(['ls'])
51
+ @click.argument('nodepool_id', default="")
52
+ @click.option('--page_no', required=False, help='Page number to list.', default=1)
53
+ @click.option('--per_page', required=False, help='Number of items per page.', default=16)
54
+ @click.pass_context
55
+ def list(ctx, nodepool_id, page_no, per_page):
56
+ """List all deployments for the nodepool."""
57
+ from clarifai.client.compute_cluster import ComputeCluster
58
+ from clarifai.client.nodepool import Nodepool
59
+ from clarifai.client.user import User
60
+
61
+ validate_context(ctx)
62
+ if nodepool_id:
63
+ nodepool = Nodepool(
64
+ nodepool_id=nodepool_id,
65
+ user_id=ctx.obj.current.user_id,
66
+ pat=ctx.obj.current.pat,
67
+ base_url=ctx.obj.current.api_base,
68
+ )
69
+ response = nodepool.list_deployments(page_no=page_no, per_page=per_page)
70
+ else:
71
+ user = User(
72
+ user_id=ctx.obj.current.user_id,
73
+ pat=ctx.obj.current.pat,
74
+ base_url=ctx.obj.current.api_base,
75
+ )
76
+ ccs = user.list_compute_clusters(page_no, per_page)
77
+ nps = []
78
+ for cc in ccs:
79
+ compute_cluster = ComputeCluster(
80
+ compute_cluster_id=cc.id,
81
+ user_id=ctx.obj.current.user_id,
82
+ pat=ctx.obj.current.pat,
83
+ base_url=ctx.obj.current.api_base,
84
+ )
85
+ nps.extend([i for i in compute_cluster.list_nodepools(page_no, per_page)])
86
+ response = []
87
+ for np in nps:
88
+ nodepool = Nodepool(
89
+ nodepool_id=np.id,
90
+ user_id=ctx.obj.current.user_id,
91
+ pat=ctx.obj.current.pat,
92
+ base_url=ctx.obj.current.api_base,
93
+ )
94
+ response.extend(
95
+ [i for i in nodepool.list_deployments(page_no=page_no, per_page=per_page)]
96
+ )
97
+
98
+ display_co_resources(
99
+ response,
100
+ custom_columns={
101
+ 'ID': lambda c: c.id,
102
+ 'USER_ID': lambda c: c.user_id,
103
+ 'COMPUTE_CLUSTER_ID': lambda c: c.nodepools[0].compute_cluster.id,
104
+ 'NODEPOOL_ID': lambda c: c.nodepools[0].id,
105
+ 'MODEL_USER_ID': lambda c: c.worker.model.user_id,
106
+ 'MODEL_APP_ID': lambda c: c.worker.model.app_id,
107
+ 'MODEL_ID': lambda c: c.worker.model.id,
108
+ 'MODEL_VERSION_ID': lambda c: c.worker.model.model_version.id,
109
+ 'DESCRIPTION': lambda c: c.description,
110
+ },
111
+ )
112
+
113
+
114
+ @deployment.command(['rm'])
115
+ @click.argument('nodepool_id')
116
+ @click.argument('deployment_id')
117
+ @click.pass_context
118
+ def delete(ctx, nodepool_id, deployment_id):
119
+ """Deletes a deployment for the nodepool."""
120
+ from clarifai.client.nodepool import Nodepool
121
+
122
+ validate_context(ctx)
123
+ nodepool = Nodepool(
124
+ nodepool_id=nodepool_id,
125
+ user_id=ctx.obj.current.user_id,
126
+ pat=ctx.obj.current.pat,
127
+ base_url=ctx.obj.current.api_base,
128
+ )
129
+ nodepool.delete_deployments([deployment_id])