MindsDB 25.5.3.0__py3-none-any.whl → 25.5.4.0__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.

Potentially problematic release.


This version of MindsDB might be problematic. Click here for more details.

Files changed (310) hide show
  1. mindsdb/__about__.py +1 -1
  2. mindsdb/__main__.py +127 -79
  3. mindsdb/api/a2a/__init__.py +0 -0
  4. mindsdb/api/a2a/__main__.py +114 -0
  5. mindsdb/api/a2a/a2a_client.py +439 -0
  6. mindsdb/api/a2a/agent.py +308 -0
  7. mindsdb/api/a2a/common/__init__.py +0 -0
  8. mindsdb/api/a2a/common/client/__init__.py +4 -0
  9. mindsdb/api/a2a/common/client/card_resolver.py +21 -0
  10. mindsdb/api/a2a/common/client/client.py +86 -0
  11. mindsdb/api/a2a/common/server/__init__.py +4 -0
  12. mindsdb/api/a2a/common/server/server.py +164 -0
  13. mindsdb/api/a2a/common/server/task_manager.py +287 -0
  14. mindsdb/api/a2a/common/server/utils.py +28 -0
  15. mindsdb/api/a2a/common/types.py +365 -0
  16. mindsdb/api/a2a/constants.py +9 -0
  17. mindsdb/api/a2a/run_a2a.py +129 -0
  18. mindsdb/api/a2a/task_manager.py +594 -0
  19. mindsdb/api/executor/command_executor.py +47 -27
  20. mindsdb/api/executor/datahub/classes/response.py +5 -2
  21. mindsdb/api/executor/datahub/datanodes/integration_datanode.py +39 -72
  22. mindsdb/api/executor/planner/query_planner.py +10 -1
  23. mindsdb/api/executor/sql_query/result_set.py +185 -52
  24. mindsdb/api/executor/sql_query/sql_query.py +1 -1
  25. mindsdb/api/executor/sql_query/steps/apply_predictor_step.py +9 -12
  26. mindsdb/api/executor/sql_query/steps/fetch_dataframe.py +8 -10
  27. mindsdb/api/executor/sql_query/steps/fetch_dataframe_partition.py +5 -44
  28. mindsdb/api/executor/sql_query/steps/insert_step.py +24 -15
  29. mindsdb/api/executor/sql_query/steps/join_step.py +1 -1
  30. mindsdb/api/executor/sql_query/steps/project_step.py +1 -1
  31. mindsdb/api/executor/sql_query/steps/sql_steps.py +1 -1
  32. mindsdb/api/executor/sql_query/steps/subselect_step.py +4 -8
  33. mindsdb/api/executor/sql_query/steps/union_step.py +1 -3
  34. mindsdb/api/http/initialize.py +99 -83
  35. mindsdb/api/http/namespaces/analysis.py +3 -3
  36. mindsdb/api/http/namespaces/file.py +8 -2
  37. mindsdb/api/http/namespaces/sql.py +13 -27
  38. mindsdb/api/mcp/start.py +42 -5
  39. mindsdb/api/mysql/mysql_proxy/data_types/mysql_packet.py +0 -1
  40. mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/binary_resultset_row_package.py +52 -19
  41. mindsdb/api/mysql/mysql_proxy/executor/mysql_executor.py +8 -10
  42. mindsdb/api/mysql/mysql_proxy/libs/constants/mysql.py +54 -38
  43. mindsdb/api/mysql/mysql_proxy/mysql_proxy.py +82 -115
  44. mindsdb/api/mysql/mysql_proxy/utilities/dump.py +351 -0
  45. mindsdb/api/postgres/postgres_proxy/executor/executor.py +1 -1
  46. mindsdb/api/postgres/postgres_proxy/postgres_proxy.py +5 -6
  47. mindsdb/integrations/handlers/altibase_handler/altibase_handler.py +26 -27
  48. mindsdb/integrations/handlers/altibase_handler/connection_args.py +13 -13
  49. mindsdb/integrations/handlers/altibase_handler/tests/test_altibase_handler.py +8 -8
  50. mindsdb/integrations/handlers/altibase_handler/tests/test_altibase_handler_dsn.py +13 -13
  51. mindsdb/integrations/handlers/anthropic_handler/__init__.py +2 -2
  52. mindsdb/integrations/handlers/anthropic_handler/anthropic_handler.py +1 -3
  53. mindsdb/integrations/handlers/aurora_handler/aurora_handler.py +1 -0
  54. mindsdb/integrations/handlers/autosklearn_handler/autosklearn_handler.py +1 -1
  55. mindsdb/integrations/handlers/autosklearn_handler/config.py +0 -1
  56. mindsdb/integrations/handlers/bigquery_handler/bigquery_handler.py +1 -1
  57. mindsdb/integrations/handlers/bigquery_handler/tests/test_bigquery_handler.py +1 -1
  58. mindsdb/integrations/handlers/binance_handler/binance_handler.py +1 -0
  59. mindsdb/integrations/handlers/binance_handler/binance_tables.py +3 -4
  60. mindsdb/integrations/handlers/byom_handler/__init__.py +0 -1
  61. mindsdb/integrations/handlers/ckan_handler/ckan_handler.py +3 -0
  62. mindsdb/integrations/handlers/clickhouse_handler/__init__.py +1 -1
  63. mindsdb/integrations/handlers/cloud_spanner_handler/tests/test_cloud_spanner_handler.py +0 -2
  64. mindsdb/integrations/handlers/cloud_sql_handler/cloud_sql_handler.py +0 -1
  65. mindsdb/integrations/handlers/cohere_handler/__init__.py +1 -1
  66. mindsdb/integrations/handlers/cohere_handler/cohere_handler.py +11 -13
  67. mindsdb/integrations/handlers/confluence_handler/confluence_tables.py +6 -0
  68. mindsdb/integrations/handlers/databend_handler/connection_args.py +1 -1
  69. mindsdb/integrations/handlers/databend_handler/databend_handler.py +4 -4
  70. mindsdb/integrations/handlers/databend_handler/tests/__init__.py +0 -1
  71. mindsdb/integrations/handlers/databend_handler/tests/test_databend_handler.py +1 -1
  72. mindsdb/integrations/handlers/derby_handler/connection_args.py +1 -1
  73. mindsdb/integrations/handlers/derby_handler/derby_handler.py +14 -22
  74. mindsdb/integrations/handlers/derby_handler/tests/test_derby_handler.py +6 -6
  75. mindsdb/integrations/handlers/discord_handler/discord_handler.py +5 -5
  76. mindsdb/integrations/handlers/discord_handler/discord_tables.py +3 -3
  77. mindsdb/integrations/handlers/discord_handler/tests/test_discord.py +5 -3
  78. mindsdb/integrations/handlers/dockerhub_handler/dockerhub.py +3 -3
  79. mindsdb/integrations/handlers/dockerhub_handler/dockerhub_handler.py +2 -2
  80. mindsdb/integrations/handlers/dockerhub_handler/dockerhub_tables.py +57 -54
  81. mindsdb/integrations/handlers/dremio_handler/__init__.py +2 -2
  82. mindsdb/integrations/handlers/druid_handler/__init__.py +1 -1
  83. mindsdb/integrations/handlers/druid_handler/druid_handler.py +2 -2
  84. mindsdb/integrations/handlers/edgelessdb_handler/tests/test_edgelessdb_handler.py +9 -9
  85. mindsdb/integrations/handlers/email_handler/email_client.py +1 -1
  86. mindsdb/integrations/handlers/email_handler/email_ingestor.py +1 -1
  87. mindsdb/integrations/handlers/email_handler/email_tables.py +0 -1
  88. mindsdb/integrations/handlers/email_handler/settings.py +0 -1
  89. mindsdb/integrations/handlers/eventstoredb_handler/eventstoredb_handler.py +2 -1
  90. mindsdb/integrations/handlers/firebird_handler/firebird_handler.py +1 -1
  91. mindsdb/integrations/handlers/flaml_handler/flaml_handler.py +9 -9
  92. mindsdb/integrations/handlers/frappe_handler/frappe_client.py +5 -5
  93. mindsdb/integrations/handlers/frappe_handler/frappe_handler.py +6 -5
  94. mindsdb/integrations/handlers/frappe_handler/frappe_tables.py +2 -2
  95. mindsdb/integrations/handlers/github_handler/connection_args.py +2 -2
  96. mindsdb/integrations/handlers/github_handler/github_handler.py +1 -8
  97. mindsdb/integrations/handlers/github_handler/github_tables.py +13 -24
  98. mindsdb/integrations/handlers/gitlab_handler/gitlab_handler.py +2 -1
  99. mindsdb/integrations/handlers/gitlab_handler/gitlab_tables.py +1 -4
  100. mindsdb/integrations/handlers/gmail_handler/gmail_handler.py +6 -13
  101. mindsdb/integrations/handlers/google_books_handler/google_books_handler.py +2 -1
  102. mindsdb/integrations/handlers/google_books_handler/google_books_tables.py +0 -3
  103. mindsdb/integrations/handlers/google_calendar_handler/google_calendar_handler.py +4 -4
  104. mindsdb/integrations/handlers/google_calendar_handler/google_calendar_tables.py +2 -6
  105. mindsdb/integrations/handlers/google_content_shopping_handler/google_content_shopping_handler.py +3 -2
  106. mindsdb/integrations/handlers/google_content_shopping_handler/google_content_shopping_tables.py +0 -3
  107. mindsdb/integrations/handlers/google_fit_handler/google_fit_handler.py +10 -12
  108. mindsdb/integrations/handlers/google_fit_handler/google_fit_tables.py +11 -13
  109. mindsdb/integrations/handlers/google_search_handler/google_search_handler.py +2 -1
  110. mindsdb/integrations/handlers/google_search_handler/google_search_tables.py +0 -3
  111. mindsdb/integrations/handlers/groq_handler/__init__.py +3 -3
  112. mindsdb/integrations/handlers/hackernews_handler/hn_handler.py +5 -7
  113. mindsdb/integrations/handlers/hackernews_handler/hn_table.py +6 -7
  114. mindsdb/integrations/handlers/hive_handler/tests/test_hive_handler.py +1 -1
  115. mindsdb/integrations/handlers/hsqldb_handler/connection_args.py +6 -6
  116. mindsdb/integrations/handlers/hsqldb_handler/hsqldb_handler.py +4 -3
  117. mindsdb/integrations/handlers/huggingface_api_handler/exceptions.py +1 -1
  118. mindsdb/integrations/handlers/huggingface_api_handler/huggingface_api_handler.py +1 -8
  119. mindsdb/integrations/handlers/huggingface_handler/huggingface_handler.py +6 -6
  120. mindsdb/integrations/handlers/huggingface_handler/requirements.txt +1 -1
  121. mindsdb/integrations/handlers/huggingface_handler/requirements_cpu.txt +1 -1
  122. mindsdb/integrations/handlers/ignite_handler/ignite_handler.py +2 -1
  123. mindsdb/integrations/handlers/impala_handler/impala_handler.py +9 -12
  124. mindsdb/integrations/handlers/impala_handler/tests/test_impala_handler.py +11 -11
  125. mindsdb/integrations/handlers/influxdb_handler/influxdb_handler.py +10 -13
  126. mindsdb/integrations/handlers/influxdb_handler/influxdb_tables.py +20 -20
  127. mindsdb/integrations/handlers/informix_handler/__about__.py +8 -8
  128. mindsdb/integrations/handlers/informix_handler/__init__.py +12 -5
  129. mindsdb/integrations/handlers/informix_handler/informix_handler.py +99 -133
  130. mindsdb/integrations/handlers/informix_handler/tests/test_informix_handler.py +13 -11
  131. mindsdb/integrations/handlers/ingres_handler/__about__.py +0 -1
  132. mindsdb/integrations/handlers/ingres_handler/ingres_handler.py +1 -0
  133. mindsdb/integrations/handlers/jira_handler/jira_handler.py +4 -4
  134. mindsdb/integrations/handlers/jira_handler/jira_tables.py +9 -9
  135. mindsdb/integrations/handlers/kinetica_handler/__init__.py +0 -1
  136. mindsdb/integrations/handlers/langchain_handler/langchain_handler.py +4 -4
  137. mindsdb/integrations/handlers/langchain_handler/tools.py +9 -10
  138. mindsdb/integrations/handlers/leonardoai_handler/__init__.py +1 -1
  139. mindsdb/integrations/handlers/lightwood_handler/functions.py +2 -2
  140. mindsdb/integrations/handlers/lightwood_handler/lightwood_handler.py +0 -1
  141. mindsdb/integrations/handlers/lightwood_handler/tests/test_lightwood_handler.py +11 -11
  142. mindsdb/integrations/handlers/llama_index_handler/llama_index_handler.py +4 -4
  143. mindsdb/integrations/handlers/llama_index_handler/settings.py +10 -9
  144. mindsdb/integrations/handlers/materialize_handler/tests/test_materialize_handler.py +8 -10
  145. mindsdb/integrations/handlers/matrixone_handler/matrixone_handler.py +4 -4
  146. mindsdb/integrations/handlers/matrixone_handler/tests/test_matrixone_handler.py +8 -9
  147. mindsdb/integrations/handlers/maxdb_handler/connection_args.py +25 -25
  148. mindsdb/integrations/handlers/maxdb_handler/maxdb_handler.py +1 -0
  149. mindsdb/integrations/handlers/mediawiki_handler/mediawiki_handler.py +3 -2
  150. mindsdb/integrations/handlers/mediawiki_handler/mediawiki_tables.py +1 -1
  151. mindsdb/integrations/handlers/mendeley_handler/__about__.py +1 -1
  152. mindsdb/integrations/handlers/mendeley_handler/__init__.py +2 -2
  153. mindsdb/integrations/handlers/mendeley_handler/mendeley_handler.py +48 -56
  154. mindsdb/integrations/handlers/mendeley_handler/mendeley_tables.py +24 -29
  155. mindsdb/integrations/handlers/mendeley_handler/tests/test_mendeley_handler.py +19 -17
  156. mindsdb/integrations/handlers/merlion_handler/merlion_handler.py +5 -4
  157. mindsdb/integrations/handlers/minds_endpoint_handler/__init__.py +3 -3
  158. mindsdb/integrations/handlers/mlflow_handler/mlflow_handler.py +58 -36
  159. mindsdb/integrations/handlers/monetdb_handler/__about__.py +8 -8
  160. mindsdb/integrations/handlers/monetdb_handler/__init__.py +15 -5
  161. mindsdb/integrations/handlers/monetdb_handler/connection_args.py +17 -18
  162. mindsdb/integrations/handlers/monetdb_handler/monetdb_handler.py +40 -57
  163. mindsdb/integrations/handlers/monetdb_handler/tests/test_monetdb_handler.py +7 -8
  164. mindsdb/integrations/handlers/monetdb_handler/utils/monet_get_id.py +13 -14
  165. mindsdb/integrations/handlers/monkeylearn_handler/__about__.py +1 -1
  166. mindsdb/integrations/handlers/monkeylearn_handler/__init__.py +1 -1
  167. mindsdb/integrations/handlers/monkeylearn_handler/monkeylearn_handler.py +2 -5
  168. mindsdb/integrations/handlers/ms_one_drive_handler/ms_graph_api_one_drive_client.py +1 -0
  169. mindsdb/integrations/handlers/ms_one_drive_handler/ms_one_drive_handler.py +1 -1
  170. mindsdb/integrations/handlers/ms_teams_handler/ms_graph_api_teams_client.py +23 -23
  171. mindsdb/integrations/handlers/ms_teams_handler/ms_teams_handler.py +3 -3
  172. mindsdb/integrations/handlers/ms_teams_handler/ms_teams_tables.py +10 -5
  173. mindsdb/integrations/handlers/mssql_handler/mssql_handler.py +73 -8
  174. mindsdb/integrations/handlers/mysql_handler/__about__.py +8 -8
  175. mindsdb/integrations/handlers/mysql_handler/__init__.py +15 -5
  176. mindsdb/integrations/handlers/mysql_handler/connection_args.py +43 -47
  177. mindsdb/integrations/handlers/mysql_handler/mysql_handler.py +101 -34
  178. mindsdb/integrations/handlers/mysql_handler/settings.py +15 -13
  179. mindsdb/integrations/handlers/neuralforecast_handler/neuralforecast_handler.py +1 -1
  180. mindsdb/integrations/handlers/newsapi_handler/newsapi_handler.py +1 -1
  181. mindsdb/integrations/handlers/newsapi_handler/tests/test_newsapi_handler.py +4 -4
  182. mindsdb/integrations/handlers/nuo_jdbc_handler/connection_args.py +2 -2
  183. mindsdb/integrations/handlers/nuo_jdbc_handler/nuo_jdbc_handler.py +28 -36
  184. mindsdb/integrations/handlers/nuo_jdbc_handler/tests/test_nuo_handler.py +5 -5
  185. mindsdb/integrations/handlers/oceanbase_handler/oceanbase_handler.py +0 -1
  186. mindsdb/integrations/handlers/oceanbase_handler/tests/test_oceanbase_handler.py +8 -10
  187. mindsdb/integrations/handlers/ollama_handler/ollama_handler.py +3 -3
  188. mindsdb/integrations/handlers/opengauss_handler/tests/test_opengauss_handler.py +1 -2
  189. mindsdb/integrations/handlers/openstreetmap_handler/__init__.py +7 -7
  190. mindsdb/integrations/handlers/oracle_handler/connection_args.py +6 -0
  191. mindsdb/integrations/handlers/oracle_handler/oracle_handler.py +77 -11
  192. mindsdb/integrations/handlers/orioledb_handler/tests/test_orioledb_handler.py +8 -10
  193. mindsdb/integrations/handlers/palm_handler/__about__.py +1 -1
  194. mindsdb/integrations/handlers/palm_handler/__init__.py +1 -1
  195. mindsdb/integrations/handlers/palm_handler/palm_handler.py +1 -3
  196. mindsdb/integrations/handlers/paypal_handler/paypal_handler.py +2 -2
  197. mindsdb/integrations/handlers/paypal_handler/paypal_tables.py +15 -14
  198. mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py +53 -10
  199. mindsdb/integrations/handlers/phoenix_handler/__init__.py +1 -1
  200. mindsdb/integrations/handlers/phoenix_handler/phoenix_handler.py +1 -0
  201. mindsdb/integrations/handlers/pinot_handler/__init__.py +1 -1
  202. mindsdb/integrations/handlers/pinot_handler/pinot_handler.py +3 -2
  203. mindsdb/integrations/handlers/plaid_handler/plaid_handler.py +13 -13
  204. mindsdb/integrations/handlers/plaid_handler/plaid_tables.py +10 -12
  205. mindsdb/integrations/handlers/plaid_handler/utils.py +4 -6
  206. mindsdb/integrations/handlers/planetscale_handler/planetscale_handler.py +1 -4
  207. mindsdb/integrations/handlers/portkey_handler/__init__.py +2 -2
  208. mindsdb/integrations/handlers/postgres_handler/postgres_handler.py +105 -24
  209. mindsdb/integrations/handlers/postgres_handler/tests/test_postgres_handler.py +11 -6
  210. mindsdb/integrations/handlers/questdb_handler/questdb_handler.py +1 -2
  211. mindsdb/integrations/handlers/questdb_handler/tests/test_questdb_handler.py +2 -3
  212. mindsdb/integrations/handlers/quickbooks_handler/quickbooks_handler.py +6 -8
  213. mindsdb/integrations/handlers/quickbooks_handler/quickbooks_table.py +10 -10
  214. mindsdb/integrations/handlers/rag_handler/ingest.py +2 -2
  215. mindsdb/integrations/handlers/rag_handler/rag_handler.py +1 -1
  216. mindsdb/integrations/handlers/rag_handler/settings.py +1 -1
  217. mindsdb/integrations/handlers/reddit_handler/reddit_handler.py +2 -7
  218. mindsdb/integrations/handlers/reddit_handler/reddit_tables.py +2 -3
  219. mindsdb/integrations/handlers/replicate_handler/replicate_handler.py +6 -6
  220. mindsdb/integrations/handlers/rocket_chat_handler/rocket_chat_handler.py +1 -2
  221. mindsdb/integrations/handlers/rocket_chat_handler/rocket_chat_tables.py +0 -3
  222. mindsdb/integrations/handlers/rockset_handler/connection_args.py +14 -14
  223. mindsdb/integrations/handlers/rockset_handler/tests/test_rockset_handler.py +1 -0
  224. mindsdb/integrations/handlers/scylla_handler/scylla_handler.py +6 -5
  225. mindsdb/integrations/handlers/sendinblue_handler/sendinblue_handler.py +2 -1
  226. mindsdb/integrations/handlers/sendinblue_handler/sendinblue_tables.py +16 -16
  227. mindsdb/integrations/handlers/sentence_transformers_handler/__init__.py +1 -1
  228. mindsdb/integrations/handlers/sheets_handler/connection_args.py +1 -1
  229. mindsdb/integrations/handlers/shopify_handler/shopify_handler.py +7 -6
  230. mindsdb/integrations/handlers/shopify_handler/shopify_tables.py +38 -41
  231. mindsdb/integrations/handlers/singlestore_handler/__about__.py +1 -1
  232. mindsdb/integrations/handlers/singlestore_handler/__init__.py +0 -1
  233. mindsdb/integrations/handlers/singlestore_handler/singlestore_handler.py +1 -0
  234. mindsdb/integrations/handlers/singlestore_handler/tests/test_singlestore_handler.py +3 -3
  235. mindsdb/integrations/handlers/slack_handler/__init__.py +3 -3
  236. mindsdb/integrations/handlers/snowflake_handler/snowflake_handler.py +100 -6
  237. mindsdb/integrations/handlers/solr_handler/connection_args.py +7 -7
  238. mindsdb/integrations/handlers/solr_handler/solr_handler.py +2 -1
  239. mindsdb/integrations/handlers/solr_handler/tests/test_solr_handler.py +2 -1
  240. mindsdb/integrations/handlers/sqlany_handler/sqlany_handler.py +3 -2
  241. mindsdb/integrations/handlers/sqlite_handler/sqlite_handler.py +1 -0
  242. mindsdb/integrations/handlers/sqreamdb_handler/connection_args.py +1 -1
  243. mindsdb/integrations/handlers/sqreamdb_handler/sqreamdb_handler.py +15 -20
  244. mindsdb/integrations/handlers/sqreamdb_handler/tests/test_sqreamdb_handler.py +4 -4
  245. mindsdb/integrations/handlers/stabilityai_handler/__init__.py +1 -1
  246. mindsdb/integrations/handlers/starrocks_handler/starrocks_handler.py +0 -1
  247. mindsdb/integrations/handlers/starrocks_handler/tests/test_starrocks_handler.py +8 -10
  248. mindsdb/integrations/handlers/statsforecast_handler/statsforecast_handler.py +2 -2
  249. mindsdb/integrations/handlers/strava_handler/strava_handler.py +4 -8
  250. mindsdb/integrations/handlers/strava_handler/strava_tables.py +22 -30
  251. mindsdb/integrations/handlers/stripe_handler/stripe_handler.py +3 -2
  252. mindsdb/integrations/handlers/stripe_handler/stripe_tables.py +11 -27
  253. mindsdb/integrations/handlers/supabase_handler/tests/test_supabase_handler.py +1 -1
  254. mindsdb/integrations/handlers/surrealdb_handler/surrealdb_handler.py +4 -4
  255. mindsdb/integrations/handlers/tdengine_handler/tdengine_handler.py +25 -27
  256. mindsdb/integrations/handlers/tdengine_handler/tests/test_tdengine_handler.py +8 -8
  257. mindsdb/integrations/handlers/tidb_handler/tests/test_tidb_handler.py +1 -2
  258. mindsdb/integrations/handlers/timegpt_handler/timegpt_handler.py +5 -5
  259. mindsdb/integrations/handlers/tpot_handler/tpot_handler.py +21 -26
  260. mindsdb/integrations/handlers/trino_handler/trino_handler.py +14 -14
  261. mindsdb/integrations/handlers/twitter_handler/twitter_handler.py +2 -4
  262. mindsdb/integrations/handlers/unify_handler/tests/test_unify_handler.py +7 -8
  263. mindsdb/integrations/handlers/unify_handler/unify_handler.py +9 -9
  264. mindsdb/integrations/handlers/vertex_handler/vertex_client.py +1 -1
  265. mindsdb/integrations/handlers/vertica_handler/tests/test_vertica_handler.py +11 -11
  266. mindsdb/integrations/handlers/vertica_handler/vertica_handler.py +11 -14
  267. mindsdb/integrations/handlers/vitess_handler/tests/test_vitess_handler.py +9 -11
  268. mindsdb/integrations/handlers/vitess_handler/vitess_handler.py +0 -1
  269. mindsdb/integrations/handlers/web_handler/web_handler.py +1 -0
  270. mindsdb/integrations/handlers/whatsapp_handler/__init__.py +3 -3
  271. mindsdb/integrations/handlers/writer_handler/evaluate.py +1 -1
  272. mindsdb/integrations/handlers/writer_handler/settings.py +0 -1
  273. mindsdb/integrations/handlers/writer_handler/writer_handler.py +1 -0
  274. mindsdb/integrations/handlers/youtube_handler/youtube_handler.py +5 -5
  275. mindsdb/integrations/handlers/youtube_handler/youtube_tables.py +26 -27
  276. mindsdb/integrations/handlers/yugabyte_handler/tests/test_yugabyte_handler.py +3 -3
  277. mindsdb/integrations/handlers/yugabyte_handler/yugabyte_handler.py +0 -6
  278. mindsdb/integrations/libs/response.py +67 -52
  279. mindsdb/integrations/libs/vectordatabase_handler.py +6 -0
  280. mindsdb/integrations/utilities/handler_utils.py +15 -3
  281. mindsdb/integrations/utilities/handlers/api_utilities/__init__.py +0 -1
  282. mindsdb/integrations/utilities/handlers/auth_utilities/__init__.py +0 -2
  283. mindsdb/integrations/utilities/utils.py +3 -3
  284. mindsdb/interfaces/agents/agents_controller.py +164 -1
  285. mindsdb/interfaces/agents/constants.py +15 -0
  286. mindsdb/interfaces/agents/langchain_agent.py +16 -4
  287. mindsdb/interfaces/agents/mindsdb_database_agent.py +101 -2
  288. mindsdb/interfaces/knowledge_base/controller.py +25 -0
  289. mindsdb/interfaces/knowledge_base/preprocessing/document_preprocessor.py +13 -10
  290. mindsdb/interfaces/knowledge_base/preprocessing/json_chunker.py +434 -0
  291. mindsdb/interfaces/knowledge_base/preprocessing/models.py +54 -0
  292. mindsdb/interfaces/query_context/context_controller.py +66 -10
  293. mindsdb/interfaces/skills/custom/text2sql/mindsdb_kb_tools.py +190 -0
  294. mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_toolkit.py +92 -0
  295. mindsdb/interfaces/skills/skill_tool.py +202 -57
  296. mindsdb/interfaces/skills/sql_agent.py +205 -17
  297. mindsdb/interfaces/storage/fs.py +1 -0
  298. mindsdb/interfaces/variables/__init__.py +0 -0
  299. mindsdb/interfaces/variables/variables_controller.py +97 -0
  300. mindsdb/migrations/env.py +5 -7
  301. mindsdb/migrations/migrate.py +47 -7
  302. mindsdb/migrations/versions/2025-05-21_9f150e4f9a05_checkpoint_1.py +360 -0
  303. mindsdb/utilities/config.py +331 -219
  304. mindsdb/utilities/starters.py +13 -0
  305. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.0.dist-info}/METADATA +641 -695
  306. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.0.dist-info}/RECORD +309 -288
  307. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.0.dist-info}/WHEEL +1 -1
  308. mindsdb/integrations/handlers/monkeylearn_handler/requirements.txt +0 -1
  309. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.0.dist-info}/licenses/LICENSE +0 -0
  310. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.0.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,9 @@
