clarifai 9.10.1__py3-none-any.whl → 9.10.3__py3-none-any.whl

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 (323) hide show
  1. clarifai/client/__init__.py +3 -2
  2. clarifai/client/app.py +39 -23
  3. clarifai/client/base.py +6 -6
  4. clarifai/client/dataset.py +113 -55
  5. clarifai/client/input.py +47 -55
  6. clarifai/client/model.py +27 -25
  7. clarifai/client/module.py +13 -11
  8. clarifai/client/runner.py +5 -3
  9. clarifai/client/search.py +29 -10
  10. clarifai/client/user.py +14 -8
  11. clarifai/client/workflow.py +22 -20
  12. clarifai/constants/dataset.py +22 -0
  13. clarifai/datasets/upload/base.py +9 -7
  14. clarifai/datasets/upload/features.py +3 -3
  15. clarifai/datasets/upload/image.py +49 -50
  16. clarifai/datasets/upload/loaders/coco_captions.py +26 -80
  17. clarifai/datasets/upload/loaders/coco_detection.py +56 -115
  18. clarifai/datasets/upload/loaders/coco_segmentation.py +69 -137
  19. clarifai/datasets/upload/loaders/imagenet_classification.py +2 -3
  20. clarifai/datasets/upload/loaders/xview_detection.py +3 -3
  21. clarifai/datasets/upload/text.py +16 -16
  22. clarifai/datasets/upload/utils.py +196 -21
  23. clarifai/utils/misc.py +21 -0
  24. clarifai/versions.py +1 -1
  25. {clarifai-9.10.1.dist-info → clarifai-9.10.3.dist-info}/METADATA +3 -3
  26. clarifai-9.10.3.dist-info/RECORD +96 -0
  27. clarifai-9.10.3.dist-info/top_level.txt +1 -0
  28. clarifai/auth/__init__.py +0 -6
  29. clarifai/auth/helper.py +0 -367
  30. clarifai/auth/register.py +0 -23
  31. clarifai/auth/stub.py +0 -127
  32. clarifai/datasets/upload/examples/README.md +0 -31
  33. clarifai/datasets/upload/examples/image_classification/__init__.py +0 -0
  34. clarifai/datasets/upload/examples/image_classification/cifar10/__init__.py +0 -0
  35. clarifai/datasets/upload/examples/image_classification/cifar10/cifar_small_test.csv +0 -10
  36. clarifai/datasets/upload/examples/image_classification/cifar10/cifar_small_train.csv +0 -10
  37. clarifai/datasets/upload/examples/image_classification/cifar10/dataset.py +0 -46
  38. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_700.jpg +0 -0
  39. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_701.jpg +0 -0
  40. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_702.jpg +0 -0
  41. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_703.jpg +0 -0
  42. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_704.jpg +0 -0
  43. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_705.jpg +0 -0
  44. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_706.jpg +0 -0
  45. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_707.jpg +0 -0
  46. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_708.jpg +0 -0
  47. clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_709.jpg +0 -0
  48. clarifai/datasets/upload/examples/image_classification/food-101/__init__.py +0 -0
  49. clarifai/datasets/upload/examples/image_classification/food-101/dataset.py +0 -39
  50. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/1420783.jpg +0 -0
  51. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/3287885.jpg +0 -0
  52. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/3617075.jpg +0 -0
  53. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/38052.jpg +0 -0
  54. clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/39147.jpg +0 -0
  55. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/139558.jpg +0 -0
  56. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/1636096.jpg +0 -0
  57. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/2480925.jpg +0 -0
  58. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/3385808.jpg +0 -0
  59. clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/3647386.jpg +0 -0
  60. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/1826869.jpg +0 -0
  61. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/2243245.jpg +0 -0
  62. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/259212.jpg +0 -0
  63. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/2842688.jpg +0 -0
  64. clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/3035414.jpg +0 -0
  65. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/1545393.jpg +0 -0
  66. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/2427642.jpg +0 -0
  67. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/3520891.jpg +0 -0
  68. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/377566.jpg +0 -0
  69. clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/503504.jpg +0 -0
  70. clarifai/datasets/upload/examples/text_classification/__init__.py +0 -0
  71. clarifai/datasets/upload/examples/text_classification/imdb_dataset/__init__.py +0 -0
  72. clarifai/datasets/upload/examples/text_classification/imdb_dataset/dataset.py +0 -42
  73. clarifai/datasets/upload/examples/text_classification/imdb_dataset/test.csv +0 -201
  74. clarifai/datasets/upload/examples/text_classification/imdb_dataset/train.csv +0 -201
  75. clarifai/datasets/upload/loaders/README.md +0 -49
  76. clarifai/models/model_serving/README.md +0 -155
  77. clarifai/models/model_serving/docs/custom_config.md +0 -33
  78. clarifai/models/model_serving/docs/dependencies.md +0 -11
  79. clarifai/models/model_serving/docs/inference_parameters.md +0 -134
  80. clarifai/models/model_serving/docs/model_types.md +0 -20
  81. clarifai/models/model_serving/docs/output.md +0 -28
  82. clarifai/models/model_serving/examples/README.md +0 -7
  83. clarifai/models/model_serving/examples/image_classification/README.md +0 -9
  84. clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/README.md +0 -11
  85. clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/config.json +0 -42
  86. clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/preprocessor_config.json +0 -15
  87. clarifai/models/model_serving/examples/image_classification/age_vit/config.pbtxt +0 -23
  88. clarifai/models/model_serving/examples/image_classification/age_vit/labels.txt +0 -9
  89. clarifai/models/model_serving/examples/image_classification/age_vit/requirements.txt +0 -7
  90. clarifai/models/model_serving/examples/text_classification/README.md +0 -9
  91. clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/README.md +0 -12
  92. clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/config.json +0 -34
  93. clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/special_tokens_map.json +0 -1
  94. clarifai/models/model_serving/examples/text_classification/xlm-roberta/config.pbtxt +0 -21
  95. clarifai/models/model_serving/examples/text_classification/xlm-roberta/labels.txt +0 -3
  96. clarifai/models/model_serving/examples/text_classification/xlm-roberta/requirements.txt +0 -7
  97. clarifai/models/model_serving/examples/text_embedding/README.md +0 -9
  98. clarifai/models/model_serving/examples/text_to_image/README.md +0 -9
  99. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/__init__.py +0 -0
  100. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/inference.py +0 -52
  101. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/model.py +0 -60
  102. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/config.pbtxt +0 -22
  103. clarifai/models/model_serving/examples/text_to_image/sd-v1.5/requirements.txt +0 -6
  104. clarifai/models/model_serving/examples/text_to_text/README.md +0 -10
  105. clarifai/models/model_serving/examples/text_to_text/bart-summarize/config.pbtxt +0 -20
  106. clarifai/models/model_serving/examples/text_to_text/bart-summarize/requirements.txt +0 -4
  107. clarifai/models/model_serving/examples/visual_detection/README.md +0 -11
  108. clarifai/models/model_serving/examples/visual_detection/yolov5x/config.pbtxt +0 -36
  109. clarifai/models/model_serving/examples/visual_detection/yolov5x/labels.txt +0 -80
  110. clarifai/models/model_serving/examples/visual_detection/yolov5x/requirements.txt +0 -12
  111. clarifai/models/model_serving/examples/visual_embedding/README.md +0 -9
  112. clarifai/models/model_serving/examples/visual_embedding/vit-base/config.pbtxt +0 -22
  113. clarifai/models/model_serving/examples/visual_embedding/vit-base/requirements.txt +0 -5
  114. clarifai/models/model_serving/examples/visual_segmentation/README.md +0 -9
  115. clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/config.pbtxt +0 -24
  116. clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/labels.txt +0 -18
  117. clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/requirements.txt +0 -5
  118. clarifai/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -24
  119. clarifai/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -18
  120. clarifai/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -18
  121. clarifai/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -18
  122. clarifai/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -18
  123. clarifai/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -18
  124. clarifai/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -28
  125. clarifai/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -18
  126. clarifai/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -18
  127. clarifai/modules/README.md +0 -5
  128. clarifai/modules/style.css +0 -217
  129. clarifai-9.10.1.dist-info/RECORD +0 -386
  130. clarifai-9.10.1.dist-info/top_level.txt +0 -2
  131. clarifai_utils/__init__.py +0 -0
  132. clarifai_utils/auth/__init__.py +0 -6
  133. clarifai_utils/auth/helper.py +0 -367
  134. clarifai_utils/auth/register.py +0 -23
  135. clarifai_utils/auth/stub.py +0 -127
  136. clarifai_utils/cli.py +0 -0
  137. clarifai_utils/client/__init__.py +0 -16
  138. clarifai_utils/client/app.py +0 -684
  139. clarifai_utils/client/auth/__init__.py +0 -4
  140. clarifai_utils/client/auth/helper.py +0 -367
  141. clarifai_utils/client/auth/register.py +0 -23
  142. clarifai_utils/client/auth/stub.py +0 -127
  143. clarifai_utils/client/base.py +0 -131
  144. clarifai_utils/client/dataset.py +0 -442
  145. clarifai_utils/client/input.py +0 -892
  146. clarifai_utils/client/lister.py +0 -54
  147. clarifai_utils/client/model.py +0 -575
  148. clarifai_utils/client/module.py +0 -94
  149. clarifai_utils/client/runner.py +0 -161
  150. clarifai_utils/client/search.py +0 -239
  151. clarifai_utils/client/user.py +0 -253
  152. clarifai_utils/client/workflow.py +0 -223
  153. clarifai_utils/constants/model.py +0 -4
  154. clarifai_utils/constants/search.py +0 -2
  155. clarifai_utils/datasets/__init__.py +0 -0
  156. clarifai_utils/datasets/export/__init__.py +0 -0
  157. clarifai_utils/datasets/export/inputs_annotations.py +0 -222
  158. clarifai_utils/datasets/upload/__init__.py +0 -0
  159. clarifai_utils/datasets/upload/base.py +0 -66
  160. clarifai_utils/datasets/upload/examples/README.md +0 -31
  161. clarifai_utils/datasets/upload/examples/image_classification/__init__.py +0 -0
  162. clarifai_utils/datasets/upload/examples/image_classification/cifar10/__init__.py +0 -0
  163. clarifai_utils/datasets/upload/examples/image_classification/cifar10/cifar_small_test.csv +0 -10
  164. clarifai_utils/datasets/upload/examples/image_classification/cifar10/cifar_small_train.csv +0 -10
  165. clarifai_utils/datasets/upload/examples/image_classification/cifar10/dataset.py +0 -46
  166. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_700.jpg +0 -0
  167. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_701.jpg +0 -0
  168. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_702.jpg +0 -0
  169. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_703.jpg +0 -0
  170. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_704.jpg +0 -0
  171. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_705.jpg +0 -0
  172. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_706.jpg +0 -0
  173. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_707.jpg +0 -0
  174. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_708.jpg +0 -0
  175. clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_709.jpg +0 -0
  176. clarifai_utils/datasets/upload/examples/image_classification/food-101/__init__.py +0 -0
  177. clarifai_utils/datasets/upload/examples/image_classification/food-101/dataset.py +0 -39
  178. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/1420783.jpg +0 -0
  179. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/3287885.jpg +0 -0
  180. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/3617075.jpg +0 -0
  181. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/38052.jpg +0 -0
  182. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/39147.jpg +0 -0
  183. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/139558.jpg +0 -0
  184. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/1636096.jpg +0 -0
  185. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/2480925.jpg +0 -0
  186. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/3385808.jpg +0 -0
  187. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/3647386.jpg +0 -0
  188. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/1826869.jpg +0 -0
  189. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/2243245.jpg +0 -0
  190. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/259212.jpg +0 -0
  191. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/2842688.jpg +0 -0
  192. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/3035414.jpg +0 -0
  193. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/1545393.jpg +0 -0
  194. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/2427642.jpg +0 -0
  195. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/3520891.jpg +0 -0
  196. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/377566.jpg +0 -0
  197. clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/503504.jpg +0 -0
  198. clarifai_utils/datasets/upload/examples/text_classification/__init__.py +0 -0
  199. clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/__init__.py +0 -0
  200. clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/dataset.py +0 -42
  201. clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/test.csv +0 -201
  202. clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/train.csv +0 -201
  203. clarifai_utils/datasets/upload/features.py +0 -44
  204. clarifai_utils/datasets/upload/image.py +0 -165
  205. clarifai_utils/datasets/upload/loaders/README.md +0 -49
  206. clarifai_utils/datasets/upload/loaders/__init__.py +0 -0
  207. clarifai_utils/datasets/upload/loaders/coco_captions.py +0 -103
  208. clarifai_utils/datasets/upload/loaders/coco_detection.py +0 -134
  209. clarifai_utils/datasets/upload/loaders/coco_segmentation.py +0 -166
  210. clarifai_utils/datasets/upload/loaders/imagenet_classification.py +0 -59
  211. clarifai_utils/datasets/upload/loaders/xview_detection.py +0 -148
  212. clarifai_utils/datasets/upload/text.py +0 -53
  213. clarifai_utils/datasets/upload/utils.py +0 -63
  214. clarifai_utils/errors.py +0 -89
  215. clarifai_utils/models/__init__.py +0 -0
  216. clarifai_utils/models/api.py +0 -283
  217. clarifai_utils/models/model_serving/README.md +0 -155
  218. clarifai_utils/models/model_serving/__init__.py +0 -12
  219. clarifai_utils/models/model_serving/cli/__init__.py +0 -12
  220. clarifai_utils/models/model_serving/cli/deploy_cli.py +0 -123
  221. clarifai_utils/models/model_serving/cli/model_zip.py +0 -61
  222. clarifai_utils/models/model_serving/cli/repository.py +0 -87
  223. clarifai_utils/models/model_serving/constants.py +0 -1
  224. clarifai_utils/models/model_serving/docs/custom_config.md +0 -33
  225. clarifai_utils/models/model_serving/docs/dependencies.md +0 -11
  226. clarifai_utils/models/model_serving/docs/inference_parameters.md +0 -134
  227. clarifai_utils/models/model_serving/docs/model_types.md +0 -20
  228. clarifai_utils/models/model_serving/docs/output.md +0 -28
  229. clarifai_utils/models/model_serving/examples/README.md +0 -7
  230. clarifai_utils/models/model_serving/examples/image_classification/README.md +0 -9
  231. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/__init__.py +0 -0
  232. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/inference.py +0 -56
  233. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/model.py +0 -61
  234. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/README.md +0 -11
  235. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/config.json +0 -42
  236. clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/preprocessor_config.json +0 -15
  237. clarifai_utils/models/model_serving/examples/image_classification/age_vit/config.pbtxt +0 -23
  238. clarifai_utils/models/model_serving/examples/image_classification/age_vit/labels.txt +0 -9
  239. clarifai_utils/models/model_serving/examples/image_classification/age_vit/requirements.txt +0 -7
  240. clarifai_utils/models/model_serving/examples/text_classification/README.md +0 -9
  241. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/__init__.py +0 -0
  242. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/inference.py +0 -55
  243. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/model.py +0 -61
  244. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/README.md +0 -12
  245. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/config.json +0 -34
  246. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/special_tokens_map.json +0 -1
  247. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/config.pbtxt +0 -21
  248. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/labels.txt +0 -3
  249. clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/requirements.txt +0 -7
  250. clarifai_utils/models/model_serving/examples/text_embedding/README.md +0 -9
  251. clarifai_utils/models/model_serving/examples/text_to_image/README.md +0 -9
  252. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/__init__.py +0 -0
  253. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/inference.py +0 -52
  254. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/model.py +0 -60
  255. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/config.pbtxt +0 -22
  256. clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/requirements.txt +0 -6
  257. clarifai_utils/models/model_serving/examples/text_to_text/README.md +0 -10
  258. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/__init__.py +0 -0
  259. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/inference.py +0 -47
  260. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/model.py +0 -60
  261. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/config.pbtxt +0 -20
  262. clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/requirements.txt +0 -4
  263. clarifai_utils/models/model_serving/examples/visual_detection/README.md +0 -11
  264. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/1/inference.py +0 -72
  265. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/1/model.py +0 -61
  266. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/config.pbtxt +0 -36
  267. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/labels.txt +0 -80
  268. clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/requirements.txt +0 -12
  269. clarifai_utils/models/model_serving/examples/visual_embedding/README.md +0 -9
  270. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/__init__.py +0 -0
  271. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/inference.py +0 -51
  272. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/model.py +0 -60
  273. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/config.pbtxt +0 -22
  274. clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/requirements.txt +0 -5
  275. clarifai_utils/models/model_serving/examples/visual_segmentation/README.md +0 -9
  276. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/__init__.py +0 -0
  277. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/inference.py +0 -55
  278. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/model.py +0 -60
  279. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/config.pbtxt +0 -24
  280. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/labels.txt +0 -18
  281. clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/requirements.txt +0 -5
  282. clarifai_utils/models/model_serving/model_config/__init__.py +0 -14
  283. clarifai_utils/models/model_serving/model_config/config.py +0 -302
  284. clarifai_utils/models/model_serving/model_config/inference_parameter.py +0 -124
  285. clarifai_utils/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -24
  286. clarifai_utils/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -18
  287. clarifai_utils/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -18
  288. clarifai_utils/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -18
  289. clarifai_utils/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -18
  290. clarifai_utils/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -18
  291. clarifai_utils/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -28
  292. clarifai_utils/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -18
  293. clarifai_utils/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -18
  294. clarifai_utils/models/model_serving/model_config/serializer.py +0 -134
  295. clarifai_utils/models/model_serving/models/__init__.py +0 -12
  296. clarifai_utils/models/model_serving/models/default_test.py +0 -275
  297. clarifai_utils/models/model_serving/models/inference.py +0 -42
  298. clarifai_utils/models/model_serving/models/model_types.py +0 -265
  299. clarifai_utils/models/model_serving/models/output.py +0 -124
  300. clarifai_utils/models/model_serving/models/pb_model.py +0 -74
  301. clarifai_utils/models/model_serving/models/test.py +0 -64
  302. clarifai_utils/models/model_serving/pb_model_repository.py +0 -101
  303. clarifai_utils/modules/README.md +0 -5
  304. clarifai_utils/modules/__init__.py +0 -0
  305. clarifai_utils/modules/css.py +0 -60
  306. clarifai_utils/modules/pages.py +0 -42
  307. clarifai_utils/modules/style.css +0 -217
  308. clarifai_utils/runners/__init__.py +0 -0
  309. clarifai_utils/runners/example.py +0 -33
  310. clarifai_utils/schema/search.py +0 -69
  311. clarifai_utils/urls/helper.py +0 -103
  312. clarifai_utils/utils/__init__.py +0 -0
  313. clarifai_utils/utils/logging.py +0 -90
  314. clarifai_utils/utils/misc.py +0 -33
  315. clarifai_utils/utils/model_train.py +0 -157
  316. clarifai_utils/versions.py +0 -6
  317. clarifai_utils/workflows/__init__.py +0 -0
  318. clarifai_utils/workflows/export.py +0 -68
  319. clarifai_utils/workflows/utils.py +0 -59
  320. clarifai_utils/workflows/validate.py +0 -67
  321. {clarifai-9.10.1.dist-info → clarifai-9.10.3.dist-info}/LICENSE +0 -0
  322. {clarifai-9.10.1.dist-info → clarifai-9.10.3.dist-info}/WHEEL +0 -0
  323. {clarifai-9.10.1.dist-info → clarifai-9.10.3.dist-info}/entry_points.txt +0 -0
