langflow-base-nightly 0.5.0.dev37__py3-none-any.whl → 0.5.0.dev38__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 (335) hide show
  1. langflow/__main__.py +1 -1
  2. langflow/alembic/versions/4e5980a44eaa_fix_date_times_again.py +24 -30
  3. langflow/alembic/versions/58b28437a398_modify_nullable.py +6 -6
  4. langflow/alembic/versions/79e675cb6752_change_datetime_type.py +24 -30
  5. langflow/alembic/versions/b2fa308044b5_add_unique_constraints.py +12 -13
  6. langflow/api/build.py +21 -26
  7. langflow/api/health_check_router.py +3 -3
  8. langflow/api/utils.py +3 -3
  9. langflow/api/v1/callback.py +2 -2
  10. langflow/api/v1/chat.py +19 -31
  11. langflow/api/v1/endpoints.py +10 -10
  12. langflow/api/v1/flows.py +1 -1
  13. langflow/api/v1/knowledge_bases.py +3 -3
  14. langflow/api/v1/mcp.py +12 -12
  15. langflow/api/v1/mcp_projects.py +45 -81
  16. langflow/api/v1/mcp_utils.py +8 -8
  17. langflow/api/v1/schemas.py +1 -5
  18. langflow/api/v1/store.py +1 -1
  19. langflow/api/v1/validate.py +2 -2
  20. langflow/api/v1/voice_mode.py +58 -62
  21. langflow/api/v2/files.py +2 -2
  22. langflow/api/v2/mcp.py +10 -9
  23. langflow/base/composio/composio_base.py +21 -2
  24. langflow/base/data/docling_utils.py +194 -0
  25. langflow/base/embeddings/aiml_embeddings.py +1 -1
  26. langflow/base/flow_processing/utils.py +1 -2
  27. langflow/base/io/__init__.py +0 -1
  28. langflow/base/langwatch/utils.py +2 -1
  29. langflow/base/mcp/util.py +49 -47
  30. langflow/base/prompts/api_utils.py +1 -1
  31. langflow/base/tools/flow_tool.py +2 -2
  32. langflow/base/tools/run_flow.py +2 -6
  33. langflow/components/Notion/add_content_to_page.py +2 -2
  34. langflow/components/Notion/list_database_properties.py +2 -2
  35. langflow/components/Notion/list_pages.py +2 -2
  36. langflow/components/Notion/page_content_viewer.py +2 -2
  37. langflow/components/Notion/update_page_property.py +1 -1
  38. langflow/components/agentql/agentql_api.py +2 -10
  39. langflow/components/agents/agent.py +3 -3
  40. langflow/components/agents/mcp_component.py +14 -14
  41. langflow/components/anthropic/anthropic.py +5 -4
  42. langflow/components/assemblyai/assemblyai_get_subtitles.py +2 -2
  43. langflow/components/assemblyai/assemblyai_lemur.py +2 -2
  44. langflow/components/assemblyai/assemblyai_list_transcripts.py +2 -2
  45. langflow/components/assemblyai/assemblyai_poll_transcript.py +2 -2
  46. langflow/components/assemblyai/assemblyai_start_transcript.py +2 -2
  47. langflow/components/data/file.py +575 -55
  48. langflow/components/data/url.py +1 -1
  49. langflow/components/datastax/astra_assistant_manager.py +3 -3
  50. langflow/components/datastax/create_assistant.py +1 -2
  51. langflow/components/deactivated/merge_data.py +1 -2
  52. langflow/components/deactivated/sub_flow.py +6 -7
  53. langflow/components/deactivated/vectara_self_query.py +3 -3
  54. langflow/components/docling/__init__.py +0 -198
  55. langflow/components/docling/docling_inline.py +1 -1
  56. langflow/components/embeddings/text_embedder.py +3 -3
  57. langflow/components/firecrawl/firecrawl_extract_api.py +2 -9
  58. langflow/components/google/gmail.py +1 -1
  59. langflow/components/google/google_generative_ai.py +5 -11
  60. langflow/components/groq/groq.py +4 -3
  61. langflow/components/helpers/current_date.py +2 -3
  62. langflow/components/helpers/memory.py +1 -1
  63. langflow/components/ibm/watsonx.py +1 -1
  64. langflow/components/ibm/watsonx_embeddings.py +1 -1
  65. langflow/components/langwatch/langwatch.py +3 -3
  66. langflow/components/logic/flow_tool.py +2 -2
  67. langflow/components/logic/notify.py +1 -1
  68. langflow/components/logic/run_flow.py +2 -3
  69. langflow/components/logic/sub_flow.py +4 -5
  70. langflow/components/mem0/mem0_chat_memory.py +2 -8
  71. langflow/components/nvidia/nvidia.py +3 -3
  72. langflow/components/olivya/olivya.py +7 -7
  73. langflow/components/ollama/ollama.py +8 -6
  74. langflow/components/processing/batch_run.py +8 -8
  75. langflow/components/processing/data_operations.py +2 -2
  76. langflow/components/processing/merge_data.py +1 -2
  77. langflow/components/processing/message_to_data.py +2 -3
  78. langflow/components/processing/parse_json_data.py +1 -1
  79. langflow/components/prototypes/python_function.py +2 -3
  80. langflow/components/serpapi/serp.py +1 -1
  81. langflow/components/tavily/tavily_extract.py +1 -1
  82. langflow/components/tavily/tavily_search.py +1 -1
  83. langflow/components/tools/calculator.py +2 -2
  84. langflow/components/tools/python_code_structured_tool.py +3 -10
  85. langflow/components/tools/python_repl.py +2 -2
  86. langflow/components/tools/searxng.py +3 -3
  87. langflow/components/tools/serp_api.py +2 -2
  88. langflow/components/tools/tavily_search_tool.py +2 -2
  89. langflow/components/tools/yahoo_finance.py +1 -1
  90. langflow/components/twelvelabs/video_embeddings.py +4 -4
  91. langflow/components/vectorstores/local_db.py +1 -1
  92. langflow/components/yahoosearch/yahoo.py +1 -1
  93. langflow/components/youtube/trending.py +3 -4
  94. langflow/custom/attributes.py +2 -1
  95. langflow/custom/code_parser/code_parser.py +1 -1
  96. langflow/custom/custom_component/base_component.py +1 -1
  97. langflow/custom/custom_component/component.py +16 -2
  98. langflow/custom/directory_reader/directory_reader.py +7 -7
  99. langflow/custom/directory_reader/utils.py +1 -2
  100. langflow/custom/utils.py +30 -30
  101. langflow/events/event_manager.py +1 -1
  102. langflow/frontend/assets/{SlackIcon-CnvyOamQ.js → SlackIcon-BhW6H3JR.js} +1 -1
  103. langflow/frontend/assets/{Wikipedia-nyTEXdr2.js → Wikipedia-Dx5jbiy3.js} +1 -1
  104. langflow/frontend/assets/{Wolfram-BYMQkNSq.js → Wolfram-CIyonzwo.js} +1 -1
  105. langflow/frontend/assets/{index-HK3bVMYA.js → index-0XQqYgdG.js} +1 -1
  106. langflow/frontend/assets/{index-BZgXW854.js → index-1Q3VBqKn.js} +1 -1
  107. langflow/frontend/assets/{index-BQ6NUdMY.js → index-35sspuLu.js} +1 -1
  108. langflow/frontend/assets/{index-DPCzHdsC.js → index-7hzXChQz.js} +1 -1
  109. langflow/frontend/assets/{index-CFDvOtKC.js → index-8cuhogZP.js} +1 -1
  110. langflow/frontend/assets/{index-CYDAYm-i.js → index-B0m53xKd.js} +1 -1
  111. langflow/frontend/assets/{index-Q9vDw0Xl.js → index-B1XqWJhG.js} +1 -1
  112. langflow/frontend/assets/{index-Gkrq-vzm.js → index-B3KCdQ91.js} +1 -1
  113. langflow/frontend/assets/{index-DytJENYD.js → index-B7uEuOPK.js} +1 -1
  114. langflow/frontend/assets/{index-DkXy1WFo.js → index-B8UR8v-Q.js} +1 -1
  115. langflow/frontend/assets/{index-BChjg6Az.js → index-BD7Io1hL.js} +6 -6
  116. langflow/frontend/assets/{index-CyPvTB63.js → index-BDQrd7Tj.js} +1 -1
  117. langflow/frontend/assets/{index-BbJjt5m4.js → index-BDuk0d7P.js} +1 -1
  118. langflow/frontend/assets/{index-BBxAPk1y.js → index-BFQ8KFK0.js} +1 -1
  119. langflow/frontend/assets/{index-BqPpO6KG.js → index-BFf0HTFI.js} +1 -1
  120. langflow/frontend/assets/{index-yCHsaqs8.js → index-BHhnpSkW.js} +1 -1
  121. langflow/frontend/assets/{index-Bd6WtbKA.js → index-BKKrUElc.js} +1 -1
  122. langflow/frontend/assets/{index-DHq8TQPB.js → index-BKeZt2hQ.js} +1 -1
  123. langflow/frontend/assets/{index-BCCGvqay.js → index-BKlQbl-6.js} +1 -1
  124. langflow/frontend/assets/{index-Boso-xEw.js → index-BLYw9MK2.js} +1 -1
  125. langflow/frontend/assets/{index-DmMDPoi0.js → index-BLsVo9iW.js} +1 -1
  126. langflow/frontend/assets/{index-Car-zdor.js → index-BNQIbda3.js} +1 -1
  127. langflow/frontend/assets/{index-Dg-63Si_.js → index-BPR2mEFC.js} +1 -1
  128. langflow/frontend/assets/{index-CTrt1Q_j.js → index-BPfdqCc_.js} +1 -1
  129. langflow/frontend/assets/{index-CVQmT7ZL.js → index-BQrVDjR1.js} +1 -1
  130. langflow/frontend/assets/{index-BB15_iOb.js → index-BRmSeoWR.js} +1 -1
  131. langflow/frontend/assets/{index-BX5D-USa.js → index-BUse-kxM.js} +1 -1
  132. langflow/frontend/assets/{index-CaQ_H9ww.js → index-BVFaF7HW.js} +1 -1
  133. langflow/frontend/assets/{index-C26RqKWL.js → index-BWgIWfv2.js} +1 -1
  134. langflow/frontend/assets/{index-DbMFlnHE.js → index-BWt5xGeA.js} +1 -1
  135. langflow/frontend/assets/{index-Db71w3lq.js → index-BYhcGLTV.js} +1 -1
  136. langflow/frontend/assets/{index-DzW2mfkK.js → index-BYjw7Gk3.js} +1 -1
  137. langflow/frontend/assets/{index-DJB12jIC.js → index-BZFljdMa.js} +1 -1
  138. langflow/frontend/assets/{index-nVwHLjuV.js → index-BcAgItH4.js} +1 -1
  139. langflow/frontend/assets/{index-DkelbYy7.js → index-Bct1s6__.js} +1 -1
  140. langflow/frontend/assets/{index-ChXJpBz4.js → index-Bhv79Zso.js} +1 -1
  141. langflow/frontend/assets/{index-BxEuHa76.js → index-Bj3lSwvZ.js} +1 -1
  142. langflow/frontend/assets/{index-BkPYpfgw.js → index-Bk4mTwnI.js} +1 -1
  143. langflow/frontend/assets/{index-BvT7L317.js → index-BmIx1cws.js} +1 -1
  144. langflow/frontend/assets/{index-DIDDfmlJ.js → index-BmYJJ5YS.js} +1 -1
  145. langflow/frontend/assets/{index-C7QWbnLK.js → index-BnAFhkSN.js} +1 -1
  146. langflow/frontend/assets/{index-CJo_cyWW.js → index-Bo-ww0Bb.js} +1 -1
  147. langflow/frontend/assets/{index-DjQETUy8.js → index-BpmqDOeZ.js} +1 -1
  148. langflow/frontend/assets/{index-ya2uXE8v.js → index-BrVhdPZb.js} +1 -1
  149. langflow/frontend/assets/{index-DCRk27Tp.js → index-BvGQfVBD.js} +1 -1
  150. langflow/frontend/assets/{index-BTrsh9LS.js → index-Bwi4flFg.js} +1 -1
  151. langflow/frontend/assets/{index-BRxvproo.js → index-BzoRPtTY.js} +1 -1
  152. langflow/frontend/assets/{index-BIQQCMvz.js → index-C--IDAyc.js} +1 -1
  153. langflow/frontend/assets/{index-DfngcQxO.js → index-C0E3_MIK.js} +1 -1
  154. langflow/frontend/assets/{index-Bvxg4_ux.js → index-C27Jj_26.js} +1 -1
  155. langflow/frontend/assets/{index-D8lOi1GI.js → index-C2eQmQsn.js} +1 -1
  156. langflow/frontend/assets/{index-rXV1G1aB.js → index-C8K0r39B.js} +1 -1
  157. langflow/frontend/assets/{index-B3Sur4Z3.js → index-CEJNWPhA.js} +1 -1
  158. langflow/frontend/assets/{index-BR0bkVqX.js → index-CFNTYfFK.js} +1 -1
  159. langflow/frontend/assets/{index-Bnqod3vk.js → index-CMHpjHZl.js} +1 -1
  160. langflow/frontend/assets/{index-BLGYN-9b.js → index-CSu8KHOi.js} +1 -1
  161. langflow/frontend/assets/{index-BOB_zsjl.js → index-CUKmGsI6.js} +1 -1
  162. langflow/frontend/assets/{index-BzEUlaw_.js → index-CWYiSeWV.js} +1 -1
  163. langflow/frontend/assets/{index-DVlceYFD.js → index-CY7_TBTC.js} +1 -1
  164. langflow/frontend/assets/{index-D3DDfngy.js → index-CbnWRlYY.js} +1 -1
  165. langflow/frontend/assets/{index-cvZdgWHQ.js → index-CfPBgkqg.js} +1 -1
  166. langflow/frontend/assets/{index-Ui4xUImO.js → index-Cg53lrYh.js} +1 -1
  167. langflow/frontend/assets/{index-C6jri9Wm.js → index-CgU7KF4I.js} +1 -1
  168. langflow/frontend/assets/{index-BVEZDXxS.js → index-CgwykVGh.js} +1 -1
  169. langflow/frontend/assets/{index-BOeo01QB.js → index-Ch5r0oW6.js} +1 -1
  170. langflow/frontend/assets/{index-D6PSjHxP.js → index-CjsommIr.js} +1 -1
  171. langflow/frontend/assets/{index-pCQ_yw8m.js → index-CkK25zZO.js} +1 -1
  172. langflow/frontend/assets/{index-BFp_O-c9.js → index-CkjwSTSM.js} +1 -1
  173. langflow/frontend/assets/{index-Du_18NCU.js → index-CmSFKgiD.js} +1 -1
  174. langflow/frontend/assets/{index-BvwZfF2i.js → index-Cr5v2ave.js} +1 -1
  175. langflow/frontend/assets/{index-FUxmznS-.js → index-CrAF-31Y.js} +1 -1
  176. langflow/frontend/assets/{index-C-2hghRJ.js → index-CsLQiWNf.js} +1 -1
  177. langflow/frontend/assets/{index-C_TdzfAn.js → index-CuCM7Wu7.js} +1 -1
  178. langflow/frontend/assets/{index-D5_DsUJc.js → index-Cxy9sEpy.js} +1 -1
  179. langflow/frontend/assets/{index-C_veJlEb.js → index-CyP3py8K.js} +1 -1
  180. langflow/frontend/assets/{index-OazXJdEl.js → index-CzHzeZuA.js} +1 -1
  181. langflow/frontend/assets/{index-CvcEzq4x.js → index-D1oynC8a.js} +1 -1
  182. langflow/frontend/assets/{index-CZQ9rXNa.js → index-D4tjMhfY.js} +1 -1
  183. langflow/frontend/assets/{index-B1YN7oMV.js → index-D6CSIrp1.js} +1 -1
  184. langflow/frontend/assets/{index-DfxYyS3M.js → index-D9kwEzPB.js} +1 -1
  185. langflow/frontend/assets/{index-BbRm7beF.js → index-DDXsm8tz.js} +1 -1
  186. langflow/frontend/assets/{index-xuIrH2Dq.js → index-DDhJVVel.js} +1 -1
  187. langflow/frontend/assets/{index-CmplyEaa.js → index-DH6o91_s.js} +1 -1
  188. langflow/frontend/assets/{index-DnEGCgih.js → index-DHngW1k8.js} +1 -1
  189. langflow/frontend/assets/{index-ajRge-Mg.js → index-DIKUsGLF.js} +1 -1
  190. langflow/frontend/assets/{index-DpClkXIV.js → index-DJESSNJi.js} +1 -1
  191. langflow/frontend/assets/{index-8WdfSTTz.js → index-DMCWDJOl.js} +1 -1
  192. langflow/frontend/assets/{index-DZTC5pdT.js → index-DOEvKC2X.js} +1 -1
  193. langflow/frontend/assets/{index-DysKpOuj.js → index-DOQDkSoK.js} +1 -1
  194. langflow/frontend/assets/{index-C82JjCPD.js → index-DXAfIEvs.js} +1 -1
  195. langflow/frontend/assets/{index-D8GJngXa.js → index-DZP_SaHb.js} +1 -1
  196. langflow/frontend/assets/{index-DIkNW9Cd.js → index-DZxUIhWh.js} +1 -1
  197. langflow/frontend/assets/{index-DK1Ptcc4.js → index-Dda2u_yz.js} +1 -1
  198. langflow/frontend/assets/{index-BWmPX4iQ.js → index-Dg8N3NSO.js} +1 -1
  199. langflow/frontend/assets/{index-CWdkbVsd.js → index-DkGhPNeA.js} +1 -1
  200. langflow/frontend/assets/{index-DF5VwgU6.js → index-Dka_Rk4-.js} +1 -1
  201. langflow/frontend/assets/{index-Bsa0xZyL.js → index-DljpLeCW.js} +1 -1
  202. langflow/frontend/assets/{index-CLPdN-q6.js → index-DnVYJtVO.js} +1 -1
  203. langflow/frontend/assets/{index-CxvP91st.js → index-DqbzUcI5.js} +1 -1
  204. langflow/frontend/assets/{index-BIzTEqFh.js → index-Dr6pVDPI.js} +1 -1
  205. langflow/frontend/assets/{index-tVYiABdp.js → index-DsoX2o1S.js} +1 -1
  206. langflow/frontend/assets/{index-CCePCqkT.js → index-DwfHWnX7.js} +1 -1
  207. langflow/frontend/assets/{index-BEMw2Np8.js → index-Dx-Z87KT.js} +1 -1
  208. langflow/frontend/assets/{index-BRYjyhAd.js → index-DyqITq51.js} +1 -1
  209. langflow/frontend/assets/{index-l7bzB8Ex.js → index-DzIv3RyR.js} +1 -1
  210. langflow/frontend/assets/{index-D-9TI74R.js → index-G4ro0MjT.js} +1 -1
  211. langflow/frontend/assets/{index-CCxGSSTT.js → index-H7J7w7fa.js} +1 -1
  212. langflow/frontend/assets/{index-_UcqeEjm.js → index-KWY77KfV.js} +1 -1
  213. langflow/frontend/assets/{index-Dqd4RjYA.js → index-U9GWm1eH.js} +1 -1
  214. langflow/frontend/assets/{index-Dq5ilsem.js → index-Un9pWxnP.js} +1 -1
  215. langflow/frontend/assets/{index-BzL_EoKd.js → index-Xi4TplbI.js} +1 -1
  216. langflow/frontend/assets/{index-LbYjHKkn.js → index-_cbGmjF4.js} +1 -1
  217. langflow/frontend/assets/{index-DGRMNe9n.js → index-cEXY6V06.js} +1 -1
  218. langflow/frontend/assets/{index-8yMsjVV2.js → index-dyXKnkMi.js} +1 -1
  219. langflow/frontend/assets/{index-DKHNourL.js → index-eUkS6iJM.js} +1 -1
  220. langflow/frontend/assets/{index-Bv8h2Z-q.js → index-ekfMOqrF.js} +1 -1
  221. langflow/frontend/assets/{index-B748uLP1.js → index-gdb7XMS8.js} +1 -1
  222. langflow/frontend/assets/{index-CpvYQ0ug.js → index-hZUcL0MZ.js} +1 -1
  223. langflow/frontend/assets/{index-BIXaW2aY.js → index-kkA-qHB_.js} +1 -1
  224. langflow/frontend/assets/{index-BhIOhlCH.js → index-mzl9ULw5.js} +1 -1
  225. langflow/frontend/assets/{index-CYe8Ipef.js → index-oxHBZk2v.js} +1 -1
  226. langflow/frontend/assets/{index-WPFivmdQ.js → index-p2kStSPe.js} +1 -1
  227. langflow/frontend/assets/{index-BmX5CoED.js → index-paQEWYGT.js} +1 -1
  228. langflow/frontend/assets/{index-CpcbQZIF.js → index-r_8gs4nL.js} +1 -1
  229. langflow/frontend/assets/{index-dcnYpT9N.js → index-uiKla4UR.js} +1 -1
  230. langflow/frontend/assets/{index-BTEW9e8P.js → index-vJOO5U8M.js} +1 -1
  231. langflow/frontend/assets/{index-CQMoqLAu.js → index-w72fDjpG.js} +1 -1
  232. langflow/frontend/assets/{index-Dsps-jKu.js → index-zV82kQ6k.js} +1 -1
  233. langflow/frontend/assets/lazyIconImports-DTNgvPE-.js +2 -0
  234. langflow/frontend/assets/{use-post-add-user-BrBYH9eR.js → use-post-add-user-CvtuazTg.js} +1 -1
  235. langflow/frontend/index.html +1 -1
  236. langflow/graph/edge/base.py +2 -3
  237. langflow/graph/graph/base.py +14 -12
  238. langflow/graph/graph/constants.py +3 -0
  239. langflow/graph/utils.py +6 -6
  240. langflow/graph/vertex/base.py +4 -5
  241. langflow/graph/vertex/param_handler.py +1 -1
  242. langflow/graph/vertex/vertex_types.py +2 -2
  243. langflow/helpers/flow.py +1 -1
  244. langflow/initial_setup/setup.py +32 -30
  245. langflow/initial_setup/starter_projects/Blog Writer.json +2 -2
  246. langflow/initial_setup/starter_projects/Custom Component Generator.json +2 -2
  247. langflow/initial_setup/starter_projects/Document Q&A.json +1 -1
  248. langflow/initial_setup/starter_projects/Instagram Copywriter.json +3 -3
  249. langflow/initial_setup/starter_projects/Invoice Summarizer.json +1 -1
  250. langflow/initial_setup/starter_projects/Knowledge Ingestion.json +2 -2
  251. langflow/initial_setup/starter_projects/Market Research.json +3 -3
  252. langflow/initial_setup/starter_projects/Meeting Summary.json +6 -6
  253. langflow/initial_setup/starter_projects/Memory Chatbot.json +2 -2
  254. langflow/initial_setup/starter_projects/News Aggregator.json +3 -3
  255. langflow/initial_setup/starter_projects/Nvidia Remix.json +3 -3
  256. langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +1 -1
  257. langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +1 -1
  258. langflow/initial_setup/starter_projects/Price Deal Finder.json +5 -5
  259. langflow/initial_setup/starter_projects/Research Agent.json +3 -3
  260. langflow/initial_setup/starter_projects/SaaS Pricing.json +1 -1
  261. langflow/initial_setup/starter_projects/Search agent.json +1 -1
  262. langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +7 -7
  263. langflow/initial_setup/starter_projects/Simple Agent.json +3 -3
  264. langflow/initial_setup/starter_projects/Social Media Agent.json +1 -1
  265. langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +1 -1
  266. langflow/initial_setup/starter_projects/Travel Planning Agents.json +3 -3
  267. langflow/initial_setup/starter_projects/Vector Store RAG.json +1 -1
  268. langflow/initial_setup/starter_projects/Youtube Analysis.json +3 -3
  269. langflow/interface/components.py +23 -22
  270. langflow/interface/initialize/loading.py +5 -5
  271. langflow/interface/run.py +1 -1
  272. langflow/interface/utils.py +1 -1
  273. langflow/io/__init__.py +0 -1
  274. langflow/langflow_launcher.py +1 -1
  275. langflow/load/load.py +2 -7
  276. langflow/logging/__init__.py +0 -1
  277. langflow/logging/logger.py +191 -115
  278. langflow/logging/setup.py +1 -1
  279. langflow/main.py +37 -52
  280. langflow/memory.py +7 -7
  281. langflow/middleware.py +1 -1
  282. langflow/processing/process.py +3 -3
  283. langflow/schema/artifact.py +2 -2
  284. langflow/schema/data.py +10 -2
  285. langflow/schema/dataframe.py +1 -1
  286. langflow/schema/message.py +1 -1
  287. langflow/serialization/serialization.py +1 -1
  288. langflow/services/auth/utils.py +2 -2
  289. langflow/services/cache/disk.py +1 -1
  290. langflow/services/cache/service.py +3 -3
  291. langflow/services/database/models/flow/model.py +2 -7
  292. langflow/services/database/models/transactions/crud.py +2 -2
  293. langflow/services/database/models/user/crud.py +2 -2
  294. langflow/services/database/service.py +8 -8
  295. langflow/services/database/utils.py +6 -5
  296. langflow/services/deps.py +2 -3
  297. langflow/services/factory.py +1 -1
  298. langflow/services/flow/flow_runner.py +7 -12
  299. langflow/services/job_queue/service.py +16 -15
  300. langflow/services/manager.py +3 -4
  301. langflow/services/settings/auth.py +1 -1
  302. langflow/services/settings/base.py +3 -8
  303. langflow/services/settings/manager.py +1 -1
  304. langflow/services/settings/utils.py +1 -1
  305. langflow/services/socket/__init__.py +0 -1
  306. langflow/services/socket/service.py +3 -3
  307. langflow/services/socket/utils.py +4 -4
  308. langflow/services/state/service.py +1 -2
  309. langflow/services/storage/factory.py +1 -1
  310. langflow/services/storage/local.py +9 -8
  311. langflow/services/storage/s3.py +11 -10
  312. langflow/services/store/service.py +3 -3
  313. langflow/services/store/utils.py +3 -2
  314. langflow/services/task/temp_flow_cleanup.py +7 -7
  315. langflow/services/telemetry/service.py +10 -10
  316. langflow/services/tracing/arize_phoenix.py +2 -2
  317. langflow/services/tracing/langfuse.py +1 -1
  318. langflow/services/tracing/langsmith.py +1 -1
  319. langflow/services/tracing/langwatch.py +1 -1
  320. langflow/services/tracing/opik.py +1 -1
  321. langflow/services/tracing/service.py +25 -6
  322. langflow/services/tracing/traceloop.py +245 -0
  323. langflow/services/utils.py +7 -7
  324. langflow/services/variable/kubernetes.py +3 -3
  325. langflow/services/variable/kubernetes_secrets.py +2 -1
  326. langflow/services/variable/service.py +5 -5
  327. langflow/utils/component_utils.py +9 -6
  328. langflow/utils/util.py +5 -5
  329. langflow/utils/validate.py +3 -3
  330. langflow/utils/voice_utils.py +2 -2
  331. {langflow_base_nightly-0.5.0.dev37.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/METADATA +2 -1
  332. {langflow_base_nightly-0.5.0.dev37.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/RECORD +334 -333
  333. langflow/frontend/assets/lazyIconImports-t6wEndt1.js +0 -2
  334. {langflow_base_nightly-0.5.0.dev37.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/WHEEL +0 -0
  335. {langflow_base_nightly-0.5.0.dev37.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/entry_points.txt +0 -0
@@ -5,9 +5,9 @@ from pathlib import Path
5
5
 
6
6
  import anyio
7
7
  from aiofile import async_open
8
- from loguru import logger
9
8
 
10
9
  from langflow.custom.custom_component.component import Component
10
+ from langflow.logging.logger import logger
11
11
 
12
12
  MAX_DEPTH = 2
13
13
 
@@ -255,7 +255,7 @@ class DirectoryReader:
255
255
  try:
256
256
  output_types = self.get_output_types_from_code(result_content)
257
257
  except Exception: # noqa: BLE001
258
- logger.opt(exception=True).debug("Error while getting output types from code")
258
+ logger.debug("Error while getting output types from code", exc_info=True)
259
259
  output_types = [component_name_camelcase]
260
260
  else:
261
261
  output_types = [component_name_camelcase]
@@ -278,7 +278,7 @@ class DirectoryReader:
278
278
  try:
279
279
  file_content = await self.aread_file_content(file_path)
280
280
  except Exception: # noqa: BLE001
281
- logger.exception(f"Error while reading file {file_path}")
281
+ await logger.aexception(f"Error while reading file {file_path}")
282
282
  return False, f"Could not read {file_path}"
283
283
 
284
284
  if file_content is None:
@@ -300,7 +300,7 @@ class DirectoryReader:
300
300
 
301
301
  async def abuild_component_menu_list(self, file_paths):
302
302
  response = {"menu": []}
303
- logger.debug("-------------------- Async Building component menu list --------------------")
303
+ await logger.adebug("-------------------- Async Building component menu list --------------------")
304
304
 
305
305
  tasks = [self.process_file_async(file_path) for file_path in file_paths]
306
306
  results = await asyncio.gather(*tasks)
@@ -311,7 +311,7 @@ class DirectoryReader:
311
311
  filename = file_path_.name
312
312
 
313
313
  if not validation_result:
314
- logger.error(f"Error while processing file {file_path}")
314
+ await logger.aerror(f"Error while processing file {file_path}")
315
315
 
316
316
  menu_result = self.find_menu(response, menu_name) or {
317
317
  "name": menu_name,
@@ -329,7 +329,7 @@ class DirectoryReader:
329
329
  try:
330
330
  output_types = await asyncio.to_thread(self.get_output_types_from_code, result_content)
331
331
  except Exception: # noqa: BLE001
332
- logger.exception("Error while getting output types from code")
332
+ await logger.aexception("Error while getting output types from code")
333
333
  output_types = [component_name_camelcase]
334
334
  else:
335
335
  output_types = [component_name_camelcase]
@@ -346,7 +346,7 @@ class DirectoryReader:
346
346
  if menu_result not in response["menu"]:
347
347
  response["menu"].append(menu_result)
348
348
 
349
- logger.debug("-------------------- Component menu list built --------------------")
349
+ await logger.adebug("-------------------- Component menu list built --------------------")
350
350
  return response
351
351
 
352
352
  @staticmethod
@@ -1,8 +1,7 @@
1
1
  import asyncio
2
2
 
3
- from loguru import logger
4
-
5
3
  from langflow.custom.directory_reader.directory_reader import DirectoryReader
4
+ from langflow.logging.logger import logger
6
5
  from langflow.template.frontend_node.custom_components import CustomComponentFrontendNode
7
6
 
8
7
 
langflow/custom/utils.py CHANGED
@@ -11,7 +11,6 @@ from typing import Any
11
11
  from uuid import UUID
12
12
 
13
13
  from fastapi import HTTPException
14
- from loguru import logger
15
14
  from pydantic import BaseModel
16
15
 
17
16
  from langflow.custom.custom_component.component import Component
@@ -25,6 +24,7 @@ from langflow.custom.eval import eval_custom_component_code
25
24
  from langflow.custom.schema import MissingDefault
26
25
  from langflow.field_typing.range_spec import RangeSpec
27
26
  from langflow.helpers.custom import format_type
27
+ from langflow.logging.logger import logger
28
28
  from langflow.schema.dotdict import dotdict
29
29
  from langflow.template.field.base import Input
30
30
  from langflow.template.frontend_node.custom_components import ComponentFrontendNode, CustomComponentFrontendNode
@@ -500,7 +500,7 @@ def build_custom_component_template_from_inputs(
500
500
  if code_hash:
501
501
  frontend_node.metadata["code_hash"] = code_hash
502
502
  except Exception as exc: # noqa: BLE001
503
- logger.opt(exception=exc).debug(f"Error generating code hash for {custom_component.__class__.__name__}")
503
+ logger.debug(f"Error generating code hash for {custom_component.__class__.__name__}", exc_info=exc)
504
504
 
505
505
  return frontend_node.to_dict(keep_name=False), cc_instance
506
506
 
@@ -573,7 +573,7 @@ def build_custom_component_template(
573
573
  if code_hash:
574
574
  frontend_node.metadata["code_hash"] = code_hash
575
575
  except Exception as exc: # noqa: BLE001
576
- logger.opt(exception=exc).debug(f"Error generating code hash for {custom_component.__class__.__name__}")
576
+ logger.debug(f"Error generating code hash for {custom_component.__class__.__name__}", exc_info=exc)
577
577
 
578
578
  return frontend_node.to_dict(keep_name=False), custom_instance
579
579
  except Exception as exc:
@@ -646,7 +646,7 @@ async def abuild_custom_components(components_paths: list[str]):
646
646
  if not components_paths:
647
647
  return {}
648
648
 
649
- logger.debug(f"Building custom components from {components_paths}")
649
+ await logger.adebug(f"Building custom components from {components_paths}")
650
650
  custom_components_from_file: dict = {}
651
651
  processed_paths = set()
652
652
  for path in components_paths:
@@ -657,7 +657,7 @@ async def abuild_custom_components(components_paths: list[str]):
657
657
  custom_component_dict = await abuild_custom_component_list_from_path(path_str)
658
658
  if custom_component_dict:
659
659
  category = next(iter(custom_component_dict))
660
- logger.debug(f"Loading {len(custom_component_dict[category])} component(s) from category {category}")
660
+ await logger.adebug(f"Loading {len(custom_component_dict[category])} component(s) from category {category}")
661
661
  custom_components_from_file = merge_nested_dicts_with_renaming(
662
662
  custom_components_from_file, custom_component_dict
663
663
  )
@@ -745,18 +745,18 @@ async def get_single_component_dict(component_type: str, component_name: str, co
745
745
  if hasattr(module, "template"):
746
746
  return module.template
747
747
  except ImportError as e:
748
- logger.error(f"Import error loading component {module_path}: {e!s}")
748
+ await logger.aerror(f"Import error loading component {module_path}: {e!s}")
749
749
  except AttributeError as e:
750
- logger.error(f"Attribute error loading component {module_path}: {e!s}")
750
+ await logger.aerror(f"Attribute error loading component {module_path}: {e!s}")
751
751
  except ValueError as e:
752
- logger.error(f"Value error loading component {module_path}: {e!s}")
752
+ await logger.aerror(f"Value error loading component {module_path}: {e!s}")
753
753
  except (KeyError, IndexError) as e:
754
- logger.error(f"Data structure error loading component {module_path}: {e!s}")
754
+ await logger.aerror(f"Data structure error loading component {module_path}: {e!s}")
755
755
  except RuntimeError as e:
756
- logger.error(f"Runtime error loading component {module_path}: {e!s}")
757
- logger.debug("Full traceback for runtime error", exc_info=True)
756
+ await logger.aerror(f"Runtime error loading component {module_path}: {e!s}")
757
+ await logger.adebug("Full traceback for runtime error", exc_info=True)
758
758
  except OSError as e:
759
- logger.error(f"OS error loading component {module_path}: {e!s}")
759
+ await logger.aerror(f"OS error loading component {module_path}: {e!s}")
760
760
 
761
761
  # If we get here, the component wasn't found or couldn't be loaded
762
762
  return None
@@ -811,43 +811,43 @@ async def load_custom_component(component_name: str, components_paths: list[str]
811
811
  if hasattr(module, "get_template"):
812
812
  return module.get_template()
813
813
  except ImportError as e:
814
- logger.error(f"Import error loading component {component_file}: {e!s}")
815
- logger.debug("Import error traceback", exc_info=True)
814
+ await logger.aerror(f"Import error loading component {component_file}: {e!s}")
815
+ await logger.adebug("Import error traceback", exc_info=True)
816
816
  except AttributeError as e:
817
- logger.error(f"Attribute error loading component {component_file}: {e!s}")
818
- logger.debug("Attribute error traceback", exc_info=True)
817
+ await logger.aerror(f"Attribute error loading component {component_file}: {e!s}")
818
+ await logger.adebug("Attribute error traceback", exc_info=True)
819
819
  except (ValueError, TypeError) as e:
820
- logger.error(f"Value/Type error loading component {component_file}: {e!s}")
821
- logger.debug("Value/Type error traceback", exc_info=True)
820
+ await logger.aerror(f"Value/Type error loading component {component_file}: {e!s}")
821
+ await logger.adebug("Value/Type error traceback", exc_info=True)
822
822
  except (KeyError, IndexError) as e:
823
- logger.error(f"Data structure error loading component {component_file}: {e!s}")
824
- logger.debug("Data structure error traceback", exc_info=True)
823
+ await logger.aerror(f"Data structure error loading component {component_file}: {e!s}")
824
+ await logger.adebug("Data structure error traceback", exc_info=True)
825
825
  except RuntimeError as e:
826
- logger.error(f"Runtime error loading component {component_file}: {e!s}")
827
- logger.debug("Runtime error traceback", exc_info=True)
826
+ await logger.aerror(f"Runtime error loading component {component_file}: {e!s}")
827
+ await logger.adebug("Runtime error traceback", exc_info=True)
828
828
  except OSError as e:
829
- logger.error(f"OS error loading component {component_file}: {e!s}")
830
- logger.debug("OS error traceback", exc_info=True)
829
+ await logger.aerror(f"OS error loading component {component_file}: {e!s}")
830
+ await logger.adebug("OS error traceback", exc_info=True)
831
831
 
832
832
  except ImportError as e:
833
- logger.error(f"Import error loading custom component {component_name}: {e!s}")
833
+ await logger.aerror(f"Import error loading custom component {component_name}: {e!s}")
834
834
  return None
835
835
  except AttributeError as e:
836
- logger.error(f"Attribute error loading custom component {component_name}: {e!s}")
836
+ await logger.aerror(f"Attribute error loading custom component {component_name}: {e!s}")
837
837
  return None
838
838
  except ValueError as e:
839
- logger.error(f"Value error loading custom component {component_name}: {e!s}")
839
+ await logger.aerror(f"Value error loading custom component {component_name}: {e!s}")
840
840
  return None
841
841
  except (KeyError, IndexError) as e:
842
- logger.error(f"Data structure error loading custom component {component_name}: {e!s}")
842
+ await logger.aerror(f"Data structure error loading custom component {component_name}: {e!s}")
843
843
  return None
844
844
  except RuntimeError as e:
845
- logger.error(f"Runtime error loading custom component {component_name}: {e!s}")
845
+ await logger.aerror(f"Runtime error loading custom component {component_name}: {e!s}")
846
846
  logger.debug("Full traceback for runtime error", exc_info=True)
847
847
  return None
848
848
 
849
849
  # If we get here, the component wasn't found in any of the paths
850
- logger.warning(f"Component {component_name} not found in any of the provided paths")
850
+ await logger.awarning(f"Component {component_name} not found in any of the provided paths")
851
851
  return None
852
852
 
853
853
 
@@ -8,9 +8,9 @@ from functools import partial
8
8
  from typing import TYPE_CHECKING
9
9
 
10
10
  from fastapi.encoders import jsonable_encoder
11
- from loguru import logger
12
11
  from typing_extensions import Protocol
13
12
 
13
+ from langflow.logging.logger import logger
14
14
  from langflow.schema.playground_events import create_event_by_type
15
15
 
16
16
  if TYPE_CHECKING:
@@ -1 +1 @@
1
- import{j as a}from"./index-BChjg6Az.js";const s=l=>a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 54 54",width:"1em",height:"1em",...l,children:a.jsxs("g",{fill:"none",fillRule:"evenodd",children:[a.jsx("path",{fill:"#36C5F0",d:"M19.712.133a5.381 5.381 0 0 0-5.376 5.387 5.381 5.381 0 0 0 5.376 5.386h5.376V5.52A5.381 5.381 0 0 0 19.712.133m0 14.365H5.376A5.381 5.381 0 0 0 0 19.884a5.381 5.381 0 0 0 5.376 5.387h14.336a5.381 5.381 0 0 0 5.376-5.387 5.381 5.381 0 0 0-5.376-5.386"}),a.jsx("path",{fill:"#2EB67D",d:"M53.76 19.884a5.381 5.381 0 0 0-5.376-5.386 5.381 5.381 0 0 0-5.376 5.386v5.387h5.376a5.381 5.381 0 0 0 5.376-5.387m-14.336 0V5.52A5.381 5.381 0 0 0 34.048.133a5.381 5.381 0 0 0-5.376 5.387v14.364a5.381 5.381 0 0 0 5.376 5.387 5.381 5.381 0 0 0 5.376-5.387"}),a.jsx("path",{fill:"#ECB22E",d:"M34.048 54a5.381 5.381 0 0 0 5.376-5.387 5.381 5.381 0 0 0-5.376-5.386h-5.376v5.386A5.381 5.381 0 0 0 34.048 54m0-14.365h14.336a5.381 5.381 0 0 0 5.376-5.386 5.381 5.381 0 0 0-5.376-5.387H34.048a5.381 5.381 0 0 0-5.376 5.387 5.381 5.381 0 0 0 5.376 5.386"}),a.jsx("path",{fill:"#E01E5A",d:"M0 34.249a5.381 5.381 0 0 0 5.376 5.386 5.381 5.381 0 0 0 5.376-5.386v-5.387H5.376A5.381 5.381 0 0 0 0 34.25m14.336-.001v14.364A5.381 5.381 0 0 0 19.712 54a5.381 5.381 0 0 0 5.376-5.387V34.25a5.381 5.381 0 0 0-5.376-5.387 5.381 5.381 0 0 0-5.376 5.387"})]})});export{s as default};
1
+ import{j as a}from"./index-BD7Io1hL.js";const s=l=>a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 54 54",width:"1em",height:"1em",...l,children:a.jsxs("g",{fill:"none",fillRule:"evenodd",children:[a.jsx("path",{fill:"#36C5F0",d:"M19.712.133a5.381 5.381 0 0 0-5.376 5.387 5.381 5.381 0 0 0 5.376 5.386h5.376V5.52A5.381 5.381 0 0 0 19.712.133m0 14.365H5.376A5.381 5.381 0 0 0 0 19.884a5.381 5.381 0 0 0 5.376 5.387h14.336a5.381 5.381 0 0 0 5.376-5.387 5.381 5.381 0 0 0-5.376-5.386"}),a.jsx("path",{fill:"#2EB67D",d:"M53.76 19.884a5.381 5.381 0 0 0-5.376-5.386 5.381 5.381 0 0 0-5.376 5.386v5.387h5.376a5.381 5.381 0 0 0 5.376-5.387m-14.336 0V5.52A5.381 5.381 0 0 0 34.048.133a5.381 5.381 0 0 0-5.376 5.387v14.364a5.381 5.381 0 0 0 5.376 5.387 5.381 5.381 0 0 0 5.376-5.387"}),a.jsx("path",{fill:"#ECB22E",d:"M34.048 54a5.381 5.381 0 0 0 5.376-5.387 5.381 5.381 0 0 0-5.376-5.386h-5.376v5.386A5.381 5.381 0 0 0 34.048 54m0-14.365h14.336a5.381 5.381 0 0 0 5.376-5.386 5.381 5.381 0 0 0-5.376-5.387H34.048a5.381 5.381 0 0 0-5.376 5.387 5.381 5.381 0 0 0 5.376 5.386"}),a.jsx("path",{fill:"#E01E5A",d:"M0 34.249a5.381 5.381 0 0 0 5.376 5.386 5.381 5.381 0 0 0 5.376-5.386v-5.387H5.376A5.381 5.381 0 0 0 0 34.25m14.336-.001v14.364A5.381 5.381 0 0 0 19.712 54a5.381 5.381 0 0 0 5.376-5.387V34.25a5.381 5.381 0 0 0-5.376-5.387 5.381 5.381 0 0 0-5.376 5.387"})]})});export{s as default};