1
- __title__ = 'MindsDB MonetDB handler'
2
- __package_name__ = 'mindsdb_monetdb_handler'
3
- __version__ = '0.0.1'
1
+ __title__ = "MindsDB MonetDB handler"
2
+ __package_name__ = "mindsdb_monetdb_handler"
3
+ __version__ = "0.0.1"
4
4
  __description__ = "MindsDB handler for MonetDB"
5
- __author__ = 'Parthiv Makwana'
6
- __github__ = 'https://github.com/mindsdb/mindsdb'
7
- __pypi__ = 'https://pypi.org/project/mindsdb/'
8
- __license__ = 'MIT'
9
- __copyright__ = 'Copyright 2022- mindsdb'
5
+ __author__ = "Parthiv Makwana"
6
+ __github__ = "https://github.com/mindsdb/mindsdb"
7
+ __pypi__ = "https://pypi.org/project/mindsdb/"
8
+ __license__ = "MIT"
9
+ __copyright__ = "Copyright 2022- mindsdb"
@@ -2,19 +2,29 @@ from mindsdb.integrations.libs.const import HANDLER_TYPE
2
2
 
3
3
  from .__about__ import __version__ as version, __description__ as description
4
4
  from .connection_args import connection_args, connection_args_example
5
+
5
6
  try:
