MeUtils 2024.3.4.13.4.45__py3-none-any.whl → 2025.1.16.17.15.52__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 (582) hide show
  1. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/METADATA +38 -32
  2. MeUtils-2025.1.16.17.15.52.dist-info/RECORD +864 -0
  3. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/WHEEL +1 -1
  4. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/entry_points.txt +1 -0
  5. apps/spider.py +24 -8
  6. examples/_openaisdk/4v.py +110 -0
  7. examples/_openaisdk/__init__.py +11 -0
  8. examples/_openaisdk/baichuan.py +38 -0
  9. examples/_openaisdk/bpo.py +138 -0
  10. examples/_openaisdk/chat_latex.py +95 -0
  11. examples/_openaisdk/chattts.py +85 -0
  12. examples/_openaisdk/copilot.py +48 -0
  13. examples/_openaisdk/dalle3.py +48 -0
  14. examples/_openaisdk/deeplx.py +31 -0
  15. examples/_openaisdk/demo.py +77 -0
  16. examples/_openaisdk/embeddings.py +34 -0
  17. examples/_openaisdk/gpt4all.py +69 -0
  18. examples/_openaisdk/gpt_fc.py +23 -0
  19. examples/_openaisdk/gr_vl.py +46 -0
  20. examples/_openaisdk/json_mode.py +12 -0
  21. examples/_openaisdk/kimi.py +91 -0
  22. examples/_openaisdk/kimi_qa.py +57 -0
  23. examples/_openaisdk/minimax.py +75 -0
  24. examples/_openaisdk/open_router.py +48 -0
  25. examples/_openaisdk/openai_aiplus.py +54 -0
  26. examples/_openaisdk/openai_audio.py +20 -0
  27. examples/_openaisdk/openai_baichuan.py +59 -0
  28. examples/_openaisdk/openai_cache.py +37 -0
  29. examples/_openaisdk/openai_chatfire.py +228 -0
  30. examples/_openaisdk/openai_chatfire_all.py +166 -0
  31. examples/_openaisdk/openai_deepinfra.py +55 -0
  32. examples/_openaisdk/openai_deepseek.py +29 -0
  33. examples/_openaisdk/openai_doubao.py +43 -0
  34. examples/_openaisdk/openai_embeddings.py +36 -0
  35. examples/_openaisdk/openai_files.py +57 -0
  36. examples/_openaisdk/openai_gitee.py +33 -0
  37. examples/_openaisdk/openai_god.py +45 -0
  38. examples/_openaisdk/openai_groq.py +240 -0
  39. examples/_openaisdk/openai_images.py +203 -0
  40. examples/_openaisdk/openai_json.py +78 -0
  41. examples/_openaisdk/openai_lingyi.py +59 -0
  42. examples/_openaisdk/openai_modelscope.py +54 -0
  43. examples/_openaisdk/openai_moon.py +55 -0
  44. examples/_openaisdk/openai_oi.py +61 -0
  45. examples/_openaisdk/openai_ppu.py +47 -0
  46. examples/_openaisdk/openai_qwen.py +58 -0
  47. examples/_openaisdk/openai_search.py +42 -0
  48. examples/_openaisdk/openai_sensenova.py +81 -0
  49. examples/_openaisdk/openai_siliconflow.py +52 -0
  50. examples/_openaisdk/openai_step.py +45 -0
  51. examples/_openaisdk/openai_test.py +66 -0
  52. examples/_openaisdk/openai_together.py +57 -0
  53. examples/_openaisdk/openai_tune.py +38 -0
  54. examples/_openaisdk/openai_zhipu.py +59 -0
  55. examples/_openaisdk/ppu.py +28 -0
  56. examples/_openaisdk/rag.py +54 -0
  57. examples/_openaisdk/rag_.py +26 -0
  58. examples/_openaisdk/test.py +52 -0
  59. examples/_openaisdk/x.py +32 -0
  60. examples/_openaisdk/xx.py +29 -0
  61. examples/_openaisdk/zhipu_files.py +47 -0
  62. examples/_openaisdk/zhipu_/346/231/272/350/203/275/344/275/223.py +45 -0
  63. examples/_openaisdk//345/205/234/345/272/225/346/265/213/350/257/225.py +50 -0
  64. examples/_openaisdk//345/244/232/346/250/241/346/200/201/346/265/213/350/257/225.py +76 -0
  65. examples/_openaisdk//345/244/232/346/250/241/346/200/201/346/265/213/350/257/225_.py +56 -0
  66. examples/_openaisdk//346/226/207/344/273/266/351/227/256/347/255/224.py +36 -0
  67. examples/_openaisdk//346/226/207/346/241/243/350/247/243/346/236/220.py +34 -0
  68. examples/_openaisdk//346/250/241/345/236/213/346/265/213/350/257/225.py +53 -0
  69. examples/_openaisdk//351/230/277/351/207/214.py +80 -0
  70. {meutils/serving/jina/__demo → examples/ann}/__init__.py +1 -1
  71. examples/ann/main.py +31 -0
  72. examples/apis/kl.py +28 -0
  73. examples/apis/x.py +17 -0
  74. examples/apis/xx.py +17 -0
  75. examples/arq_demo/demo.py +3 -0
  76. examples/backgroundtasks.py +25 -0
  77. examples/bserver.py +513 -21
  78. examples/cache_demo/HermesCache_demo.py +81 -0
  79. examples/cache_demo/acacge.py +26 -0
  80. examples/cache_demo/x.py +31 -0
  81. {meutils/docarray_utils → examples/caches}/__init__.py +1 -1
  82. examples/caches/llmcache.py +18 -0
  83. examples/celery_demo/product_task.py +2 -0
  84. examples/demo.py +17 -1
  85. examples/fastapi_caching.py +59 -0
  86. {meutils/dependencies → examples/gr}/__init__.py +1 -1
  87. examples/gr/d.py +22 -0
  88. examples/gr/demo.py +30 -0
  89. examples/ip2/345/234/260/345/214/272.py +16 -0
  90. examples/jinja2_demo/j2_demo.py +20 -1
  91. examples/json/346/240/207/345/207/206/345/214/226.py +54 -0
  92. examples/md.py +29 -0
  93. {meutils/serving/jina → examples/nesc}/__init__.py +1 -1
  94. examples/nesc/main.py +76 -0
  95. examples/orm/mysql_orm.py +113 -0
  96. examples/orm/sql_creater.py +57 -0
  97. examples/orm/sqlm.py +134 -0
  98. examples/rq_demo/fns.py +18 -0
  99. examples/rq_demo/redis/351/230/237/345/210/227.py +14 -7
  100. examples/rq_demo/redis/351/230/237/345/210/227_add_chatfire.py +30 -0
  101. examples/size_map.py +43 -0
  102. examples/test.py +59 -0
  103. examples/webs/__init__.py +11 -0
  104. examples/webs/main.py +34 -0
  105. examples/x.py +13 -0
  106. examples//345/216/273/346/260/264/345/215/260.py +20 -0
  107. examples//346/226/207/346/241/243/346/231/272/350/203/275/__init__.py +11 -0
  108. meutils/_utils.py +15 -6
  109. meutils/ai_audio/asr/__init__.py +3 -2
  110. meutils/ai_audio/asr/cf_asr.py +53 -0
  111. meutils/ai_audio/asr/de.py +11 -0
  112. meutils/ai_audio/asr/fast_asr.py +15 -7
  113. meutils/ai_audio/asr/openai_asr.py +83 -6
  114. meutils/ai_audio/fast_asr.py +8 -4
  115. meutils/ai_audio/tts/EdgeTTS.py +33 -7
  116. meutils/ai_audio/tts/openai_tts.py +24 -20
  117. meutils/ai_audio/tts/tts_ui.py +1 -0
  118. meutils/ai_audio/utils.py +9 -0
  119. meutils/ai_cv/__init__.py +0 -1
  120. meutils/ai_cv/ocr.py +3 -2
  121. meutils/ai_cv/utils.py +154 -0
  122. meutils/ai_video/avmerge.py +6 -0
  123. meutils/ai_video/video.py +11 -2
  124. meutils/{api → apis}/__init__.py +1 -1
  125. meutils/apis/ali_apis.py +60 -0
  126. meutils/apis/audio/__init__.py +10 -0
  127. meutils/apis/audio/deepinfra.py +59 -0
  128. meutils/apis/audio/fish.py +248 -0
  129. meutils/apis/baidu/__init__.py +9 -0
  130. meutils/apis/baidu/bdaitpzs.py +229 -0
  131. meutils/apis/baidu/test.py +78 -0
  132. meutils/apis/chatglm/__init__.py +11 -0
  133. meutils/apis/chatglm/glm_video.py +273 -0
  134. meutils/apis/chatglm/glm_video_api.py +116 -0
  135. meutils/apis/chatglm/images.py +63 -0
  136. meutils/apis/chatglm/temp.py +259 -0
  137. meutils/apis/chatglm/x.py +31 -0
  138. meutils/{api → apis}/common.py +10 -6
  139. meutils/apis/fal/__init__.py +11 -0
  140. meutils/apis/fal/files.py +53 -0
  141. meutils/apis/fal/images.py +57 -0
  142. meutils/apis/fal/images_.py +72 -0
  143. meutils/apis/fal/videos.py +77 -0
  144. meutils/apis/firecrawl.py +45 -0
  145. meutils/apis/gitee/__init__.py +11 -0
  146. meutils/apis/gitee/images/__init__.py +9 -0
  147. meutils/apis/gitee/images/kolors.py +99 -0
  148. meutils/apis/hailuoai/__init__.py +11 -0
  149. meutils/apis/hailuoai/demo.py +34 -0
  150. meutils/apis/hailuoai/hasha_new.py +248 -0
  151. meutils/apis/hailuoai/music.py +11 -0
  152. meutils/apis/hailuoai/upload.py +116 -0
  153. meutils/apis/hailuoai/videos.py +460 -0
  154. meutils/apis/hailuoai/yy.py +242 -0
  155. meutils/apis/hf/__init__.py +11 -0
  156. meutils/apis/hf/got_ocr.py +64 -0
  157. meutils/apis/hf/gradio.py +34 -0
  158. meutils/apis/hf/hivisionidphotos.py +80 -0
  159. meutils/apis/hf/kolors.py +68 -0
  160. meutils/apis/hf/kolors_virtual_try_on.py +107 -0
  161. meutils/apis/hf/r.py +53 -0
  162. meutils/apis/hf/x.py +26 -0
  163. meutils/apis/hf//350/257/201/344/273/266/347/205/247.py +41 -0
  164. meutils/apis/hunyuan/__init__.py +11 -0
  165. meutils/apis/hunyuan/image_tools.py +84 -0
  166. meutils/apis/images/__init__.py +11 -0
  167. meutils/apis/images/deepinfra.py +92 -0
  168. meutils/apis/images/demo.py +150 -0
  169. meutils/apis/images/eidt.py +36 -0
  170. meutils/apis/images/flux/__init__.py +11 -0
  171. meutils/apis/images/flux/fluxpro.py +108 -0
  172. meutils/apis/images/flux/mystic.py +116 -0
  173. meutils/apis/images/ideogram/__init__.py +10 -0
  174. meutils/apis/images/ideogram/ideogram_images.py +193 -0
  175. meutils/apis/images/prodia/__init__.py +12 -0
  176. meutils/apis/images/prodia/faceswap.py +76 -0
  177. meutils/apis/images/recraft.py +152 -0
  178. meutils/apis/images/virtual_try_on/__init__.py +11 -0
  179. meutils/apis/images/virtual_try_on/images.py +65 -0
  180. meutils/apis/jiema/24mail.py +96 -0
  181. meutils/apis/jiema/__init__.py +11 -0
  182. meutils/apis/jiema/yezi.py +97 -0
  183. meutils/apis/jimeng/__init__.py +11 -0
  184. meutils/apis/jimeng/common.py +328 -0
  185. meutils/apis/jimeng/doubao.py +68 -0
  186. meutils/apis/jimeng/doubao_utils.py +175 -0
  187. meutils/apis/jimeng/files.py +263 -0
  188. meutils/apis/jimeng/images.py +140 -0
  189. meutils/apis/jimeng/lip_sync.py +11 -0
  190. meutils/apis/jina.py +55 -0
  191. meutils/apis/kling/__init__.py +11 -0
  192. meutils/apis/kling/api.py +60 -0
  193. meutils/apis/kling/images.py +174 -0
  194. meutils/apis/kling/kolors_virtual_try_on.py +111 -0
  195. meutils/apis/kling/kolors_virtual_try_on_web.py +126 -0
  196. meutils/apis/kling/videos.py +67 -0
  197. meutils/apis/kling//351/211/264/346/235/203.py +34 -0
  198. meutils/apis/kuaidi.py +32 -0
  199. meutils/apis/kuaishou/__init__.py +10 -0
  200. meutils/apis/kuaishou/klingai.py +523 -0
  201. meutils/apis/kuaishou/klingai_video.py +197 -0
  202. meutils/apis/kuaishou/kolors.py +189 -0
  203. meutils/apis/llm_qa.py +55 -0
  204. meutils/apis/luma/__init__.py +11 -0
  205. meutils/apis/luma/luma.py +123 -0
  206. meutils/apis/minicpm/__init__.py +9 -0
  207. meutils/apis/minicpm/luca.py +137 -0
  208. meutils/apis/monica/__init__.py +11 -0
  209. meutils/apis/monica/llm.py +11 -0
  210. meutils/apis/napkin/__init__.py +11 -0
  211. meutils/apis/napkin/icons.py +42 -0
  212. meutils/apis/niutrans.py +73 -0
  213. meutils/apis/oneapi/__init__.py +11 -0
  214. meutils/apis/oneapi/channel.py +68 -0
  215. meutils/apis/oneapi/common.py +135 -0
  216. meutils/apis/oneapi/log.py +47 -0
  217. meutils/apis/oneapi/token.py +48 -0
  218. meutils/apis/oneapi/token_.py +112 -0
  219. meutils/apis/oneapi/user.py +100 -0
  220. meutils/apis/oneapi/utils.py +47 -0
  221. meutils/apis/pixverse/__init__.py +11 -0
  222. meutils/apis/pixverse/pixverse.py +150 -0
  223. meutils/apis/proxy/__init__.py +11 -0
  224. meutils/apis/proxy/ips.py +178 -0
  225. meutils/apis/remini/__init__.py +11 -0
  226. meutils/apis/remini/remini.py +89 -0
  227. meutils/apis/replicateai/__init__.py +11 -0
  228. meutils/apis/replicateai/images.py +79 -0
  229. meutils/apis/replicateai/raw.py +53 -0
  230. meutils/apis/runwayml/__init__.py +10 -0
  231. meutils/apis/runwayml/gen.py +143 -0
  232. meutils/apis/search/__init__.py +11 -0
  233. meutils/apis/search/baichuan.py +11 -0
  234. meutils/apis/search/metaso.py +218 -0
  235. meutils/apis/search/metaso_.py +77 -0
  236. meutils/apis/search/n.py +99 -0
  237. meutils/apis/search/searxng.py +42 -0
  238. meutils/apis/search_music.py +39 -0
  239. meutils/apis/siliconflow/__init__.py +9 -0
  240. meutils/apis/siliconflow/audio.py +63 -0
  241. meutils/apis/siliconflow/image_to_image.py +116 -0
  242. meutils/apis/siliconflow/images.py +154 -0
  243. meutils/apis/siliconflow/rerankers.py +40 -0
  244. meutils/apis/siliconflow/text_to_image.py +132 -0
  245. meutils/apis/siliconflow/utils.py +66 -0
  246. meutils/apis/siliconflow/videos.py +102 -0
  247. meutils/apis/sunoai/__init__.py +10 -0
  248. meutils/apis/sunoai/haimian.py +135 -0
  249. meutils/apis/sunoai/suno.py +373 -0
  250. meutils/apis/textcard/__init__.py +11 -0
  251. meutils/apis/textcard/demo.py +25 -0
  252. meutils/apis/textcard/hanyuxinjie.py +81 -0
  253. meutils/apis/textin.py +159 -0
  254. meutils/apis/to_image/__init__.py +11 -0
  255. meutils/apis/to_image/html2image.py +29 -0
  256. meutils/apis/to_image/md.py +29 -0
  257. meutils/apis/to_image/url2image.py +41 -0
  258. meutils/apis/together/__init__.py +11 -0
  259. meutils/apis/together/images.py +80 -0
  260. meutils/apis/translator/__init__.py +9 -0
  261. meutils/apis/translator/deeplx.py +55 -0
  262. meutils/apis/tripo3d/__init__.py +11 -0
  263. meutils/apis/tripo3d/images.py +106 -0
  264. meutils/apis/ts.py +60 -0
  265. meutils/apis/uptime_kuma/__init__.py +11 -0
  266. meutils/apis/uptime_kuma/common.py +56 -0
  267. meutils/apis/uptime_kuma//345/233/275/344/272/247/345/210/206/347/273/204.py +68 -0
  268. meutils/apis/utils.py +47 -0
  269. meutils/apis/videos/__init__.py +11 -0
  270. meutils/apis/videos/sora.py +16 -0
  271. meutils/apis/vidu/__init__.py +9 -0
  272. meutils/apis/vidu/vidu_video.py +254 -0
  273. meutils/apis/vidu/x.py +14 -0
  274. meutils/apis/voice_clone/__init__.py +10 -0
  275. meutils/apis/voice_clone/fish.py +236 -0
  276. meutils/apis/voice_clone/fish_api.py +16 -0
  277. meutils/apis/web_search.py +31 -0
  278. meutils/apis/yezi.py +97 -0
  279. meutils/async_task/__init__.py +13 -0
  280. meutils/async_task/celery_config.py +106 -0
  281. meutils/async_task/common.py +37 -0
  282. meutils/async_task/demo_create_tasks.py +73 -0
  283. meutils/async_task/tasks/__init__.py +11 -0
  284. meutils/async_task/tasks/_all.py +20 -0
  285. meutils/async_task/tasks/hailuo.py +24 -0
  286. meutils/async_task/tasks/kling.py +30 -0
  287. meutils/async_task/tasks/replicateai.py +24 -0
  288. meutils/async_task/tasks/test.py +124 -0
  289. meutils/async_task/tasks/vidu.py +28 -0
  290. meutils/async_task/utils.py +191 -0
  291. meutils/async_task//351/200/232/347/224/250/350/256/276/350/256/241.py +119 -0
  292. meutils/async_utils/asyncer_.py +37 -0
  293. meutils/async_utils/background.py +68 -0
  294. meutils/async_utils/common.py +136 -16
  295. meutils/async_utils/test.py +47 -0
  296. meutils/cache_utils.py +29 -23
  297. meutils/caches/__init__.py +9 -0
  298. meutils/caches/acache.py +45 -0
  299. meutils/caches/redis_cache.py +63 -0
  300. meutils/clis/check_api.py +66 -0
  301. meutils/clis/cli.py +1 -1
  302. meutils/common.py +56 -17
  303. meutils/config_utils/__init__.py +11 -0
  304. meutils/config_utils/lark_utils/__init__.py +11 -0
  305. meutils/config_utils/lark_utils/common.py +385 -0
  306. meutils/config_utils/lark_utils/demo.py +13 -0
  307. meutils/config_utils/lark_utils/x.py +50 -0
  308. meutils/config_utils/manager.py +108 -0
  309. meutils/crawlers/__init__.py +11 -0
  310. meutils/data/VERSION +1 -1
  311. meutils/data/cowboy-hat-face.webp +0 -0
  312. meutils/data/oneapi/FOOTER.md +7 -0
  313. meutils/data/oneapi/NOTICE.md +138 -0
  314. meutils/data/oneapi/__init__.py +15 -0
  315. meutils/db/orm.py +179 -0
  316. meutils/db/redis_db.py +87 -0
  317. meutils/decorators/cache.py +1 -1
  318. meutils/decorators/common.py +84 -5
  319. meutils/decorators/contextmanagers.py +17 -6
  320. meutils/decorators/fastapi_decorator.py +77 -3
  321. meutils/decorators/polling.py +46 -0
  322. meutils/decorators/retry.py +150 -26
  323. meutils/fastapi_utils/__init__.py +11 -0
  324. meutils/fastapi_utils/exceptions/http_error.py +72 -0
  325. meutils/fastapi_utils/exceptions/validation_error.py +44 -0
  326. meutils/hash_utils.py +9 -4
  327. meutils/hooks/__init__.py +11 -0
  328. meutils/hooks/hook_test.py +174 -0
  329. meutils/hooks/wechat.py +162 -0
  330. meutils/hooks/wechat_channel.py +303 -0
  331. meutils/init/evn.py +1 -1
  332. meutils/io/files_utils.py +232 -0
  333. meutils/io/image.py +148 -10
  334. meutils/io/x.py +75 -0
  335. meutils/llm/__init__.py +10 -0
  336. meutils/llm/check_api.py +109 -0
  337. meutils/llm/check_utils.py +106 -0
  338. meutils/llm/clients.py +38 -0
  339. meutils/llm/completions/__init__.py +11 -0
  340. meutils/llm/completions/agents/__init__.py +11 -0
  341. meutils/llm/completions/agents/file.py +125 -0
  342. meutils/llm/completions/cp.py +112 -0
  343. meutils/llm/completions/delilegal.py +135 -0
  344. meutils/llm/completions/dify.py +81 -0
  345. meutils/llm/completions/kimi.py +47 -0
  346. meutils/llm/completions/modelscope.py +11 -0
  347. meutils/{fileparser/filetype.py → llm/completions/oi.py} +5 -3
  348. meutils/llm/completions/rag/__init__.py +11 -0
  349. meutils/llm/completions/rag/fire.py +157 -0
  350. meutils/llm/completions/rag/qwen.py +11 -0
  351. meutils/llm/completions/rag/rag.py +41 -0
  352. meutils/llm/completions/rag.py +38 -0
  353. meutils/llm/completions/tryblend.py +201 -0
  354. meutils/llm/completions/tune.py +284 -0
  355. meutils/llm/completions/x.py +26 -0
  356. meutils/llm/completions/xx.py +61 -0
  357. meutils/llm/completions/yuanbao.py +176 -0
  358. meutils/llm/demo.py +114 -0
  359. meutils/llm/functions/__init__.py +11 -0
  360. meutils/llm/mappers.py +15 -0
  361. meutils/llm/openai_utils/__init__.py +11 -0
  362. meutils/llm/openai_utils/common.py +284 -0
  363. meutils/llm/openai_utils/tool_outputs.py +45 -0
  364. meutils/llm/output_parsers/__init__.py +80 -0
  365. meutils/llm/prompts/__init__.py +244 -0
  366. meutils/llm/prompts/demo.py +155 -0
  367. meutils/llm/prompts/html2image_test.py +19 -0
  368. meutils/llm/utils.py +133 -0
  369. meutils/llm/x.py +75 -0
  370. meutils/notice/feishu.py +40 -9
  371. meutils/notice/wechat.py +23 -21
  372. meutils/np_utils.py +10 -1
  373. meutils/office_automation/pdf.py +6 -1
  374. meutils/oss/__init__.py +20 -0
  375. meutils/oss/minio_oss.py +184 -0
  376. meutils/oss/minio_utils.py +48 -0
  377. meutils/other/__demo.py +6 -4
  378. meutils/pandas_utils/__init__.py +1 -0
  379. meutils/pandas_utils/common.py +31 -0
  380. meutils/pandas_utils/pd_utils.py +10 -6
  381. meutils/parsers/__init__.py +10 -0
  382. meutils/parsers/file_parsers.py +110 -0
  383. meutils/parsers/fileparser/demo.py +41 -0
  384. meutils/parsers/fileparser/filetype.py +41 -0
  385. meutils/pay.py +37 -0
  386. meutils/pipe.py +37 -4
  387. meutils/playwright_utils/common.py +20 -12
  388. meutils/plots/common.py +35 -34
  389. meutils/queues/demo.py +56 -0
  390. meutils/queues/smooth_queue.py +120 -0
  391. meutils/queues/uniform_queue.py +3 -1
  392. meutils/request_utils/__init__.py +26 -2
  393. meutils/request_utils/ark.py +47 -0
  394. meutils/request_utils/crawler.py +34 -5
  395. meutils/request_utils/jwt_utils/__init__.py +11 -0
  396. meutils/request_utils/jwt_utils/common.py +42 -0
  397. meutils/request_utils/volc.py +160 -0
  398. meutils/schemas/__init__.py +0 -1
  399. meutils/schemas/baidu_types.py +70 -0
  400. meutils/schemas/batch_types.py +450 -0
  401. meutils/schemas/celery_types.py +64 -0
  402. meutils/schemas/chatfire_types.py +15 -0
  403. meutils/schemas/chatglm_types.py +197 -0
  404. meutils/schemas/db/__init__.py +11 -0
  405. meutils/schemas/db/oneapi_types.py +117 -0
  406. meutils/schemas/dify_types.py +40 -0
  407. meutils/schemas/embedding.py +31 -0
  408. meutils/schemas/fal_types.py +13 -0
  409. meutils/schemas/fish_types.py +11 -0
  410. meutils/schemas/hailuo_types.py +208 -0
  411. meutils/schemas/haimian_types.py +51 -0
  412. meutils/schemas/idphoto_types.py +43 -0
  413. meutils/schemas/image_types.py +476 -0
  414. meutils/schemas/jimeng_types.py +28 -0
  415. meutils/schemas/jina_types.py +67 -0
  416. meutils/schemas/kimi_types.py +86 -0
  417. meutils/schemas/kling_types.py +235 -0
  418. meutils/schemas/kuaishou_types.py +328 -0
  419. meutils/schemas/luma_types.py +59 -0
  420. meutils/schemas/message_types.py +165 -0
  421. meutils/schemas/message_types_.py +219 -0
  422. meutils/schemas/metaso_types.py +64 -0
  423. meutils/schemas/napkin_types.py +85 -0
  424. meutils/schemas/ocr_types.py +37 -0
  425. meutils/schemas/oneapi/__init__.py +11 -0
  426. meutils/schemas/oneapi/_types.py +49 -0
  427. meutils/schemas/oneapi/common.py +883 -0
  428. meutils/schemas/oneapi/icons.py +30 -0
  429. meutils/schemas/oneapi/model_group_info.py +48 -0
  430. meutils/schemas/oneapi/model_info.py +34 -0
  431. meutils/schemas/oneapi/models.py +26 -0
  432. meutils/schemas/oneapi/x.py +26 -0
  433. meutils/schemas/oneapi//351/207/215/345/256/232/345/220/221.py +132 -0
  434. meutils/schemas/openai_api_protocol.py +411 -0
  435. meutils/schemas/openai_types.py +366 -0
  436. meutils/schemas/pixverse_types.py +88 -0
  437. meutils/schemas/playwright_types.py +57 -0
  438. meutils/schemas/prodia_types.py +19 -0
  439. meutils/schemas/replicate_types.py +112 -0
  440. meutils/schemas/request_types.py +20 -0
  441. meutils/schemas/runwayml_types.py +190 -0
  442. meutils/schemas/siliconflow_types.py +80 -0
  443. meutils/schemas/step_types.py +19 -0
  444. meutils/schemas/suno_types.py +319 -0
  445. meutils/schemas/task_types.py +192 -0
  446. meutils/schemas/translator_types.py +29 -0
  447. meutils/schemas/tripo3d_types.py +57 -0
  448. meutils/schemas/tryblend_types.py +51 -0
  449. meutils/schemas/video_types.py +62 -0
  450. meutils/schemas/vidu_types.py +350 -0
  451. meutils/schemas/wechat_types.py +316 -0
  452. meutils/schemas/yuanbao_types.py +260 -0
  453. meutils/serving/celery/__init__.py +8 -0
  454. meutils/serving/celery/config.py +115 -0
  455. meutils/serving/celery/router.py +4 -6
  456. meutils/serving/celery/tasks.py +6 -4
  457. meutils/serving/celery//351/200/232/347/224/250/350/256/276/350/256/241.py +119 -0
  458. meutils/serving/fastapi/common.py +27 -31
  459. meutils/serving/fastapi/dependencies/__init__.py +0 -1
  460. meutils/serving/fastapi/dependencies/auth.py +55 -2
  461. meutils/serving/fastapi/exceptions/http_error.py +67 -2
  462. meutils/serving/fastapi/exceptions/validation_error.py +18 -2
  463. meutils/serving/fastapi/lifespans.py +73 -0
  464. meutils/serving/fastapi/routers/scheduler.py +12 -0
  465. meutils/serving/fastapi/routers/screenshot.py +47 -0
  466. meutils/serving/fastapi/routers/spider.py +8 -3
  467. meutils/serving/fastapi/routers/task.py +48 -0
  468. meutils/serving/fastapi/utils.py +48 -1
  469. meutils/serving/streamlit/common.py +1 -1
  470. meutils/smooth_utils.py +3 -0
  471. meutils/str_utils/__init__.py +22 -3
  472. meutils/str_utils/json_utils.py +7 -0
  473. meutils/str_utils/regular_expression.py +102 -10
  474. meutils/templates/xx.html +21 -0
  475. meutils/templates/xxx.html +117 -0
  476. meutils/todo.py +12 -0
  477. meutils/tools/token_monitor.py +33 -0
  478. MeUtils-2024.3.4.13.4.45.dist-info/RECORD +0 -540
  479. meutils/ai_audio/asr/subtitle.srt +0 -40
  480. meutils/ai_audio/demo.ipynb +0 -1215
  481. meutils/ai_audio/example.srt +0 -348
  482. meutils/ai_audio/new.srt +0 -179
  483. meutils/ai_audio/subtitles.srt +0 -696
  484. meutils/ai_audio/tts/new.srt +0 -179
  485. meutils/ai_audio//350/247/206/351/242/221/345/220/210/345/271/266.sh +0 -32
  486. meutils/ai_cv/1.jpg +0 -0
  487. meutils/ai_cv/197.jpg +0 -0
  488. meutils/ai_cv/2.jpg +0 -0
  489. meutils/ai_cv/img.png +0 -0
  490. meutils/ai_cv/invoice.jpg +0 -0
  491. meutils/ai_cv/tbl.png +0 -0
  492. meutils/ai_cv/test.png +0 -0
  493. meutils/ann/README.md +0 -33
  494. meutils/ann/README_gensim.md +0 -47
  495. meutils/ann/examples/client.py +0 -59
  496. meutils/ann/examples/demo.py +0 -24
  497. meutils/api/deeplx.py +0 -29
  498. meutils/api/qr.png +0 -0
  499. meutils/clis/README.md +0 -29
  500. meutils/clis/__test.sh +0 -17
  501. meutils/clis/deepseek.txt +0 -8
  502. meutils/clis/deepseek_13003330042.json +0 -1
  503. meutils/clis/deepseek_13003872192.json +0 -1
  504. meutils/clis/deepseek_13852263862.json +0 -1
  505. meutils/clis/deepseek_13913898681.json +0 -1
  506. meutils/clis/deepseek_13962978617.json +0 -1
  507. meutils/clis/deepseek_15251801790.json +0 -1
  508. meutils/clis/deepseek_15720826383.json +0 -1
  509. meutils/clis/deepseek_18395563611.json +0 -1
  510. meutils/clis/deepseek_313303303@qq.com.json +0 -1
  511. meutils/clis/kimi_state.json +0 -1
  512. meutils/cmds/README.md +0 -55
  513. meutils/coding/__init__.py +0 -11
  514. meutils/coding/find132.py +0 -40
  515. meutils/db/README.md +0 -51
  516. meutils/decorators/README.md +0 -17
  517. meutils/docarray_utils/demo_es.py +0 -34
  518. meutils/docarray_utils/demo_hnsw.py +0 -55
  519. meutils/docarray_utils/in_memory.py +0 -38
  520. meutils/docarray_utils//346/224/271/351/200/240/344/270/213hnsw.py +0 -43
  521. meutils/io/file.py +0 -20
  522. meutils/io/img.png +0 -0
  523. meutils/io/x.yml +0 -1
  524. meutils/notice/img.png +0 -0
  525. meutils/notice/todo.md +0 -10
  526. meutils/office_automation//346/212/225/350/265/204/347/256/241/347/220/206/347/263/273/347/273/237O3.2_/344/272/244/346/230/223/347/273/204.pdm +0 -22469
  527. meutils/playwright_utils/__test.sh +0 -2
  528. meutils/playwright_utils/kimi1_cookies.json +0 -1
  529. meutils/playwright_utils/kimi2_cookies.json +0 -1
  530. meutils/playwright_utils/kimi_cookies.json +0 -93
  531. meutils/serving/README.md +0 -1
  532. meutils/serving/celery/_run.sh +0 -10
  533. meutils/serving/gui/run.sh +0 -9
  534. meutils/serving/jina/__demo/client.py +0 -42
  535. meutils/serving/jina/__demo/flow.svg +0 -1
  536. meutils/serving/jina/__demo/s.py +0 -34
  537. meutils/serving/jina/__demo/s2.py +0 -37
  538. meutils/serving/jina/__demo/server.py +0 -83
  539. meutils/serving/jina/__demo/test.py +0 -40
  540. meutils/serving/jina/executors/SentenceEncoder.py +0 -62
  541. meutils/serving/jina/executors/SentenceEncoder_.py +0 -63
  542. meutils/serving/jina/executors/__init__.py +0 -46
  543. meutils/serving/jina/executors/base.py +0 -40
  544. meutils/serving/jina/nlp_serving/__init__.py +0 -11
  545. meutils/serving/jina/nlp_serving/word_segmentation.py +0 -40
  546. meutils/serving/streamlit/conf.yaml +0 -5
  547. meutils/serving/streamlit/ocr.png +0 -0
  548. meutils/serving/streamlit/run.sh +0 -17
  549. meutils/serving/webui/.streamlit/_config.toml +0 -186
  550. meutils/serving/webui/.streamlit/config.toml +0 -26
  551. meutils/serving/webui/pages/_1_/345/210/206/350/257/215.py +0 -56
  552. meutils/serving/webui/pages/_2_/350/257/215/346/200/247/346/240/207/346/263/250/344/270/216/345/256/236/344/275/223/350/257/206/345/210/253.py +0 -54
  553. meutils/serving/webui/pages/_3_/346/226/207/346/234/254/345/214/271/351/205/215.py +0 -64
  554. meutils/serving/webui/run.sh +0 -9
  555. meutils/spark/__init__.py +0 -26
  556. meutils/tools/monitor.yml +0 -29
  557. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/LICENSE +0 -0
  558. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/top_level.txt +0 -0
  559. {meutils → examples}/comp_utils/__init__.py +0 -0
  560. {meutils → examples}/comp_utils/reverse_metric.py +0 -0
  561. /meutils/{fileparser/README.md → fastapi_utils/exceptions/__init__.py} +0 -0
  562. /meutils/{fileparser → parsers/fileparser}/PDF/346/212/275/345/217/226.py" +0 -0
  563. /meutils/{fileparser → parsers/fileparser}/__init__.py +0 -0
  564. /meutils/{fileparser → parsers/fileparser}/common.py +0 -0
  565. /meutils/{fileparser → parsers/fileparser}/filetype/__init__.py +0 -0
  566. /meutils/{fileparser → parsers/fileparser}/filetype/__main__.py +0 -0
  567. /meutils/{fileparser → parsers/fileparser}/filetype/filetype.py +0 -0
  568. /meutils/{fileparser → parsers/fileparser}/filetype/helpers.py +0 -0
  569. /meutils/{fileparser → parsers/fileparser}/filetype/match.py +0 -0
  570. /meutils/{fileparser → parsers/fileparser}/filetype/types/__init__.py +0 -0
  571. /meutils/{fileparser → parsers/fileparser}/filetype/types/application.py +0 -0
  572. /meutils/{fileparser → parsers/fileparser}/filetype/types/archive.py +0 -0
  573. /meutils/{fileparser → parsers/fileparser}/filetype/types/audio.py +0 -0
  574. /meutils/{fileparser → parsers/fileparser}/filetype/types/base.py +0 -0
  575. /meutils/{fileparser → parsers/fileparser}/filetype/types/document.py +0 -0
  576. /meutils/{fileparser → parsers/fileparser}/filetype/types/font.py +0 -0
  577. /meutils/{fileparser → parsers/fileparser}/filetype/types/image.py +0 -0
  578. /meutils/{fileparser → parsers/fileparser}/filetype/types/isobmff.py +0 -0
  579. /meutils/{fileparser → parsers/fileparser}/filetype/types/video.py +0 -0
  580. /meutils/{fileparser → parsers/fileparser}/filetype/utils.py +0 -0
  581. /meutils/{fileparser → parsers/fileparser}/pdf.py +0 -0
  582. /meutils/{fileparser → parsers/fileparser}//350/241/250/346/240/274/346/212/275/345/217/226.py" +0 -0