@@ -1,684 +0,0 @@
1
- import os
2
- import uuid
3
- from typing import Any, Dict, Generator, List
4
-
5
- import yaml
6
- from clarifai_grpc.grpc.api import resources_pb2, service_pb2
7
- from clarifai_grpc.grpc.api.resources_pb2 import Concept
8
- from clarifai_grpc.grpc.api.status import status_code_pb2
9
- from google.protobuf.json_format import MessageToDict
10
-
11
- from clarifai.client.base import BaseClient
12
- from clarifai.client.dataset import Dataset
13
- from clarifai.client.input import Inputs
14
- from clarifai.client.lister import Lister
15
- from clarifai.client.model import Model
16
- from clarifai.client.module import Module
17
- from clarifai.client.search import Search
18
- from clarifai.client.workflow import Workflow
19
- from clarifai.constants.model import TRAINABLE_MODEL_TYPES
20
- from clarifai.errors import UserError
21
- from clarifai.urls.helper import ClarifaiUrlHelper
22
- from clarifai.utils.logging import display_workflow_tree, get_logger
23
- from clarifai.workflows.utils import get_yaml_output_info_proto, is_same_yaml_model
24
- from clarifai.workflows.validate import validate
25
-
26
-
27
- class App(Lister, BaseClient):
28
- """App is a class that provides access to Clarifai API endpoints related to App information."""
29
-
30
- def __init__(self,
31
- url_init: str = "",
32
- app_id: str = "",
33
- base_url: str = "https://api.clarifai.com",
34
- **kwargs):
35
- """Initializes an App object.
36
-
37
- Args:
38
- url_init (str): The URL to initialize the app object.
39
- app_id (str): The App ID for the App to interact with.
40
- base_url (str): Base API url. Default "https://api.clarifai.com"
41
- **kwargs: Additional keyword arguments to be passed to the App.
42
- - name (str): The name of the app.
43
- - description (str): The description of the app.
44
- """
45
- if url_init != "" and app_id != "":
46
- raise UserError("You can only specify one of url_init or app_id.")
47
- if url_init != "":
48
- user_id, app_id, _, _, _ = ClarifaiUrlHelper.split_clarifai_url(url_init)
49
- kwargs = {'user_id': user_id}
50
- self.kwargs = {**kwargs, 'id': app_id}
51
- self.app_info = resources_pb2.App(**self.kwargs)
52
- self.logger = get_logger(logger_level="INFO", name=__name__)
53
- BaseClient.__init__(self, user_id=self.user_id, app_id=self.id, base=base_url)
54
- Lister.__init__(self)
55
-
56
- def list_datasets(self, page_no: int = None,
57
- per_page: int = None) -> Generator[Dataset, None, None]:
58
- """Lists all the datasets for the app.
59
-
60
- Args:
61
- page_no (int): The page number to list.
62
- per_page (int): The number of items per page.
63
-
64
- Yields:
65
- Dataset: Dataset objects for the datasets in the app.
66
-
67
- Example:
68
- >>> from clarifai.client.app import App
69
- >>> app = App(app_id="app_id", user_id="user_id")
70
- >>> all_datasets = list(app.list_datasets())
71
-
72
- Note:
73
- Defaults to 16 per page if page_no is specified and per_page is not specified.
74
- If both page_no and per_page are None, then lists all the resources.
75
- """
76
- request_data = dict(user_app_id=self.user_app_id,)
77
- all_datasets_info = self.list_pages_generator(
78
- self.STUB.ListDatasets,
79
- service_pb2.ListDatasetsRequest,
80
- request_data,
81
- per_page=per_page,
82
- page_no=page_no)
83
- for dataset_info in all_datasets_info:
84
- if 'version' in list(dataset_info.keys()):
85
- del dataset_info['version']['metrics']
86
- yield Dataset(base_url=self.base, **dataset_info)
87
-
88
- def list_models(self,
89
- filter_by: Dict[str, Any] = {},
90
- only_in_app: bool = True,
91
- page_no: int = None,
92
- per_page: int = None) -> Generator[Model, None, None]:
93
- """Lists all the available models for the user.
94
-
95
- Args:
96
- filter_by (dict): A dictionary of filters to apply to the list of models.
97
- only_in_app (bool): If True, only return models that are in the app.
98
- page_no (int): The page number to list.
99
- per_page (int): The number of items per page.
100
-
101
- Yields:
102
- Model: Model objects for the models in the app.
103
-
104
- Example:
105
- >>> from clarifai.client.user import User
106
- >>> app = User(user_id="user_id").app(app_id="app_id")
107
- >>> all_models = list(app.list_models())
108
-
109
- Note:
110
- Defaults to 16 per page if page_no is specified and per_page is not specified.
111
- If both page_no and per_page are None, then lists all the resources.
112
- """
113
- request_data = dict(user_app_id=self.user_app_id, **filter_by)
114
- all_models_info = self.list_pages_generator(
115
- self.STUB.ListModels,
116
- service_pb2.ListModelsRequest,
117
- request_data,
118
- per_page=per_page,
119
- page_no=page_no)
120
-
121
- for model_info in all_models_info:
122
- if 'model_version' not in list(model_info.keys()):
123
- continue
124
- if only_in_app:
125
- if model_info['app_id'] != self.id:
126
- continue
127
- yield Model(base_url=self.base, **model_info)
128
-
129
- def list_workflows(self,
130
- filter_by: Dict[str, Any] = {},
131
- only_in_app: bool = True,
132
- page_no: int = None,
133
- per_page: int = None) -> Generator[Workflow, None, None]:
134
- """Lists all the available workflows for the user.
135
-
136
- Args:
137
- filter_by (dict): A dictionary of filters to apply to the list of workflows.
138
- only_in_app (bool): If True, only return workflows that are in the app.
139
- page_no (int): The page number to list.
140
- per_page (int): The number of items per page.
141
-
142
- Yields:
143
- Workflow: Workflow objects for the workflows in the app.
144
-
145
- Example:
146
- >>> from clarifai.client.app import App
147
- >>> app = App(app_id="app_id", user_id="user_id")
148
- >>> all_workflows = list(app.list_workflows())
149
-
150
- Note:
151
- Defaults to 16 per page if page_no is specified and per_page is not specified.
152
- If both page_no and per_page are None, then lists all the resources.
153
- """
154
- request_data = dict(user_app_id=self.user_app_id, **filter_by)
155
- all_workflows_info = self.list_pages_generator(
156
- self.STUB.ListWorkflows,
157
- service_pb2.ListWorkflowsRequest,
158
- request_data,
159
- per_page=per_page,
160
- page_no=page_no)
161
-
162
- for workflow_info in all_workflows_info:
163
- if only_in_app:
164
- if workflow_info['app_id'] != self.id:
165
- continue
166
- yield Workflow(base_url=self.base, **workflow_info)
167
-
168
- def list_modules(self,
169
- filter_by: Dict[str, Any] = {},
170
- only_in_app: bool = True,
171
- page_no: int = None,
172
- per_page: int = None) -> Generator[Module, None, None]:
173
- """Lists all the available modules for the user.
174
-
175
- Args:
176
- filter_by (dict): A dictionary of filters to apply to the list of modules.
177
- only_in_app (bool): If True, only return modules that are in the app.
178
- page_no (int): The page number to list.
179
- per_page (int): The number of items per page.
180
-
181
- Yields:
182
- Module: Module objects for the modules in the app.
183
-
184
- Example:
185
- >>> from clarifai.client.app import App
186
- >>> app = App(app_id="app_id", user_id="user_id")
187
- >>> all_modules = list(app.list_modules())
188
-
189
- Note:
190
- Defaults to 16 per page if page_no is specified and per_page is not specified.
191
- If both page_no and per_page are None, then lists all the resources.
192
- """
193
- request_data = dict(user_app_id=self.user_app_id, **filter_by)
194
- all_modules_info = self.list_pages_generator(
195
- self.STUB.ListModules,
196
- service_pb2.ListModulesRequest,
197
- request_data,
198
- per_page=per_page,
199
- page_no=page_no)
200
-
201
- for module_info in all_modules_info:
202
- if only_in_app:
203
- if module_info['app_id'] != self.id:
204
- continue
205
- yield Module(base_url=self.base, **module_info)
206
-
207
- def list_installed_module_versions(self,
208
- filter_by: Dict[str, Any] = {},
209
- page_no: int = None,
210
- per_page: int = None) -> Generator[Module, None, None]:
211
- """Lists all installed module versions in the app.
212
-
213
- Args:
214
- filter_by (dict): A dictionary of filters to apply to the list of installed module versions.
215
- page_no (int): The page number to list.
216
- per_page (int): The number of items per page.
217
-
218
- Yields:
219
- Module: Module objects for the installed module versions in the app.
220
-
221
- Example:
222
- >>> from clarifai.client.app import App
223
- >>> app = App(app_id="app_id", user_id="user_id")
224
- >>> all_installed_module_versions = list(app.list_installed_module_versions())
225
-
226
- Note:
227
- Defaults to 16 per page if page_no is specified and per_page is not specified.
228
- If both page_no and per_page are None, then lists all the resources.
229
- """
230
- request_data = dict(user_app_id=self.user_app_id, **filter_by)
231
- all_imv_infos = self.list_pages_generator(
232
- self.STUB.ListInstalledModuleVersions,
233
- service_pb2.ListInstalledModuleVersionsRequest,
234
- request_data,
235
- per_page=per_page,
236
- page_no=page_no)
237
- for imv_info in all_imv_infos:
238
- del imv_info['deploy_url']
239
- del imv_info['installed_module_version_id'] # TODO: remove this after the backend fix
240
- yield Module(
241
- module_id=imv_info['module_version']['module_id'], base_url=self.base, **imv_info)
242
-
243
- def list_concepts(self, page_no: int = None,
244
- per_page: int = None) -> Generator[Concept, None, None]:
245
- """Lists all the concepts for the app.
246
- Args:
247
- page_no (int): The page number to list.
248
- per_page (int): The number of items per page.
249
-
250
- Yields:
251
- Concept: Concepts in the app.
252
-
253
- Example:
254
- >>> from clarifai.client.app import App
255
- >>> app = App(app_id="app_id", user_id="user_id")
256
- >>> all_concepts = list(app.list_concepts())
257
-
258
- Note:
259
- Defaults to 16 per page if page_no is specified and per_page is not specified.
260
- If both page_no and per_page are None, then lists all the resources.
261
- """
262
- request_data = dict(user_app_id=self.user_app_id)
263
- all_concepts_infos = self.list_pages_generator(
264
- self.STUB.ListConcepts,
265
- service_pb2.ListConceptsRequest,
266
- request_data,
267
- per_page=per_page,
268
- page_no=page_no)
269
- for concept_info in all_concepts_infos:
270
- concept_info['id'] = concept_info.pop('concept_id')
271
- yield Concept(**concept_info)
272
-
273
- def list_trainable_model_types(self) -> List[str]:
274
- """Lists all the trainable model types.
275
-
276
- Returns:
277
- templates (List): List all the trainable model types.
278
-
279
- Example:
280
- >>> from clarifai.client.app import App
281
- >>> print(app.list_trainable_model_types())
282
- """
283
- return TRAINABLE_MODEL_TYPES
284
-
285
- def create_dataset(self, dataset_id: str, **kwargs) -> Dataset:
286
- """Creates a dataset for the app.
287
-
288
- Args:
289
- dataset_id (str): The dataset ID for the dataset to create.
290
- **kwargs: Additional keyword arguments to be passed to the Dataset.
291
-
292
- Returns:
293
- Dataset: A Dataset object for the specified dataset ID.
294
-
295
- Example:
296
- >>> from clarifai.client.app import App
297
- >>> app = App(app_id="app_id", user_id="user_id")
298
- >>> dataset = app.create_dataset(dataset_id="dataset_id")
299
- """
300
- request = service_pb2.PostDatasetsRequest(
301
- user_app_id=self.user_app_id, datasets=[resources_pb2.Dataset(id=dataset_id, **kwargs)])
302
- response = self._grpc_request(self.STUB.PostDatasets, request)
303
- if response.status.code != status_code_pb2.SUCCESS:
304
- raise Exception(response.status)
305
- self.logger.info("\nDataset created\n%s", response.status)
306
- kwargs.update({'app_id': self.id, 'user_id': self.user_id, 'base_url': self.base})
307
-
308
- return Dataset(dataset_id=dataset_id, **kwargs)
309
-
310
- def create_model(self, model_id: str, **kwargs) -> Model:
311
- """Creates a model for the app.
312
-
313
- Args:
314
- model_id (str): The model ID for the model to create.
315
- **kwargs: Additional keyword arguments to be passed to the Model.
316
-
317
- Returns:
318
- Model: A Model object for the specified model ID.
319
-
320
- Example:
321
- >>> from clarifai.client.app import App
322
- >>> app = App(app_id="app_id", user_id="user_id")
323
- >>> model = app.create_model(model_id="model_id")
324
- """
325
- request = service_pb2.PostModelsRequest(
326
- user_app_id=self.user_app_id, models=[resources_pb2.Model(id=model_id, **kwargs)])
327
- response = self._grpc_request(self.STUB.PostModels, request)
328
- if response.status.code != status_code_pb2.SUCCESS:
329
- raise Exception(response.status)
330
- self.logger.info("\nModel created\n%s", response.status)
331
- kwargs.update({
332
- 'app_id': self.id,
333
- 'user_id': self.user_id,
334
- 'model_type_id': response.model.model_type_id,
335
- 'base_url': self.base
336
- })
337
-
338
- return Model(model_id=model_id, **kwargs)
339
-
340
- def create_workflow(self,
341
- config_filepath: str,
342
- generate_new_id: bool = False,
343
- display: bool = True) -> Workflow:
344
- """Creates a workflow for the app.
345
-
346
- Args:
347
- config_filepath (str): The path to the yaml workflow config file.
348
- generate_new_id (bool): If True, generate a new workflow ID.
349
- display (bool): If True, display the workflow nodes tree.
350
-
351
- Returns:
352
- Workflow: A Workflow object for the specified workflow config.
353
-
354
- Example:
355
- >>> from clarifai.client.app import App
356
- >>> app = App(app_id="app_id", user_id="user_id")
357
- >>> workflow = app.create_workflow(config_filepath="config.yml")
358
- """
359
- if not os.path.exists(config_filepath):
360
- raise UserError(f"Workflow config file not found at {config_filepath}")
361
-
362
- with open(config_filepath, 'r') as file:
363
- data = yaml.safe_load(file)
364
-
365
- data = validate(data)
366
- workflow = data['workflow']
367
-
368
- # Get all model objects from the workflow nodes.
369
- all_models = []
370
- for node in workflow['nodes']:
371
- output_info = get_yaml_output_info_proto(node['model'].get('output_info', None))
372
- try:
373
- model = self.model(
374
- node['model']['model_id'],
375
- node['model'].get('model_version_id', ""),
376
- user_id=node['model'].get('user_id', ""),
377
- app_id=node['model'].get('app_id', ""))
378
- except Exception as e:
379
- if "Model does not exist" in str(e):
380
- model = self.create_model(
381
- **{k: v
382
- for k, v in node['model'].items() if k != 'output_info'})
383
- model_version = model.create_version(output_info=output_info)
384
- all_models.append(model_version.model_info)
385
- continue
386
-
387
- # If the model version ID is specified, or if the yaml model is the same as the one in the api
388
- if node["model"].get("model_version_id", "") or is_same_yaml_model(
389
- model.model_info, node["model"]):
390
- all_models.append(model.model_info)
391
- else: # Create a new model version
392
- model = model.create_version(output_info=output_info)
393
- all_models.append(model.model_info)
394
-
395
- # Convert nodes to resources_pb2.WorkflowNodes.
396
- nodes = []
397
- for i, yml_node in enumerate(workflow['nodes']):
398
- node = resources_pb2.WorkflowNode(
399
- id=yml_node['id'],
400
- model=all_models[i],
401
- )
402
- # Add node inputs if they exist, i.e. if these nodes do not connect directly to the input.
403
- if yml_node.get("node_inputs"):
404
- for ni in yml_node.get("node_inputs"):
405
- node.node_inputs.append(resources_pb2.NodeInput(node_id=ni['node_id']))
406
- nodes.append(node)
407
-
408
- workflow_id = workflow['id']
409
- if generate_new_id:
410
- workflow_id = str(uuid.uuid4())
411
-
412
- # Create the workflow.
413
- request = service_pb2.PostWorkflowsRequest(
414
- user_app_id=self.user_app_id,
415
- workflows=[resources_pb2.Workflow(id=workflow_id, nodes=nodes)])
416
-
417
- response = self._grpc_request(self.STUB.PostWorkflows, request)
418
- if response.status.code != status_code_pb2.SUCCESS:
419
- raise Exception(response.status)
420
- self.logger.info("\nWorkflow created\n%s", response.status)
421
-
422
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
423
- # Display the workflow nodes tree.
424
- if display:
425
- display_workflow_tree(dict_response["workflows"][0]["nodes"])
426
- kwargs = self.process_response_keys(dict_response[list(dict_response.keys())[1]][0],
427
- "workflow")
428
- kwargs.update({'base_url': self.base})
429
-
430
- return Workflow(**kwargs)
431
-
432
- def create_module(self, module_id: str, description: str, **kwargs) -> Module:
433
- """Creates a module for the app.
434
-
435
- Args:
436
- module_id (str): The module ID for the module to create.
437
- description (str): The description of the module to create.
438
- **kwargs: Additional keyword arguments to be passed to the module.
439
-
440
- Returns:
441
- Module: A Module object for the specified module ID.
442
-
443
- Example:
444
- >>> from clarifai.client.app import App
445
- >>> app = App(app_id="app_id", user_id="user_id")
446
- >>> module = app.create_module(module_id="module_id")
447
- """
448
- request = service_pb2.PostModulesRequest(
449
- user_app_id=self.user_app_id,
450
- modules=[resources_pb2.Module(id=module_id, description=description, **kwargs)])
451
- response = self._grpc_request(self.STUB.PostModules, request)
452
-
453
- if response.status.code != status_code_pb2.SUCCESS:
454
- raise Exception(response.status)
455
- self.logger.info("\nModule created\n%s", response.status)
456
- kwargs.update({'app_id': self.id, 'user_id': self.user_id, 'base_url': self.base})
457
-
458
- return Module(module_id=module_id, **kwargs)
459
-
460
- def dataset(self, dataset_id: str, **kwargs) -> Dataset:
461
- """Returns a Dataset object for the existing dataset ID.
462
-
463
- Args:
464
- dataset_id (str): The dataset ID for the dataset to interact with.
465
-
466
- Returns:
467
- Dataset: A Dataset object for the existing dataset ID.
468
-
469
- Example:
470
- >>> from clarifai.client.app import App
471
- >>> app = App(app_id="app_id", user_id="user_id")
472
- >>> dataset = app.dataset(dataset_id="dataset_id")
473
- """
474
- request = service_pb2.GetDatasetRequest(user_app_id=self.user_app_id, dataset_id=dataset_id)
475
- response = self._grpc_request(self.STUB.GetDataset, request)
476
-
477
- if response.status.code != status_code_pb2.SUCCESS:
478
- raise Exception(response.status)
479
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
480
- kwargs = self.process_response_keys(dict_response[list(dict_response.keys())[1]],
481
- list(dict_response.keys())[1])
482
- kwargs['version'] = response.dataset.version if response.dataset.version else None
483
- kwargs.update({'base_url': self.base})
484
- return Dataset(**kwargs)
485
-
486
- def model(self, model_id: str, model_version_id: str = "", **kwargs) -> Model:
487
- """Returns a Model object for the existing model ID.
488
-
489
- Args:
490
- model_id (str): The model ID for the model to interact with.
491
- model_version_id (str): The model version ID for the model version to interact with.
492
-
493
- Returns:
494
- Model: A Model object for the existing model ID.
495
-
496
- Example:
497
- >>> from clarifai.client.app import App
498
- >>> app = App(app_id="app_id", user_id="user_id")
499
- >>> model_v1 = app.model(model_id="model_id", model_version_id="model_version_id")
500
- """
501
- # Change user_app_id based on whether user_id or app_id is specified.
502
- if kwargs.get("user_id") or kwargs.get("app_id"):
503
- request = service_pb2.GetModelRequest(
504
- user_app_id=self.auth_helper.get_user_app_id_proto(
505
- kwargs.get("user_id"), kwargs.get("app_id")),
506
- model_id=model_id,
507
- version_id=model_version_id)
508
- else:
509
- request = service_pb2.GetModelRequest(
510
- user_app_id=self.user_app_id, model_id=model_id, version_id=model_version_id)
511
- response = self._grpc_request(self.STUB.GetModel, request)
512
-
513
- if response.status.code != status_code_pb2.SUCCESS:
514
- raise Exception(response.status)
515
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
516
- kwargs = self.process_response_keys(dict_response['model'], 'model')
517
- kwargs[
518
- 'model_version'] = response.model.model_version if response.model.model_version else None
519
- kwargs.update({'base_url': self.base})
520
-
521
- return Model(**kwargs)
522
-
523
- def workflow(self, workflow_id: str, **kwargs) -> Workflow:
524
- """Returns a workflow object for the existing workflow ID.
525
-
526
- Args:
527
- workflow_id (str): The workflow ID for the workflow to interact with.
528
-
529
- Returns:
530
- Workflow: A Workflow object for the existing workflow ID.
531
-
532
- Example:
533
- >>> from clarifai.client.app import App
534
- >>> app = App(app_id="app_id", user_id="user_id")
535
- >>> workflow = app.workflow(workflow_id="workflow_id")
536
- """
537
- request = service_pb2.GetWorkflowRequest(user_app_id=self.user_app_id, workflow_id=workflow_id)
538
- response = self._grpc_request(self.STUB.GetWorkflow, request)
539
-
540
- if response.status.code != status_code_pb2.SUCCESS:
541
- raise Exception(response.status)
542
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
543
- kwargs = self.process_response_keys(dict_response[list(dict_response.keys())[1]],
544
- list(dict_response.keys())[1])
545
- kwargs.update({'base_url': self.base})
546
-
547
- return Workflow(**kwargs)
548
-
549
- def module(self, module_id: str, module_version_id: str = "", **kwargs) -> Module:
550
- """Returns a Module object for the existing module ID.
551
-
552
- Args:
553
- module_id (str): The module ID for the module to interact with.
554
- module_version_id (str): The module version ID for the module version to interact with.
555
-
556
- Returns:
557
- Module: A Module object for the existing module ID.
558
-
559
- Example:
560
- >>> from clarifai.client.app import App
561
- >>> app = App(app_id="app_id", user_id="user_id")
562
- >>> module = app.module(module_id="module_id", module_version_id="module_version_id")
563
- """
564
- request = service_pb2.GetModuleRequest(
565
- user_app_id=self.user_app_id, module_id=module_id, version_id=module_version_id)
566
- response = self._grpc_request(self.STUB.GetModule, request)
567
-
568
- if response.status.code != status_code_pb2.SUCCESS:
569
- raise Exception(response.status)
570
- dict_response = MessageToDict(response, preserving_proto_field_name=True)
571
- kwargs = self.process_response_keys(dict_response['module'], 'module')
572
- kwargs.update({'base_url': self.base})
573
-
574
- return Module(**kwargs)
575
-
576
- def inputs(self,):
577
- """Returns an Input object.
578
-
579
- Returns:
580
- Inputs: An input object.
581
- """
582
- return Inputs(self.user_id, self.id, base_url=self.base)
583
-
584
- def delete_dataset(self, dataset_id: str) -> None:
585
- """Deletes an dataset for the user.
586
-
587
- Args:
588
- dataset_id (str): The dataset ID for the app to delete.
589
-
590
- Example:
591
- >>> from clarifai.client.app import App
592
- >>> app = App(app_id="app_id", user_id="user_id")
593
- >>> app.delete_dataset(dataset_id="dataset_id")
594
- """
595
- request = service_pb2.DeleteDatasetsRequest(
596
- user_app_id=self.user_app_id, dataset_ids=[dataset_id])
597
- response = self._grpc_request(self.STUB.DeleteDatasets, request)
598
-
599
- if response.status.code != status_code_pb2.SUCCESS:
600
- raise Exception(response.status)
601
- self.logger.info("\nDataset Deleted\n%s", response.status)
602
-
603
- def delete_model(self, model_id: str) -> None:
604
- """Deletes an model for the user.
605
-
606
- Args:
607
- model_id (str): The model ID for the app to delete.
608
-
609
- Example:
610
- >>> from clarifai.client.app import App
611
- >>> app = App(app_id="app_id", user_id="user_id")
612
- >>> app.delete_model(model_id="model_id")
613
- """
614
- request = service_pb2.DeleteModelsRequest(user_app_id=self.user_app_id, ids=[model_id])
615
- response = self._grpc_request(self.STUB.DeleteModels, request)
616
-
617
- if response.status.code != status_code_pb2.SUCCESS:
618
- raise Exception(response.status)
619
- self.logger.info("\nModel Deleted\n%s", response.status)
620
-
621
- def delete_workflow(self, workflow_id: str) -> None:
622
- """Deletes an workflow for the user.
623
-
624
- Args:
625
- workflow_id (str): The workflow ID for the app to delete.
626
-
627
- Example:
628
- >>> from clarifai.client.app import App
629
- >>> app = App(app_id="app_id", user_id="user_id")
630
- >>> app.delete_workflow(workflow_id="workflow_id")
631
- """
632
- request = service_pb2.DeleteWorkflowsRequest(user_app_id=self.user_app_id, ids=[workflow_id])
633
- response = self._grpc_request(self.STUB.DeleteWorkflows, request)
634
-
635
- if response.status.code != status_code_pb2.SUCCESS:
636
- raise Exception(response.status)
637
- self.logger.info("\nWorkflow Deleted\n%s", response.status)
638
-
639
- def delete_module(self, module_id: str) -> None:
640
- """Deletes an module for the user.
641
-
642
- Args:
643
- module_id (str): The module ID for the app to delete.
644
-
645
- Example:
646
- >>> from clarifai.client.app import App
647
- >>> app = App(app_id="app_id", user_id="user_id")
648
- >>> app.delete_module(module_id="module_id")
649
- """
650
- request = service_pb2.DeleteModulesRequest(user_app_id=self.user_app_id, ids=[module_id])
651
- response = self._grpc_request(self.STUB.DeleteModules, request)
652
-
653
- if response.status.code != status_code_pb2.SUCCESS:
654
- raise Exception(response.status)
655
- self.logger.info("\nModule Deleted\n%s", response.status)
656
-
657
- def search(self, **kwargs) -> Model:
658
- """Returns a Search object for the user and app ID.
659
-
660
- Args:
661
- see the Search class in clarifai.client.search for kwargs.
662
-
663
- Returns:
664
- Search: A Search object for the user and app ID.
665
-
666
- Example:
667
- >>> from clarifai.client.app import App
668
- >>> app = App(app_id="app_id", user_id="user_id")
669
- >>> search_client = app.search(top_k=12, metric="euclidean")
670
- """
671
- user_id = kwargs.get("user_id", self.user_app_id.user_id)
672
- app_id = kwargs.get("app_id", self.user_app_id.app_id)
673
- return Search(user_id=user_id, app_id=app_id, **kwargs)
674
-
675
- def __getattr__(self, name):
676
- return getattr(self.app_info, name)
677
-
678
- def __str__(self):
679
- init_params = [param for param in self.kwargs.keys()]
680
- attribute_strings = [
681
- f"{param}={getattr(self.app_info, param)}" for param in init_params
682
- if hasattr(self.app_info, param)
683
- ]
684
- return f"Clarifai App Details: \n{', '.join(attribute_strings)}\n"
@@ -1,4 +0,0 @@
1
- from clarifai.client.auth.register import V2Stub
2
- from clarifai.client.auth.stub import create_stub
3
-
4
- __all__ = ('V2Stub', 'create_stub')