6
7
  from .monetdb_handler import MonetDBHandler as Handler
8
+
7
9
  import_error = None
8
10
  except Exception as e:
9
11
  Handler = None
10
12
  import_error = e
11
13
 
12
- title = 'MonetDB'
13
- name = 'monetdb'
14
+ title = "MonetDB"
15
+ name = "monetdb"
14
16
  type = HANDLER_TYPE.DATA
15
- icon_path = 'icon.svg'
17
+ icon_path = "icon.svg"
16
18
 
17
19
  __all__ = [
18
- 'Handler', 'version', 'name', 'type', 'title', 'description',
19
- 'connection_args', 'connection_args_example', 'import_error', 'icon_path'
20
+ "Handler",
21
+ "version",
22
+ "name",
23
+ "type",
24
+ "title",
25
+ "description",
26
+ "connection_args",
27
+ "connection_args_example",
28
+ "import_error",
29
+ "icon_path",
20
30
  ]
@@ -5,40 +5,39 @@ from mindsdb.integrations.libs.const import HANDLER_CONNECTION_ARG_TYPE as ARG_T
5
5
 
6
6
  connection_args = OrderedDict(
7
7
  host={
8
- 'type': ARG_TYPE.STR,
9
- 'description': 'The host name or IP address of the MonetDB server/database.'
8
+ "type": ARG_TYPE.STR,
9
+ "description": "The host name or IP address of the MonetDB server/database.",
10
10
  },
11
11
  database={
12
- 'type': ARG_TYPE.STR,
13
- 'description': """
12
+ "type": ARG_TYPE.STR,
13
+ "description": """
14
14
  The database name to use when connecting with the MonetDB server.
15
- """
15
+ """,
16
16
  },
17
17
  user={
18
- 'type': ARG_TYPE.STR,
19
- 'description': 'The user name used to authenticate with the MonetDB server.'
18
+ "type": ARG_TYPE.STR,
19
+ "description": "The user name used to authenticate with the MonetDB server.",
20
20
  },
21
21
  password={
22
- 'type': ARG_TYPE.PWD,
23
- 'description': 'The password to authenticate the user with the MonetDB server.',
24
- 'secret': True
22
+ "type": ARG_TYPE.PWD,
23
+ "description": "The password to authenticate the user with the MonetDB server.",
24
+ "secret": True,
25
25
  },
26
26
  port={
27
- 'type': ARG_TYPE.INT,
28
- 'description': 'Specify port to connect MonetDB through TCP/IP'
27
+ "type": ARG_TYPE.INT,
28
+ "description": "Specify port to connect MonetDB through TCP/IP",
29
29
  },
30
30
  schema_name={
31
- 'type': ARG_TYPE.STR,
32
- 'description': 'Specify the schema name for Listing Table '
31
+ "type": ARG_TYPE.STR,
32
+ "description": "Specify the schema name for Listing Table ",
33
33
  },
34
-
35
34
  )