@@ -0,0 +1,450 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : batch_types
5
+ # @Time : 2024/6/3 09:06
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description : https://github.com/datastax/astra-assistants-api/blob/f10ce1e71d321aee2069948758600b88b30b33e0/openapi_server_v2/models/batch.py#L32
10
+
11
+ from meutils.pipe import *
12
+ import pprint
13
+
14
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
15
+ from typing import Any, ClassVar, Dict, List, Optional, Self
16
+
17
+
18
+ class BatchErrorsDataInner(BaseModel):
19
+ """
20
+ BatchErrorsDataInner
21
+ """ # noqa: E501
22
+ code: Optional[StrictStr] = Field(default=None, description="An error code identifying the error type.")
23
+ message: Optional[StrictStr] = Field(default=None,
24
+ description="A human-readable message providing more details about the error.")
25
+ param: Optional[StrictStr] = Field(default=None,
26
+ description="The name of the parameter that caused the error, if applicable.")
27
+ line: Optional[StrictInt] = Field(default=None,
28
+ description="The line number of the input file where the error occurred, if applicable.")
29
+ __properties: ClassVar[List[str]] = ["code", "message", "param", "line"]
30
+
31
+ model_config = {
32
+ "populate_by_name": True,
33
+ "validate_assignment": True,
34
+ "protected_namespaces": (),
35
+ }
36
+
37
+ def to_str(self) -> str:
38
+ """Returns the string representation of the model using alias"""
39
+ return pprint.pformat(self.model_dump(by_alias=True))
40
+
41
+ def to_json(self) -> str:
42
+ """Returns the JSON representation of the model using alias"""
43
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> Self:
48
+ """Create an instance of BatchErrorsDataInner from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self) -> Dict[str, Any]:
52
+ """Return the dictionary representation of the model using alias.
53
+
54
+ This has the following differences from calling pydantic's
55
+ `self.model_dump(by_alias=True)`:
56
+
57
+ * `None` is only added to the output dict for nullable fields that
58
+ were set at model initialization. Other fields with value `None`
59
+ are ignored.
60
+ """
61
+ _dict = self.model_dump(
62
+ by_alias=True,
63
+ exclude={
64
+ },
65
+ exclude_none=True,
66
+ )
67
+ # set to None if param (nullable) is None
68
+ # and model_fields_set contains the field
69
+ if self.param is None and "param" in self.model_fields_set:
70
+ _dict['param'] = None
71
+
72
+ # set to None if line (nullable) is None
73
+ # and model_fields_set contains the field
74
+ if self.line is None and "line" in self.model_fields_set:
75
+ _dict['line'] = None
76
+
77
+ return _dict
78
+
79
+ @classmethod
80
+ def from_dict(cls, obj: Dict) -> Self:
81
+ """Create an instance of BatchErrorsDataInner from a dict"""
82
+ if obj is None:
83
+ return None
84
+
85
+ if not isinstance(obj, dict):
86
+ return cls.model_validate(obj)
87
+
88
+ _obj = cls.model_validate({
89
+ "code": obj.get("code"),
90
+ "message": obj.get("message"),
91
+ "param": obj.get("param"),
92
+ "line": obj.get("line")
93
+ })
94
+ return _obj
95
+
96
+
97
+ class BatchErrors(BaseModel):
98
+ """
99
+ BatchErrors
100
+ """ # noqa: E501
101
+ object: Optional[StrictStr] = Field(default=None, description="The object type, which is always `list`.")
102
+ data: Optional[List[BatchErrorsDataInner]] = None
103
+ __properties: ClassVar[List[str]] = ["object", "data"]
104
+
105
+ model_config = {
106
+ "populate_by_name": True,
107
+ "validate_assignment": True,
108
+ "protected_namespaces": (),
109
+ }
110
+
111
+ def to_str(self) -> str:
112
+ """Returns the string representation of the model using alias"""
113
+ return pprint.pformat(self.model_dump(by_alias=True))
114
+
115
+ def to_json(self) -> str:
116
+ """Returns the JSON representation of the model using alias"""
117
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
118
+ return json.dumps(self.to_dict())
119
+
120
+ @classmethod
121
+ def from_json(cls, json_str: str) -> Self:
122
+ """Create an instance of BatchErrors from a JSON string"""
123
+ return cls.from_dict(json.loads(json_str))
124
+
125
+ def to_dict(self) -> Dict[str, Any]:
126
+ """Return the dictionary representation of the model using alias.
127
+
128
+ This has the following differences from calling pydantic's
129
+ `self.model_dump(by_alias=True)`:
130
+
131
+ * `None` is only added to the output dict for nullable fields that
132
+ were set at model initialization. Other fields with value `None`
133
+ are ignored.
134
+ """
135
+ _dict = self.model_dump(
136
+ by_alias=True,
137
+ exclude={
138
+ },
139
+ exclude_none=True,
140
+ )
141
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
142
+ _items = []
143
+ if self.data:
144
+ for _item in self.data:
145
+ if _item:
146
+ _items.append(_item.to_dict())
147
+ _dict['data'] = _items
148
+ return _dict
149
+
150
+ @classmethod
151
+ def from_dict(cls, obj: Dict) -> Self:
152
+ """Create an instance of BatchErrors from a dict"""
153
+ if obj is None:
154
+ return None
155
+
156
+ if not isinstance(obj, dict):
157
+ return cls.model_validate(obj)
158
+
159
+ _obj = cls.model_validate({
160
+ "object": obj.get("object"),
161
+ "data": [BatchErrorsDataInner.from_dict(_item) for _item in obj.get("data")] if obj.get(
162
+ "data") is not None else None
163
+ })
164
+ return _obj
165
+
166
+
167
+ class BatchRequestCounts(BaseModel):
168
+ """
169
+ The request counts for different statuses within the batch.
170
+ """ # noqa: E501
171
+ total: StrictInt = Field(description="Total number of requests in the batch.")
172
+ completed: StrictInt = Field(description="Number of requests that have been completed successfully.")
173
+ failed: StrictInt = Field(description="Number of requests that have failed.")
174
+ __properties: ClassVar[List[str]] = ["total", "completed", "failed"]
175
+
176
+ model_config = {
177
+ "populate_by_name": True,
178
+ "validate_assignment": True,
179
+ "protected_namespaces": (),
180
+ }
181
+
182
+ def to_str(self) -> str:
183
+ """Returns the string representation of the model using alias"""
184
+ return pprint.pformat(self.model_dump(by_alias=True))
185
+
186
+ def to_json(self) -> str:
187
+ """Returns the JSON representation of the model using alias"""
188
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
189
+ return json.dumps(self.to_dict())
190
+
191
+ @classmethod
192
+ def from_json(cls, json_str: str) -> Self:
193
+ """Create an instance of BatchRequestCounts from a JSON string"""
194
+ return cls.from_dict(json.loads(json_str))
195
+
196
+ def to_dict(self) -> Dict[str, Any]:
197
+ """Return the dictionary representation of the model using alias.
198
+
199
+ This has the following differences from calling pydantic's
200
+ `self.model_dump(by_alias=True)`:
201
+
202
+ * `None` is only added to the output dict for nullable fields that
203
+ were set at model initialization. Other fields with value `None`
204
+ are ignored.
205
+ """
206
+ _dict = self.model_dump(
207
+ by_alias=True,
208
+ exclude={
209
+ },
210
+ exclude_none=True,
211
+ )
212
+ return _dict
213
+
214
+ @classmethod
215
+ def from_dict(cls, obj: Dict) -> Self:
216
+ """Create an instance of BatchRequestCounts from a dict"""
217
+ if obj is None:
218
+ return None
219
+
220
+ if not isinstance(obj, dict):
221
+ return cls.model_validate(obj)
222
+
223
+ _obj = cls.model_validate({
224
+ "total": obj.get("total"),
225
+ "completed": obj.get("completed"),
226
+ "failed": obj.get("failed")
227
+ })
228
+ return _obj
229
+
230
+
231
+ class Batch(BaseModel):
232
+ """
233
+ Batch
234
+ """ # noqa: E501
235
+ id: StrictStr
236
+ object: StrictStr = Field(description="The object type, which is always `batch`.")
237
+ endpoint: StrictStr = Field(description="The OpenAI API endpoint used by the batch.")
238
+ errors: Optional[BatchErrors] = None
239
+ input_file_id: StrictStr = Field(description="The ID of the input file for the batch.")
240
+ completion_window: StrictStr = Field(description="The time frame within which the batch should be processed.")
241
+ status: StrictStr = Field(description="The current status of the batch.")
242
+ output_file_id: Optional[StrictStr] = Field(default=None,
243
+ description="The ID of the file containing the outputs of successfully executed requests.")
244
+ error_file_id: Optional[StrictStr] = Field(default=None,
245
+ description="The ID of the file containing the outputs of requests with errors.")
246
+ created_at: StrictInt = Field(description="The Unix timestamp (in seconds) for when the batch was created.")
247
+ in_progress_at: Optional[StrictInt] = Field(default=None,
248
+ description="The Unix timestamp (in seconds) for when the batch started processing.")
249
+ expires_at: Optional[StrictInt] = Field(default=None,
250
+ description="The Unix timestamp (in seconds) for when the batch will expire.")
251
+ finalizing_at: Optional[StrictInt] = Field(default=None,
252
+ description="The Unix timestamp (in seconds) for when the batch started finalizing.")
253
+ completed_at: Optional[StrictInt] = Field(default=None,
254
+ description="The Unix timestamp (in seconds) for when the batch was completed.")
255
+ failed_at: Optional[StrictInt] = Field(default=None,
256
+ description="The Unix timestamp (in seconds) for when the batch failed.")
257
+ expired_at: Optional[StrictInt] = Field(default=None,
258
+ description="The Unix timestamp (in seconds) for when the batch expired.")
259
+ cancelling_at: Optional[StrictInt] = Field(default=None,
260
+ description="The Unix timestamp (in seconds) for when the batch started cancelling.")
261
+ cancelled_at: Optional[StrictInt] = Field(default=None,
262
+ description="The Unix timestamp (in seconds) for when the batch was cancelled.")
263
+ request_counts: Optional[BatchRequestCounts] = None
264
+ metadata: Optional[Dict[str, Any]] = Field(default=None,
265
+ description="Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format. Keys can be a maximum of 64 characters long and values can be a maxium of 512 characters long. ")
266
+ __properties: ClassVar[List[str]] = ["id", "object", "endpoint", "errors", "input_file_id", "completion_window",
267
+ "status", "output_file_id", "error_file_id", "created_at", "in_progress_at",
268
+ "expires_at", "finalizing_at", "completed_at", "failed_at", "expired_at",
269
+ "cancelling_at", "cancelled_at", "request_counts", "metadata"]
270
+
271
+ @field_validator('object')
272
+ def object_validate_enum(cls, value):
273
+ """Validates the enum"""
274
+ if value not in ('batch'):
275
+ raise ValueError("must be one of enum values ('batch')")
276
+ return value
277
+
278
+ @field_validator('status')
279
+ def status_validate_enum(cls, value):
280
+ """Validates the enum"""
281
+ if value not in (
282
+ 'validating', 'failed', 'in_progress', 'finalizing', 'completed', 'expired', 'cancelling', 'cancelled'):
283
+ raise ValueError(
284
+ "must be one of enum values ('validating', 'failed', 'in_progress', 'finalizing', 'completed', 'expired', 'cancelling', 'cancelled')")
285
+ return value
286
+
287
+ model_config = {
288
+ "populate_by_name": True,
289
+ "validate_assignment": True,
290
+ "protected_namespaces": (),
291
+ }
292
+
293
+ def to_str(self) -> str:
294
+ """Returns the string representation of the model using alias"""
295
+ return pprint.pformat(self.model_dump(by_alias=True))
296
+
297
+ def to_json(self) -> str:
298
+ """Returns the JSON representation of the model using alias"""
299
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
300
+ return json.dumps(self.to_dict())
301
+
302
+ @classmethod
303
+ def from_json(cls, json_str: str) -> Self:
304
+ """Create an instance of Batch from a JSON string"""
305
+ return cls.from_dict(json.loads(json_str))
306
+
307
+ def to_dict(self) -> Dict[str, Any]:
308
+ """Return the dictionary representation of the model using alias.
309
+
310
+ This has the following differences from calling pydantic's
311
+ `self.model_dump(by_alias=True)`:
312
+
313
+ * `None` is only added to the output dict for nullable fields that
314
+ were set at model initialization. Other fields with value `None`
315
+ are ignored.
316
+ """
317
+ _dict = self.model_dump(
318
+ by_alias=True,
319
+ exclude={
320
+ },
321
+ exclude_none=True,
322
+ )
323
+ # override the default output from pydantic by calling `to_dict()` of errors
324
+ if self.errors:
325
+ _dict['errors'] = self.errors.to_dict()
326
+ # override the default output from pydantic by calling `to_dict()` of request_counts
327
+ if self.request_counts:
328
+ _dict['request_counts'] = self.request_counts.to_dict()
329
+ # set to None if metadata (nullable) is None
330
+ # and model_fields_set contains the field
331
+ if self.metadata is None and "metadata" in self.model_fields_set:
332
+ _dict['metadata'] = None
333
+
334
+ return _dict
335
+
336
+ @classmethod
337
+ def from_dict(cls, obj: Dict) -> Self:
338
+ """Create an instance of Batch from a dict"""
339
+ if obj is None:
340
+ return None
341
+
342
+ if not isinstance(obj, dict):
343
+ return cls.model_validate(obj)
344
+
345
+ _obj = cls.model_validate({
346
+ "id": obj.get("id"),
347
+ "object": obj.get("object"),
348
+ "endpoint": obj.get("endpoint"),
349
+ "errors": BatchErrors.from_dict(obj.get("errors")) if obj.get("errors") is not None else None,
350
+ "input_file_id": obj.get("input_file_id"),
351
+ "completion_window": obj.get("completion_window"),
352
+ "status": obj.get("status"),
353
+ "output_file_id": obj.get("output_file_id"),
354
+ "error_file_id": obj.get("error_file_id"),
355
+ "created_at": obj.get("created_at"),
356
+ "in_progress_at": obj.get("in_progress_at"),
357
+ "expires_at": obj.get("expires_at"),
358
+ "finalizing_at": obj.get("finalizing_at"),
359
+ "completed_at": obj.get("completed_at"),
360
+ "failed_at": obj.get("failed_at"),
361
+ "expired_at": obj.get("expired_at"),
362
+ "cancelling_at": obj.get("cancelling_at"),
363
+ "cancelled_at": obj.get("cancelled_at"),
364
+ "request_counts": BatchRequestCounts.from_dict(obj.get("request_counts")) if obj.get(
365
+ "request_counts") is not None else None,
366
+ "metadata": obj.get("metadata")
367
+ })
368
+ return _obj
369
+
370
+
371
+ class ListBatchesResponse(BaseModel):
372
+ """
373
+ ListBatchesResponse
374
+ """ # noqa: E501
375
+ data: List[Batch]
376
+ first_id: Optional[StrictStr] = None
377
+ last_id: Optional[StrictStr] = None
378
+ has_more: StrictBool
379
+ object: StrictStr
380
+ __properties: ClassVar[List[str]] = ["data", "first_id", "last_id", "has_more", "object"]
381
+
382
+ @field_validator('object')
383
+ def object_validate_enum(cls, value):
384
+ """Validates the enum"""
385
+ if value not in ('list'):
386
+ raise ValueError("must be one of enum values ('list')")
387
+ return value
388
+
389
+ model_config = {
390
+ "populate_by_name": True,
391
+ "validate_assignment": True,
392
+ "protected_namespaces": (),
393
+ }
394
+
395
+ def to_str(self) -> str:
396
+ """Returns the string representation of the model using alias"""
397
+ return pprint.pformat(self.model_dump(by_alias=True))
398
+
399
+ def to_json(self) -> str:
400
+ """Returns the JSON representation of the model using alias"""
401
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
402
+ return json.dumps(self.to_dict())
403
+
404
+ @classmethod
405
+ def from_json(cls, json_str: str) -> Self:
406
+ """Create an instance of ListBatchesResponse from a JSON string"""
407
+ return cls.from_dict(json.loads(json_str))
408
+
409
+ def to_dict(self) -> Dict[str, Any]:
410
+ """Return the dictionary representation of the model using alias.
411
+
412
+ This has the following differences from calling pydantic's
413
+ `self.model_dump(by_alias=True)`:
414
+
415
+ * `None` is only added to the output dict for nullable fields that
416
+ were set at model initialization. Other fields with value `None`
417
+ are ignored.
418
+ """
419
+ _dict = self.model_dump(
420
+ by_alias=True,
421
+ exclude={
422
+ },
423
+ exclude_none=True,
424
+ )
425
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
426
+ _items = []
427
+ if self.data:
428
+ for _item in self.data:
429
+ if _item:
430
+ _items.append(_item.to_dict())
431
+ _dict['data'] = _items
432
+ return _dict
433
+
434
+ @classmethod
435
+ def from_dict(cls, obj: Dict) -> Self:
436
+ """Create an instance of ListBatchesResponse from a dict"""
437
+ if obj is None:
438
+ return None
439
+
440
+ if not isinstance(obj, dict):
441
+ return cls.model_validate(obj)
442
+
443
+ _obj = cls.model_validate({
444
+ "data": [Batch.from_dict(_item) for _item in obj.get("data")] if obj.get("data") is not None else None,
445
+ "first_id": obj.get("first_id"),
446
+ "last_id": obj.get("last_id"),
447
+ "has_more": obj.get("has_more"),
448
+ "object": obj.get("object")
449
+ })
450
+ return _obj
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : celery_types
5
+ # @Time : 2024/11/25 17:56
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from enum import Enum
12
+ from meutils.pipe import *
13
+
14
+
15
+ # 1. 定义标准响应模型
16
+ class TaskStatus(str, Enum):
17
+ #: Task state is unknown (assumed pending since you know the id).
18
+ PENDING = 'PENDING'
19
+ #: Task was received by a worker (only used in events).
20
+ RECEIVED = 'RECEIVED'
21
+ #: Task was started by a worker (:setting:`task_track_started`).
22
+ STARTED = 'STARTED'
23
+ #: Task succeeded
24
+ SUCCESS = 'SUCCESS'
25
+ #: Task failed
26
+ FAILURE = 'FAILURE'
27
+ #: Task was revoked.
28
+ REVOKED = 'REVOKED'
29
+ #: Task was rejected (only used in events).
30
+ REJECTED = 'REJECTED'
31
+ #: Task is waiting for retry.
32
+ RETRY = 'RETRY'
33
+ IGNORED = 'IGNORED'
34
+
35
+
36
+ class TaskResponse(BaseModel):
37
+ code: int
38
+ message: str
39
+ task_id: str = Field(default_factory=shortuuid.random) # celery task_id
40
+ status: TaskStatus = "PENDING"
41
+ data: Optional[Any] = None # 存放具体的Task结构
42
+
43
+ created_at: str = Field(default_factory=lambda: datetime.datetime.today().isoformat()) # "2024-11-19T03:11:22.795Z"
44
+
45
+ # 系统水印: 一般用来存轮询token ###### 不要暴露
46
+ system_fingerprint: Optional[str] = None
47
+
48
+ class Config:
49
+ # 允许额外字段,增加灵活性
50
+ extra = 'allow'
51
+
52
+ # kling示例
53
+ # code: int = 0
54
+ # message: str = ""
55
+ # request_id: str = ""
56
+ #
57
+ # data: Optional[Task] = None
58
+ #
59
+ # # 系统水印
60
+ # system_fingerprint: Optional[str] = None
61
+
62
+
63
+ if __name__ == '__main__':
64
+ print(TaskResponse(code=1, message='', data={'a': 1}))
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : chatfire_types
5
+ # @Time : 2024/6/27 17:26
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+
13
+ MODELS = {
14
+ ""
15
+ }