36
35
 
37
36
  connection_args_example = OrderedDict(
38
- host='127.0.0.1',
37
+ host="127.0.0.1",
39
38
  port=50000,
40
- password='monetdb',
41
- user='monetdb',
39
+ password="monetdb",
40
+ user="monetdb",
42
41
  schemaName="sys",
43
42
  database="demo",
44
43
  )
@@ -7,45 +7,45 @@ from mindsdb.utilities.render.sqlalchemy_render import SqlalchemyRender
7
7
  from mindsdb.integrations.libs.response import (
8
8
  HandlerStatusResponse as StatusResponse,
9
9
  HandlerResponse as Response,
10
- RESPONSE_TYPE
10
+ RESPONSE_TYPE,
11
11
  )
12
12
 
13
13
  import pandas as pd
14
14
  import pymonetdb as mdb
15
- from .utils.monet_get_id import *
16
- from sqlalchemy_monetdb.dialect import MonetDialect
15
+ from .utils.monet_get_id import schema_id, table_id
16
+ from sqlalchemy_monetdb.dialect import MonetDialect
17
17
 
18
18
  logger = log.getLogger(__name__)
19
19
 
20
20
 
21
21
  class MonetDBHandler(DatabaseHandler):
22
- name= 'monetdb'
22
+ name = "monetdb"
23
23
 
24
24
  def __init__(self, name: str, connection_data: Optional[dict], **kwargs):
25
- """ Initialize the handler
25
+ """Initialize the handler
26
26
  Args:
27
27
  name (str): name of particular handler instance
28
28
  connection_data (dict): parameters for connecting to the database
29
29
  **kwargs: arbitrary keyword arguments.
30
30
  """
31
31
  super().__init__(name)
32
-
32
+
33
33
  self.kwargs = kwargs
34
34
  self.parser = parse_sql
35
- self.database = connection_data['database']
36
- self.user = connection_data['user']
37
- self.password = connection_data['password']
38
- self.schemaName = connection_data['schema_name'] if 'schema_name' in connection_data else None
39
- self.host = connection_data['host']
40
- self.port = connection_data['port']
41
-
35
+ self.database = connection_data["database"]
36
+ self.user = connection_data["user"]
37
+ self.password = connection_data["password"]
38
+ self.schemaName = (
39
+ connection_data["schema_name"] if "schema_name" in connection_data else None
40
+ )
41
+ self.host = connection_data["host"]
42
+ self.port = connection_data["port"]
42
43
 
43
44
  self.connection = None
44
45
  self.is_connected = False
45
-
46
-
46
+
47
47
  def connect(self):
48
- """ Set up any connections required by the handler
48
+ """Set up any connections required by the handler
49
49
  Should return output of check_connection() method after attempting
50
50
  connection. Should switch self.is_connected.
51
51
  Returns:
@@ -56,39 +56,35 @@ class MonetDBHandler(DatabaseHandler):
56
56
 
57
57
  try:
58
58
  self.connection = mdb.connect(
59
- database=self.database,
60
- hostname=self.host,
61
- port=self.port,
59
+ database=self.database,
60
+ hostname=self.host,
61
+ port=self.port,
62
62
  username=self.user,
63
63
  password=self.password,
64
64
  )
65
65
 
66
-
67
- self.is_connected= True
66
+ self.is_connected = True
68
67
  except Exception as e:
69
68
  logger.error(f"Error while connecting to {self.database}, {e}")
70
69
 
71
-
72
70
  return self.connection
73
71
 
74
-
75
72
  def disconnect(self):
76
- """ Close any existing connections
73
+ """Close any existing connections
77
74
  Should switch self.is_connected.
78
75
  """
79
76
  if self.is_connected is False:
80
77
  return
81
78
  try:
82
79
  self.connection.close()
83
- self.is_connected=False
80
+ self.is_connected = False
84
81
  except Exception as e:
85
82
  logger.error(f"Error while disconnecting to {self.database}, {e}")
86
83
 
87
- return
88
-
84
+ return
89
85
 
90
86
  def check_connection(self) -> StatusResponse:
91
- """ Check connection to the handler
87
+ """Check connection to the handler
92
88
  Returns:
93
89
  HandlerStatusResponse
94
90
  """
@@ -99,7 +95,7 @@ class MonetDBHandler(DatabaseHandler):
99
95
  self.connect()
100
96
  responseCode.success = True
101
97
  except Exception as e:
102
- logger.error(f'Error connecting to database {self.database}, {e}!')
98
+ logger.error(f"Error connecting to database {self.database}, {e}!")
103
99
  responseCode.error_message = str(e)
104
100
  finally:
105
101
  if responseCode.success is True and need_to_close:
@@ -109,7 +105,6 @@ class MonetDBHandler(DatabaseHandler):
109
105
 
110
106
  return responseCode
111
107
 
112
-
113
108
  def native_query(self, query: str) -> StatusResponse:
114
109
  """Receive raw query and act upon it somehow.
115
110
  Args:
@@ -120,38 +115,33 @@ class MonetDBHandler(DatabaseHandler):
120
115
  """
121
116
  need_to_close = self.is_connected is False
122
117
  conn = self.connect()
123
- cur=conn.cursor()
118
+ cur = conn.cursor()
124
119
  try:
125
120
  cur.execute(query)
126
-
127
- if len(cur._rows)>0 :
128
- result = cur.fetchall()
121
+
122
+ if len(cur._rows) > 0:
123
+ result = cur.fetchall()
129
124
  response = Response(
130
125
  RESPONSE_TYPE.TABLE,
131
126
  data_frame=pd.DataFrame(
132
- result,
133
- columns=[x[0] for x in cur.description]
134
- )
127
+ result, columns=[x[0] for x in cur.description]
128
+ ),
135
129
  )
136
130
  else:
137
131
  response = Response(RESPONSE_TYPE.OK)
138
132
  self.connection.commit()
139
133
  except Exception as e:
140
- logger.error(f'Error running query: {query} on {self.database}!')
141
- response = Response(
142
- RESPONSE_TYPE.ERROR,
143
- error_message=str(e)
144
- )
134
+ logger.error(f"Error running query: {query} on {self.database}!")
135
+ response = Response(RESPONSE_TYPE.ERROR, error_message=str(e))
145
136
  self.connection.rollback()
146
137
 
147
- cur.close()
138
+ cur.close()
148
139
 
149
140
  if need_to_close is True:
150
141
  self.disconnect()
151
142
 
152
143
  return response
153
144
 
154
-
155
145
  def query(self, query: ASTNode) -> StatusResponse:
156
146
  """Receive query as AST (abstract syntax tree) and act upon it somehow.
157
147
  Args:
@@ -159,25 +149,20 @@ class MonetDBHandler(DatabaseHandler):
159
149
  of query: SELECT, INTSERT, DELETE, etc
160
150
  Returns: HandlerResponse
161
151
  """
162
-
163
-
164
152
 
165
153
  renderer = SqlalchemyRender(MonetDialect)
166
154
  query_str = renderer.get_string(query, with_failback=True)
167
155
  return self.native_query(query_str)
168
156
 
169
-
170
157
  def get_tables(self) -> StatusResponse:
171
- """ Return list of entities
158
+ """Return list of entities
172
159
  Return list of entities that will be accesible as tables.
173
160
  Returns: HandlerResponse: shoud have same columns as information_schema.tables
174
161
  (https://dev.mysql.com/doc/refman/8.0/en/information-schema-tables-table.html)
175
162
  Column 'TABLE_NAME' is mandatory, other is optional.
176
163
  """
177
164
  self.connect()
178
- schema = schema_id(connection=self.connection,schema_name=self.schemaName)
179
-
180
-
165
+ schema = schema_id(connection=self.connection, schema_name=self.schemaName)
181
166
 
182
167
  q = f"""
183
168
  SELECT name as TABLE_NAME
@@ -186,13 +171,11 @@ class MonetDBHandler(DatabaseHandler):
186
171
  AND type = 0
187
172
  AND schema_id = {schema}
188
173
  """
189
-
190
174
 
191
175
  return self.query(q)
192
176
 
193
-
194
177
  def get_columns(self, table_name: str) -> StatusResponse:
195
- """ Returns a list of entity columns
178
+ """Returns a list of entity columns
196
179
  Args:
197
180
  table_name (str): name of one of tables returned by self.get_tables()
198
181
  Returns:
@@ -203,14 +186,14 @@ class MonetDBHandler(DatabaseHandler):
203
186
  python data types (by default it str).
204
187
  """
205
188
  self.connect()
206
- table=table_id(
189
+ table = table_id(
207
190
  connection=self.connection,
208
191
  table_name=table_name,
209
- schema_name=self.schemaName
192
+ schema_name=self.schemaName,
210
193
  )
211
194
 
212
195
  q = f"""
213
- SELECT
196
+ SELECT
214
197
  name as COLUMN_NAME,
215
198
  type as DATA_TYPE
216
199
  FROM sys.columns
@@ -14,28 +14,27 @@ class MonetDBHandlerTest(unittest.TestCase):
14
14
  "password": "monetdb",
15
15
  "database": "demo",
16
16
  }
17
-
18
17
  }
19
- cls.handler = MonetDBHandler('test_monet_handler', cls.kwargs)
18
+ cls.handler = MonetDBHandler("test_monet_handler", cls.kwargs)
20
19
 
21
20
  def test_0_connect(self):
22
21
  self.handler.connect()
23
22
 
24
23
  def test_1_drop_table(self):
25
24
  res = self.handler.query("DROP TABLE IF EXISTS PREM;")
26
- assert res.type is not RESPONSE_TYPE.ERROR
25
+ assert res.type is not RESPONSE_TYPE.ERROR
27
26
 
28
27
  def test_2_create_table(self):
29
28
  res = self.handler.query("CREATE TABLE IF NOT EXISTS PREM (Premi varchar(50));")
30
- assert res.type is not RESPONSE_TYPE.ERROR
29
+ assert res.type is not RESPONSE_TYPE.ERROR
31
30
 
32
31
  def test_3_insert_table(self):
33
32
  res = self.handler.query("INSERT INTO PREM VALUES('Radha <3 Krishna');")
34
- assert res.type is not RESPONSE_TYPE.ERROR
33
+ assert res.type is not RESPONSE_TYPE.ERROR
35
34
 
36
35
  def test_4_get_tables(self):
37
36
  tables = self.handler.get_tables()
38
- assert tables.type is not RESPONSE_TYPE.ERROR
37
+ assert tables.type is not RESPONSE_TYPE.ERROR
39
38
 
40
39
  def test_5_select_query(self):
41
40
  query = "SELECT * FROM PREM;"
@@ -46,5 +45,5 @@ class MonetDBHandlerTest(unittest.TestCase):
46
45
  self.handler.check_connection()
47
46
 
48
47
 
49
- if __name__ == '__main__':
50
- unittest.main()
48
+ if __name__ == "__main__":
49
+ unittest.main()
@@ -1,34 +1,35 @@
1
- from sqlalchemy import exc
1
+ from sqlalchemy import exc
2
+
2
3
 
3
4
  def schema_id(connection, schema_name=None):
4
5
  """Fetch the id for schema"""
5
- cur=connection.cursor()
6
+ cur = connection.cursor()
6
7
  if schema_name is None:
7
8
  cur.execute("SELECT current_schema")
8
- schema_name=cur.fetchall()[0][0]
9
+ schema_name = cur.fetchall()[0][0]
9
10
 
10
11
  query = f"""
11
12
  SELECT id
12
13
  FROM sys.schemas
13
14
  WHERE name = '{schema_name}'
14
15
  """
15
-
16
+
16
17
  cur.execute(query)
17
18
 
18
19
  try:
19
20
  schema_id = cur.fetchall()[0][0]
20
- except:
21
+ except Exception:
21
22
  raise exc.InvalidRequestError(schema_name)
22
-
23
+
23
24
  return schema_id
24
25
 
25
-
26
+
26
27
  def table_id(connection, table_name, schema_name=None):
27
28
  """Fetch the id for schema.table_name, defaulting to current schema if
28
- schema is None
29
+ schema is None
29
30
  """
30
31
 
31
- schema_idm = schema_id(connection=connection,schema_name=schema_name)
32
+ schema_idm = schema_id(connection=connection, schema_name=schema_name)
32
33
 
33
34
  q = f"""
34
35
  SELECT id
@@ -36,15 +37,13 @@ def table_id(connection, table_name, schema_name=None):
36
37
  WHERE name = '{table_name}'
37
38
  AND schema_id = {schema_idm}
38
39
  """
39
-
40
+
40
41
  cur = connection.cursor()
41
42
  cur.execute(q)
42
43
 
43
44
  try:
44
- table_id = cur.fetchall()[0][0]
45
- except:
45
+ table_id = cur.fetchall()[0][0]
46
+ except Exception:
46
47
  raise exc.NoSuchTableError(table_name)
47
48
 
48
-
49
-
50
49
  return table_id
@@ -6,4 +6,4 @@ __author__ = 'Pranav Prajapati'
6
6
  __github__ = 'https://github.com/mindsdb/mindsdb'
7
7
  __pypi__ = 'https://pypi.org/project/mindsdb/'
8
8
  __license__ = 'MIT'
9
- __copyright__ = 'Copyright 2022- mindsdb'
9
+ __copyright__ = 'Copyright 2022- mindsdb'
@@ -16,4 +16,4 @@ permanent = False
16
16
 
17
17
  __all__ = [
18
18
  'Handler', 'version', 'name', 'type', 'title', 'description', 'import_error', 'icon_path'
19
- ]
19
+ ]
@@ -2,10 +2,7 @@ from typing import Optional, Dict
2
2
  import pandas as pd
3
3
  import requests
4
4
 
5
- from monkeylearn import MonkeyLearn
6
-
7
5
  from mindsdb.integrations.libs.base import BaseMLEngine
8
-
9
6
  from mindsdb.integrations.utilities.handler_utils import get_api_key
10
7
 
11
8
 
@@ -13,7 +10,7 @@ class monkeylearnHandler(BaseMLEngine):
13
10
  name = "monkeylearn"
14
11
 
15
12
  @staticmethod
16
- def create_validations(self,args=None,**kwargs):
13
+ def create_validations(self, args=None, **kwargs):
17
14
 
18
15
  if "using" in args:
19
16
  args = args["using"]
@@ -78,4 +75,4 @@ class monkeylearnHandler(BaseMLEngine):
78
75
  # pre-trained monkeylearn models guide about what industries they can be used
79
76
  description['industries'] = response.body['industries']
80
77
  des_df = pd.DataFrame([description])
81
- return des_df
78
+ return des_df
@@ -14,6 +14,7 @@ class MSGraphAPIOneDriveClient(MSGraphAPIBaseClient):
14
14
  This client is used for accessing the Microsoft OneDrive specific endpoints of the Microsoft Graph API.
15
15
  Several common methods for submitting requests, fetching data, etc. are inherited from the base class.
16
16
  """
17
+
17
18
  def __init__(self, access_token: Text) -> None:
18
19
  super().__init__(access_token)
19
20
 
@@ -9,7 +9,7 @@ from requests.exceptions import RequestException
9
9
 
10
10
  from mindsdb.integrations.handlers.ms_one_drive_handler.ms_graph_api_one_drive_client import MSGraphAPIOneDriveClient
11
11
  from mindsdb.integrations.handlers.ms_one_drive_handler.ms_one_drive_tables import FileTable, ListFilesTable
12
- from mindsdb.integrations.utilities.handlers.auth_utilities import MSGraphAPIDelegatedPermissionsManager
12
+ from mindsdb.integrations.utilities.handlers.auth_utilities.microsoft import MSGraphAPIDelegatedPermissionsManager
13
13
  from mindsdb.integrations.utilities.handlers.auth_utilities.exceptions import AuthException
14
14
  from mindsdb.integrations.libs.response import (
15
15
  HandlerResponse as Response,