MindsDB 25.5.3.0__py3-none-any.whl → 25.5.4.1__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 (313) hide show
  1. mindsdb/__about__.py +8 -8
  2. mindsdb/__main__.py +127 -79
  3. mindsdb/api/a2a/__init__.py +0 -0
  4. mindsdb/api/a2a/__main__.py +144 -0
  5. mindsdb/api/a2a/agent.py +308 -0
  6. mindsdb/api/a2a/common/__init__.py +0 -0
  7. mindsdb/api/a2a/common/server/__init__.py +4 -0
  8. mindsdb/api/a2a/common/server/server.py +164 -0
  9. mindsdb/api/a2a/common/server/task_manager.py +287 -0
  10. mindsdb/api/a2a/common/server/utils.py +28 -0
  11. mindsdb/api/a2a/common/types.py +365 -0
  12. mindsdb/api/a2a/constants.py +9 -0
  13. mindsdb/api/a2a/run_a2a.py +86 -0
  14. mindsdb/api/a2a/task_manager.py +560 -0
  15. mindsdb/api/executor/command_executor.py +185 -309
  16. mindsdb/api/executor/datahub/classes/response.py +5 -2
  17. mindsdb/api/executor/datahub/datanodes/integration_datanode.py +39 -72
  18. mindsdb/api/executor/planner/query_planner.py +10 -1
  19. mindsdb/api/executor/sql_query/result_set.py +185 -52
  20. mindsdb/api/executor/sql_query/sql_query.py +1 -1
  21. mindsdb/api/executor/sql_query/steps/apply_predictor_step.py +9 -12
  22. mindsdb/api/executor/sql_query/steps/fetch_dataframe.py +8 -10
  23. mindsdb/api/executor/sql_query/steps/fetch_dataframe_partition.py +5 -44
  24. mindsdb/api/executor/sql_query/steps/insert_step.py +24 -15
  25. mindsdb/api/executor/sql_query/steps/join_step.py +1 -1
  26. mindsdb/api/executor/sql_query/steps/project_step.py +1 -1
  27. mindsdb/api/executor/sql_query/steps/sql_steps.py +1 -1
  28. mindsdb/api/executor/sql_query/steps/subselect_step.py +4 -8
  29. mindsdb/api/executor/sql_query/steps/union_step.py +1 -3
  30. mindsdb/api/http/initialize.py +99 -83
  31. mindsdb/api/http/namespaces/analysis.py +3 -3
  32. mindsdb/api/http/namespaces/config.py +61 -86
  33. mindsdb/api/http/namespaces/file.py +8 -2
  34. mindsdb/api/http/namespaces/sql.py +13 -27
  35. mindsdb/api/mcp/start.py +42 -5
  36. mindsdb/api/mysql/mysql_proxy/data_types/mysql_packet.py +0 -1
  37. mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/binary_resultset_row_package.py +52 -19
  38. mindsdb/api/mysql/mysql_proxy/executor/mysql_executor.py +8 -10
  39. mindsdb/api/mysql/mysql_proxy/libs/constants/mysql.py +54 -38
  40. mindsdb/api/mysql/mysql_proxy/mysql_proxy.py +82 -115
  41. mindsdb/api/mysql/mysql_proxy/utilities/dump.py +351 -0
  42. mindsdb/api/postgres/postgres_proxy/executor/executor.py +1 -1
  43. mindsdb/api/postgres/postgres_proxy/postgres_proxy.py +5 -6
  44. mindsdb/integrations/handlers/altibase_handler/altibase_handler.py +26 -27
  45. mindsdb/integrations/handlers/altibase_handler/connection_args.py +13 -13
  46. mindsdb/integrations/handlers/altibase_handler/tests/test_altibase_handler.py +8 -8
  47. mindsdb/integrations/handlers/altibase_handler/tests/test_altibase_handler_dsn.py +13 -13
  48. mindsdb/integrations/handlers/anthropic_handler/__init__.py +2 -2
  49. mindsdb/integrations/handlers/anthropic_handler/anthropic_handler.py +1 -3
  50. mindsdb/integrations/handlers/aurora_handler/aurora_handler.py +1 -0
  51. mindsdb/integrations/handlers/autosklearn_handler/autosklearn_handler.py +1 -1
  52. mindsdb/integrations/handlers/autosklearn_handler/config.py +0 -1
  53. mindsdb/integrations/handlers/bigquery_handler/bigquery_handler.py +1 -1
  54. mindsdb/integrations/handlers/bigquery_handler/tests/test_bigquery_handler.py +1 -1
  55. mindsdb/integrations/handlers/binance_handler/binance_handler.py +1 -0
  56. mindsdb/integrations/handlers/binance_handler/binance_tables.py +3 -4
  57. mindsdb/integrations/handlers/byom_handler/__init__.py +0 -1
  58. mindsdb/integrations/handlers/byom_handler/requirements.txt +1 -2
  59. mindsdb/integrations/handlers/ckan_handler/ckan_handler.py +3 -0
  60. mindsdb/integrations/handlers/clickhouse_handler/__init__.py +1 -1
  61. mindsdb/integrations/handlers/cloud_spanner_handler/tests/test_cloud_spanner_handler.py +0 -2
  62. mindsdb/integrations/handlers/cloud_sql_handler/cloud_sql_handler.py +0 -1
  63. mindsdb/integrations/handlers/cohere_handler/__init__.py +1 -1
  64. mindsdb/integrations/handlers/cohere_handler/cohere_handler.py +11 -13
  65. mindsdb/integrations/handlers/confluence_handler/confluence_tables.py +6 -0
  66. mindsdb/integrations/handlers/databend_handler/connection_args.py +1 -1
  67. mindsdb/integrations/handlers/databend_handler/databend_handler.py +4 -4
  68. mindsdb/integrations/handlers/databend_handler/tests/__init__.py +0 -1
  69. mindsdb/integrations/handlers/databend_handler/tests/test_databend_handler.py +1 -1
  70. mindsdb/integrations/handlers/derby_handler/connection_args.py +1 -1
  71. mindsdb/integrations/handlers/derby_handler/derby_handler.py +14 -22
  72. mindsdb/integrations/handlers/derby_handler/tests/test_derby_handler.py +6 -6
  73. mindsdb/integrations/handlers/discord_handler/discord_handler.py +5 -5
  74. mindsdb/integrations/handlers/discord_handler/discord_tables.py +3 -3
  75. mindsdb/integrations/handlers/discord_handler/tests/test_discord.py +5 -3
  76. mindsdb/integrations/handlers/dockerhub_handler/dockerhub.py +3 -3
  77. mindsdb/integrations/handlers/dockerhub_handler/dockerhub_handler.py +2 -2
  78. mindsdb/integrations/handlers/dockerhub_handler/dockerhub_tables.py +57 -54
  79. mindsdb/integrations/handlers/dremio_handler/__init__.py +2 -2
  80. mindsdb/integrations/handlers/druid_handler/__init__.py +1 -1
  81. mindsdb/integrations/handlers/druid_handler/druid_handler.py +2 -2
  82. mindsdb/integrations/handlers/edgelessdb_handler/tests/test_edgelessdb_handler.py +9 -9
  83. mindsdb/integrations/handlers/email_handler/email_client.py +1 -1
  84. mindsdb/integrations/handlers/email_handler/email_ingestor.py +1 -1
  85. mindsdb/integrations/handlers/email_handler/email_tables.py +0 -1
  86. mindsdb/integrations/handlers/email_handler/settings.py +0 -1
  87. mindsdb/integrations/handlers/eventstoredb_handler/eventstoredb_handler.py +2 -1
  88. mindsdb/integrations/handlers/firebird_handler/firebird_handler.py +1 -1
  89. mindsdb/integrations/handlers/flaml_handler/flaml_handler.py +9 -9
  90. mindsdb/integrations/handlers/frappe_handler/frappe_client.py +5 -5
  91. mindsdb/integrations/handlers/frappe_handler/frappe_handler.py +6 -5
  92. mindsdb/integrations/handlers/frappe_handler/frappe_tables.py +2 -2
  93. mindsdb/integrations/handlers/github_handler/connection_args.py +2 -2
  94. mindsdb/integrations/handlers/github_handler/github_handler.py +1 -8
  95. mindsdb/integrations/handlers/github_handler/github_tables.py +13 -24
  96. mindsdb/integrations/handlers/gitlab_handler/gitlab_handler.py +2 -1
  97. mindsdb/integrations/handlers/gitlab_handler/gitlab_tables.py +1 -4
  98. mindsdb/integrations/handlers/gmail_handler/gmail_handler.py +6 -13
  99. mindsdb/integrations/handlers/google_books_handler/google_books_handler.py +2 -1
  100. mindsdb/integrations/handlers/google_books_handler/google_books_tables.py +0 -3
  101. mindsdb/integrations/handlers/google_calendar_handler/google_calendar_handler.py +4 -4
  102. mindsdb/integrations/handlers/google_calendar_handler/google_calendar_tables.py +2 -6
  103. mindsdb/integrations/handlers/google_content_shopping_handler/google_content_shopping_handler.py +3 -2
  104. mindsdb/integrations/handlers/google_content_shopping_handler/google_content_shopping_tables.py +0 -3
  105. mindsdb/integrations/handlers/google_fit_handler/google_fit_handler.py +10 -12
  106. mindsdb/integrations/handlers/google_fit_handler/google_fit_tables.py +11 -13
  107. mindsdb/integrations/handlers/google_search_handler/google_search_handler.py +2 -1
  108. mindsdb/integrations/handlers/google_search_handler/google_search_tables.py +0 -3
  109. mindsdb/integrations/handlers/groq_handler/__init__.py +3 -3
  110. mindsdb/integrations/handlers/hackernews_handler/hn_handler.py +5 -7
  111. mindsdb/integrations/handlers/hackernews_handler/hn_table.py +6 -7
  112. mindsdb/integrations/handlers/hive_handler/tests/test_hive_handler.py +1 -1
  113. mindsdb/integrations/handlers/hsqldb_handler/connection_args.py +6 -6
  114. mindsdb/integrations/handlers/hsqldb_handler/hsqldb_handler.py +4 -3
  115. mindsdb/integrations/handlers/huggingface_api_handler/exceptions.py +1 -1
  116. mindsdb/integrations/handlers/huggingface_api_handler/huggingface_api_handler.py +1 -8
  117. mindsdb/integrations/handlers/huggingface_handler/huggingface_handler.py +6 -6
  118. mindsdb/integrations/handlers/huggingface_handler/requirements.txt +1 -1
  119. mindsdb/integrations/handlers/huggingface_handler/requirements_cpu.txt +1 -1
  120. mindsdb/integrations/handlers/ignite_handler/ignite_handler.py +2 -1
  121. mindsdb/integrations/handlers/impala_handler/impala_handler.py +9 -12
  122. mindsdb/integrations/handlers/impala_handler/tests/test_impala_handler.py +11 -11
  123. mindsdb/integrations/handlers/influxdb_handler/influxdb_handler.py +10 -13
  124. mindsdb/integrations/handlers/influxdb_handler/influxdb_tables.py +20 -20
  125. mindsdb/integrations/handlers/informix_handler/__about__.py +8 -8
  126. mindsdb/integrations/handlers/informix_handler/__init__.py +12 -5
  127. mindsdb/integrations/handlers/informix_handler/informix_handler.py +99 -133
  128. mindsdb/integrations/handlers/informix_handler/tests/test_informix_handler.py +13 -11
  129. mindsdb/integrations/handlers/ingres_handler/__about__.py +0 -1
  130. mindsdb/integrations/handlers/ingres_handler/ingres_handler.py +1 -0
  131. mindsdb/integrations/handlers/jira_handler/jira_handler.py +4 -4
  132. mindsdb/integrations/handlers/jira_handler/jira_tables.py +9 -9
  133. mindsdb/integrations/handlers/kinetica_handler/__init__.py +0 -1
  134. mindsdb/integrations/handlers/lancedb_handler/requirements.txt +0 -1
  135. mindsdb/integrations/handlers/langchain_handler/langchain_handler.py +4 -4
  136. mindsdb/integrations/handlers/langchain_handler/tools.py +9 -10
  137. mindsdb/integrations/handlers/leonardoai_handler/__init__.py +1 -1
  138. mindsdb/integrations/handlers/lightwood_handler/functions.py +2 -2
  139. mindsdb/integrations/handlers/lightwood_handler/lightwood_handler.py +0 -1
  140. mindsdb/integrations/handlers/lightwood_handler/tests/test_lightwood_handler.py +11 -11
  141. mindsdb/integrations/handlers/litellm_handler/litellm_handler.py +37 -20
  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/llm/config.py +13 -0
  279. mindsdb/integrations/libs/llm/utils.py +37 -65
  280. mindsdb/integrations/libs/response.py +67 -52
  281. mindsdb/integrations/libs/vectordatabase_handler.py +6 -0
  282. mindsdb/integrations/utilities/handler_utils.py +15 -3
  283. mindsdb/integrations/utilities/handlers/api_utilities/__init__.py +0 -1
  284. mindsdb/integrations/utilities/handlers/auth_utilities/__init__.py +0 -2
  285. mindsdb/integrations/utilities/rag/rerankers/base_reranker.py +230 -227
  286. mindsdb/integrations/utilities/utils.py +3 -3
  287. mindsdb/interfaces/agents/agents_controller.py +164 -1
  288. mindsdb/interfaces/agents/constants.py +32 -13
  289. mindsdb/interfaces/agents/langchain_agent.py +106 -95
  290. mindsdb/interfaces/agents/mindsdb_database_agent.py +101 -2
  291. mindsdb/interfaces/knowledge_base/controller.py +250 -216
  292. mindsdb/interfaces/knowledge_base/preprocessing/document_preprocessor.py +13 -10
  293. mindsdb/interfaces/knowledge_base/preprocessing/json_chunker.py +434 -0
  294. mindsdb/interfaces/knowledge_base/preprocessing/models.py +54 -0
  295. mindsdb/interfaces/query_context/context_controller.py +66 -10
  296. mindsdb/interfaces/skills/custom/text2sql/mindsdb_kb_tools.py +190 -0
  297. mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_toolkit.py +92 -0
  298. mindsdb/interfaces/skills/skill_tool.py +202 -57
  299. mindsdb/interfaces/skills/sql_agent.py +205 -17
  300. mindsdb/interfaces/storage/fs.py +1 -0
  301. mindsdb/interfaces/variables/__init__.py +0 -0
  302. mindsdb/interfaces/variables/variables_controller.py +97 -0
  303. mindsdb/migrations/env.py +5 -7
  304. mindsdb/migrations/migrate.py +47 -7
  305. mindsdb/migrations/versions/2025-05-21_9f150e4f9a05_checkpoint_1.py +360 -0
  306. mindsdb/utilities/config.py +287 -216
  307. mindsdb/utilities/starters.py +13 -0
  308. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.1.dist-info}/METADATA +646 -698
  309. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.1.dist-info}/RECORD +312 -295
  310. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.1.dist-info}/WHEEL +1 -1
  311. mindsdb/integrations/handlers/monkeylearn_handler/requirements.txt +0 -1
  312. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.1.dist-info}/licenses/LICENSE +0 -0
  313. {mindsdb-25.5.3.0.dist-info → mindsdb-25.5.4.1.dist-info}/top_level.txt +0 -0
@@ -8,98 +8,92 @@ from mindsdb.utilities.render.sqlalchemy_render import SqlalchemyRender
8
8
  from mindsdb.integrations.libs.response import (
9
9
  HandlerStatusResponse as StatusResponse,
10
10
  HandlerResponse as Response,
11
- RESPONSE_TYPE
11
+ RESPONSE_TYPE,
12
12
  )
13
13
  from mindsdb.integrations.libs.const import HANDLER_CONNECTION_ARG_TYPE as ARG_TYPE
14
14
 
15
15
 
16
-
17
16
  import pandas as pd
18
- import IfxPyDbi as I
19
- from sqlalchemy_informix.ibmdb import InformixDialect
17
+ import IfxPyDbi as Ifx
18
+ from sqlalchemy_informix.ibmdb import InformixDialect
20
19
 
21
20
  logger = log.getLogger(__name__)
22
21
 
23
- class InformixHandler(DatabaseHandler):
24
22
 
23
+ class InformixHandler(DatabaseHandler):
25
24
 
26
- name= 'informix'
25
+ name = "informix"
27
26
 
28
27
  def __init__(self, name: str, connection_data: Optional[dict], **kwargs):
29
- ''' Initialize the handler
28
+ """Initialize the handler
30
29
  Args:
31
30
  name (str): name of particular handler instance
32
31
  connection_data (dict): parameters for connecting to the database
33
32
  **kwargs: arbitrary keyword arguments.
34
- '''
33
+ """
35
34
  super().__init__(name)
36
-
35
+
37
36
  self.kwargs = kwargs
38
37
  self.parser = parse_sql
39
- self.loging_enabled = connection_data['loging_enabled'] if 'loging_enabled' in connection_data else True
40
- self.server = connection_data['server']
41
- self.database = connection_data['database']
42
- self.user = connection_data['user']
43
- self.password = connection_data['password']
44
- self.schemaName = connection_data['schema_name']
45
- self.host = connection_data['host']
46
- self.port = connection_data['port']
38
+ self.loging_enabled = (
39
+ connection_data["loging_enabled"]
40
+ if "loging_enabled" in connection_data
41
+ else True
42
+ )
43
+ self.server = connection_data["server"]
44
+ self.database = connection_data["database"]
45
+ self.user = connection_data["user"]
46
+ self.password = connection_data["password"]
47
+ self.schemaName = connection_data["schema_name"]
48
+ self.host = connection_data["host"]
49
+ self.port = connection_data["port"]
47
50
  self.connString = (
48
- 'SERVER={0};'
49
- 'DATABASE={1};'
50
- 'HOST={2};'
51
- 'PORT={3};'
52
- 'UID={4};'
53
- 'PWD={5};').format(self.server, self.database, self.host, self.port, self.user, self.password)
54
-
55
-
56
-
51
+ "SERVER={0};" "DATABASE={1};" "HOST={2};" "PORT={3};" "UID={4};" "PWD={5};"
52
+ ).format(
53
+ self.server, self.database, self.host, self.port, self.user, self.password
54
+ )
57
55
 
58
56
  self.connection = None
59
57
  self.is_connected = False
60
-
61
-
58
+
62
59
  def connect(self):
63
- ''' Set up any connections required by the handler
60
+ """Set up any connections required by the handler
64
61
  Should return output of check_connection() method after attempting
65
62
  connection. Should switch self.is_connected.
66
63
  Returns:
67
64
  Connection Object
68
- '''
65
+ """
69
66
  if self.is_connected is True:
70
67
  return self.connection
71
68
 
72
69
  try:
73
- self.connection = I.connect(self.connString,'','')
74
-
75
- self.is_connected= True
76
- except Exception as e:
77
- logger.error(f'Error while connecting to {self.database}, {e}')
70
+ self.connection = Ifx.connect(self.connString, "", "")
78
71
 
72
+ self.is_connected = True
73
+ except Exception as e:
74
+ logger.error(f"Error while connecting to {self.database}, {e}")
79
75
 
80
76
  return self.connection
81
77
 
82
-
83
78
  def disconnect(self):
84
- ''' Close any existing connections
79
+ """Close any existing connections
85
80
  Should switch self.is_connected.
86
- '''
81
+ """
87
82
  if self.is_connected is False:
88
83
  return
89
84
  try:
90
85
  self.connection.close()
91
86
  self.is_connected = False
92
87
  except Exception as e:
93
- logger.error(f'Error while disconnecting to {self.database}, {e}')
94
-
95
- return
88
+ logger.error(f"Error while disconnecting to {self.database}, {e}")
96
89
 
90
+ return
97
91
 
98
92
  def check_connection(self) -> StatusResponse:
99
- ''' Check connection to the handler
93
+ """Check connection to the handler
100
94
  Returns:
101
95
  HandlerStatusResponse
102
- '''
96
+ """
103
97
  responseCode = StatusResponse(False)
104
98
  need_to_close = self.is_connected is False
105
99
 
@@ -107,7 +101,7 @@ class InformixHandler(DatabaseHandler):
107
101
  self.connect()
108
102
  responseCode.success = True
109
103
  except Exception as e:
110
- logger.error(f'Error connecting to database {self.database}, {e}!')
104
+ logger.error(f"Error connecting to database {self.database}, {e}!")
111
105
  responseCode.error_message = str(e)
112
106
  finally:
113
107
  if responseCode.success is True and need_to_close:
@@ -117,107 +111,93 @@ class InformixHandler(DatabaseHandler):
117
111
 
118
112
  return responseCode
119
113
 
120
-
121
114
  def native_query(self, query: str) -> StatusResponse:
122
- '''Receive raw query and act upon it somehow.
115
+ """Receive raw query and act upon it somehow.
123
116
  Args:
124
117
  query (Any): query in native format (str for sql databases,
125
118
  dict for mongo, etc)
126
119
  Returns:
127
120
  HandlerResponse
128
- '''
121
+ """
129
122
  need_to_close = self.is_connected is False
130
123
  conn = self.connect()
131
124
  cur = conn.cursor()
132
125
  try:
133
126
  cur.execute(query)
134
-
135
- if cur._result_set_produced :
136
- result = cur.fetchall()
127
+
128
+ if cur._result_set_produced:
129
+ result = cur.fetchall()
137
130
  response = Response(
138
131
  RESPONSE_TYPE.TABLE,
139
132
  data_frame=pd.DataFrame(
140
- result,
141
- columns=[x[0] for x in cur.description]
142
- )
133
+ result, columns=[x[0] for x in cur.description]
134
+ ),
143
135
  )
144
136
  else:
145
137
  response = Response(RESPONSE_TYPE.OK)
146
138
  if self.loging_enabled:
147
139
  self.connection.commit()
148
140
  except Exception as e:
149
- logger.error(f'Error running query: {query} on {self.database}')
150
- response = Response(
151
- RESPONSE_TYPE.ERROR,
152
- error_message=str(e)
153
- )
141
+ logger.error(f"Error running query: {query} on {self.database}")
142
+ response = Response(RESPONSE_TYPE.ERROR, error_message=str(e))
154
143
  if self.loging_enabled:
155
144
  self.connection.rollback()
156
145
 
157
146
  cur.close()
158
147
 
159
-
160
148
  if need_to_close is True:
161
149
  self.disconnect()
162
150
 
163
151
  return response
164
152
 
165
-
166
153
  def query(self, query: ASTNode) -> StatusResponse:
167
- '''Receive query as AST (abstract syntax tree) and act upon it somehow.
154
+ """Receive query as AST (abstract syntax tree) and act upon it somehow.
168
155
  Args:
169
156
  query (ASTNode): sql query represented as AST. May be any kind
170
157
  of query: SELECT, INTSERT, DELETE, etc
171
158
  Returns:
172
159
  HandlerResponse
173
- '''
174
-
175
-
160
+ """
176
161
 
177
162
  renderer = SqlalchemyRender(InformixDialect)
178
163
  query_str = renderer.get_string(query, with_failback=True)
179
164
  return self.native_query(query_str)
180
165
 
181
-
182
166
  def get_tables(self) -> StatusResponse:
183
- ''' Return list of entities
167
+ """Return list of entities
184
168
  Return list of entities that will be accesible as tables.
185
169
  Returns:
186
170
  HandlerResponse: shoud have same columns as information_schema.tables
187
171
  (https://dev.mysql.com/doc/refman/8.0/en/information-schema-tables-table.html)
188
172
  Column 'TABLE_NAME' is mandatory, other is optional.
189
- '''
173
+ """
190
174
  self.connect()
191
175
 
192
-
193
- result=self.connection.tables()
176
+ result = self.connection.tables()
194
177
  try:
195
178
  if result:
196
179
  response = Response(
197
180
  RESPONSE_TYPE.TABLE,
198
181
  data_frame=pd.DataFrame(
199
- [x['TABLE_NAME'] for x in result if x['TABLE_SCHEM']==self.schemaName],
200
- columns=['TABLE_NAME']
201
-
202
- )
182
+ [
183
+ x["TABLE_NAME"]
184
+ for x in result
185
+ if x["TABLE_SCHEM"] == self.schemaName
186
+ ],
187
+ columns=["TABLE_NAME"],
188
+ ),
203
189
  )
204
190
  else:
205
191
  response = Response(RESPONSE_TYPE.OK)
206
-
207
- except Exception as e:
208
- logger.error(f'Error running while getting table {e} on ')
209
- response = Response(
210
- RESPONSE_TYPE.ERROR,
211
- error_message=str(e)
212
- )
213
-
214
192
 
193
+ except Exception as e:
194
+ logger.error(f"Error running while getting table {e} on ")
195
+ response = Response(RESPONSE_TYPE.ERROR, error_message=str(e))
215
196
 
216
197
  return response
217
198
 
218
-
219
199
  def get_columns(self, table_name: str) -> StatusResponse:
220
- ''' Returns a list of entity columns
200
+ """Returns a list of entity columns
221
201
  Args:
222
202
  table_name (str): name of one of tables returned by self.get_tables()
223
203
  Returns:
@@ -226,93 +206,79 @@ class InformixHandler(DatabaseHandler):
226
206
  Column 'COLUMN_NAME' is mandatory, other is optional. Hightly
227
207
  recomended to define also 'DATA_TYPE': it should be one of
228
208
  python data types (by default it str).
229
- '''
230
-
231
- self.connect()
209
+ """
232
210
 
211
+ self.connect()
233
212
 
234
- result=self.connection.columns(table_name=table_name)
213
+ result = self.connection.columns(table_name=table_name)
235
214
  try:
236
215
  if result:
237
216
  response = Response(
238
217
  RESPONSE_TYPE.TABLE,
239
218
  data_frame=pd.DataFrame(
240
- [result[i]['COLUMN_NAME'] for i in range(len(result)) ],
241
- columns=['COLUMN_NAME']
242
-
243
- )
219
+ [result[i]["COLUMN_NAME"] for i in range(len(result))],
220
+ columns=["COLUMN_NAME"],
221
+ ),
244
222
  )
245
223
  else:
246
224
  response = Response(RESPONSE_TYPE.OK)
247
-
248
- except Exception as e:
249
- logger.error(f'Error running while getting table {e} on ')
250
- response = Response(
251
- RESPONSE_TYPE.ERROR,
252
- error_message=str(e)
253
- )
254
-
255
225
 
226
+ except Exception as e:
227
+ logger.error(f"Error running while getting table {e} on ")
228
+ response = Response(RESPONSE_TYPE.ERROR, error_message=str(e))
256
229
 
257
230
  return response
258
231
 
259
-
260
-
261
-
262
-
263
-
264
232
 
265
233
  connection_args = OrderedDict(
266
234
  server={
267
- 'type': ARG_TYPE.STR,
268
- 'description': '''
235
+ "type": ARG_TYPE.STR,
236
+ "description": """
269
237
  The server name you want to get connected.
270
- '''
238
+ """,
271
239
  },
272
240
  database={
273
- 'type': ARG_TYPE.STR,
274
- 'description': '''
241
+ "type": ARG_TYPE.STR,
242
+ "description": """
275
243
  The database name to use when connecting with the DB2 server.
276
- '''
244
+ """,
277
245
  },
278
246
  user={
279
- 'type': ARG_TYPE.STR,
280
- 'description': 'The user name used to authenticate with the DB2 server.'
247
+ "type": ARG_TYPE.STR,
248
+ "description": "The user name used to authenticate with the DB2 server.",
281
249
  },
282
250
  password={
283
- 'type': ARG_TYPE.STR,
284
- 'description': 'The password to authenticate the user with the DB2 server.'
251
+ "type": ARG_TYPE.STR,
252
+ "description": "The password to authenticate the user with the DB2 server.",
285
253
  },
286
254
  host={
287
- 'type': ARG_TYPE.STR,
288
- 'description': 'The host name or IP address of the DB2 server/database.'
255
+ "type": ARG_TYPE.STR,
256
+ "description": "The host name or IP address of the DB2 server/database.",
289
257
  },
290
258
  port={
291
- 'type': ARG_TYPE.INT,
292
- 'description': 'Specify port to connect DB2 through TCP/IP'
259
+ "type": ARG_TYPE.INT,
260
+ "description": "Specify port to connect DB2 through TCP/IP",
293
261
  },
294
262
  schema_name={
295
- 'type': ARG_TYPE.STR,
296
- 'description': 'Specify the schema name for showing tables '
263
+ "type": ARG_TYPE.STR,
264
+ "description": "Specify the schema name for showing tables ",
297
265
  },
298
266
  logging_enabled={
299
- 'type': ARG_TYPE.BOOL,
300
- 'description': '''
267
+ "type": ARG_TYPE.BOOL,
268
+ "description": """
301
269
  Used for COMMIT and ROLLBACK as this command works only for logging enabled database.
302
270
  Note: Its optional.
303
271
  Default is TRUE
304
- '''
305
- }
306
-
272
+ """,
273
+ },
307
274
  )
308
275
 
309
276
  connection_args_example = OrderedDict(
310
- server='server',
311
- database='stores_demo',
312
- user='informix',
313
- password='in4mix',
314
- host='127.0.0.1',
315
- port='9091',
316
- schema_name='Love'
317
-
277
+ server="server",
278
+ database="stores_demo",
279
+ user="informix",
280
+ password="in4mix",
281
+ host="127.0.0.1",
282
+ port="9091",
283
+ schema_name="Love",
318
284
  )
@@ -1,5 +1,7 @@
1
1
  import unittest
2
- from mindsdb.integrations.handlers.informix_handler.informix_handler import InformixHandler
2
+ from mindsdb.integrations.handlers.informix_handler.informix_handler import (
3
+ InformixHandler,
4
+ )
3
5
  from mindsdb.api.executor.data_types.response_type import RESPONSE_TYPE
4
6
 
5
7
 
@@ -15,30 +17,30 @@ class InformixHandlerTest(unittest.TestCase):
15
17
  "password": "in4mix",
16
18
  "database": "demo",
17
19
  "schema_name": "love",
18
- "loging_enabled": False
20
+ "loging_enabled": False,
19
21
  }
20
22
  }
21
- cls.handler = InformixHandler('test_informix_handler', cls.kwargs)
23
+ cls.handler = InformixHandler("test_informix_handler", cls.kwargs)
22
24
 
23
25
  def test_0_connect(self):
24
26
  self.handler.connect()
25
27
 
26
28
  def test_1_drop_table(self):
27
29
  res = self.handler.query("DROP TABLE IF EXISTS LOVE;")
28
- assert res.type is not RESPONSE_TYPE.ERROR
30
+ assert res.type is not RESPONSE_TYPE.ERROR
29
31
 
30
32
  def test_2_create_table(self):
31
33
  res = self.handler.query("CREATE TABLE IF NOT EXISTS LOVE (LOVER varchar(20));")
32
- assert res.type is not RESPONSE_TYPE.ERROR
33
-
34
+ assert res.type is not RESPONSE_TYPE.ERROR
35
+
34
36
  def test_3_insert(self):
35
37
  res = self.handler.query("INSERT INTO LOVE VALUES('Hari');")
36
38
  assert res.type is not RESPONSE_TYPE.ERROR
37
-
39
+
38
40
  def test_4_get_tables(self):
39
41
  tables = self.handler.get_tables()
40
42
  assert tables.type is RESPONSE_TYPE.TABLE
41
-
43
+
42
44
  def test_5_select_query(self):
43
45
  query = "SELECT * FROM LOVE;"
44
46
  result = self.handler.native_query(query)
@@ -47,6 +49,6 @@ class InformixHandlerTest(unittest.TestCase):
47
49
  def test_5_check_connection(self):
48
50
  self.handler.check_connection()
49
51
 
50
-
51
- if __name__ == '__main__':
52
- unittest.main()
52
+
53
+ if __name__ == "__main__":
54
+ unittest.main()
@@ -7,4 +7,3 @@ __github__ = 'https://github.com/mindsdb/mindsdb'
7
7
  __pypi__ = 'https://pypi.org/project/mindsdb/'
8
8
  __license__ = 'MIT'
9
9
  __copyright__ = 'Copyright 2023- mindsdb'
10
-
@@ -17,6 +17,7 @@ from mindsdb.integrations.libs.response import (
17
17
 
18
18
  logger = log.getLogger(__name__)
19
19
 
20
+
20
21
  class IngresHandler(DatabaseHandler):
21
22
  """
22
23
  This handler handles connection and execution of the Ingres statements.
@@ -55,14 +55,14 @@ class JiraHandler(APIHandler):
55
55
  """
56
56
  if self.is_connected is True:
57
57
  return self.connection
58
-
58
+
59
59
  is_cloud = self.connection_data.get("cloud", True)
60
60
 
61
61
  if is_cloud:
62
62
  # Jira Cloud supports API token authentication.
63
63
  if not all(key in self.connection_data for key in ['username', 'api_token', 'url']):
64
64
  raise ValueError("Required parameters (username, api_token, url) must be provided.")
65
-
65
+
66
66
  config = {
67
67
  "username": self.connection_data['username'],
68
68
  "password": self.connection_data['api_token'],
@@ -72,7 +72,7 @@ class JiraHandler(APIHandler):
72
72
  # Jira Server supports personal access token authentication or open access.
73
73
  if 'url' not in self.connection_data:
74
74
  raise ValueError("Required parameter 'url' must be provided.")
75
-
75
+
76
76
  config = {
77
77
  "url": self.connection_data['url'],
78
78
  "cloud": False
@@ -147,4 +147,4 @@ class JiraHandler(APIHandler):
147
147
  error_message=str(unknown_error)
148
148
  )
149
149
 
150
- return response
150
+ return response
@@ -24,7 +24,7 @@ class JiraProjectsTable(APIResource):
24
24
 
25
25
  projects = []
26
26
  for condition in conditions:
27
- if condition.column in ('id', 'key'):
27
+ if condition.column in ('id', 'key'):
28
28
  if condition.op == FilterOperator.EQUAL:
29
29
  projects = [client.get_project(condition.value)]
30
30
  elif condition.op == FilterOperator.IN:
@@ -43,7 +43,7 @@ class JiraProjectsTable(APIResource):
43
43
  projects_df = pd.DataFrame([], columns=self.get_columns())
44
44
 
45
45
  return projects_df
46
-
46
+
47
47
  def get_columns(self) -> List[str]:
48
48
  return [
49
49
  "id",
@@ -56,7 +56,7 @@ class JiraProjectsTable(APIResource):
56
56
  "entityId",
57
57
  "uuid",
58
58
  ]
59
-
59
+
60
60
 
61
61
  class JiraIssuesTable(APIResource):
62
62
  def list(
@@ -71,7 +71,7 @@ class JiraIssuesTable(APIResource):
71
71
 
72
72
  issues = []
73
73
  for condition in conditions:
74
- if condition.column in ('id', 'key'):
74
+ if condition.column in ('id', 'key'):
75
75
  if condition.op == FilterOperator.EQUAL:
76
76
  issues = [client.get_issue(condition.value)]
77
77
  elif condition.op == FilterOperator.IN:
@@ -88,7 +88,7 @@ class JiraIssuesTable(APIResource):
88
88
  issues.extend(client.get_all_project_issues(project_id, limit=limit))
89
89
 
90
90
  condition.applied = True
91
-
91
+
92
92
  if not issues:
93
93
  project_ids = [project['id'] for project in client.get_all_projects()]
94
94
  for project_id in project_ids:
@@ -100,7 +100,7 @@ class JiraIssuesTable(APIResource):
100
100
  issues_df = pd.DataFrame([], columns=self.get_columns())
101
101
 
102
102
  return issues_df
103
-
103
+
104
104
  def _get_project_issues_with_limit(self, client: Jira, project_id, limit=None, current_issues=None):
105
105
  """
106
106
  Helper to get issues from a project, respecting the limit.
@@ -147,8 +147,8 @@ class JiraIssuesTable(APIResource):
147
147
  "assignee",
148
148
  "status",
149
149
  ]
150
-
151
-
150
+
151
+
152
152
  class JiraGroupsTable(APIResource):
153
153
  def list(
154
154
  self,
@@ -194,7 +194,7 @@ class JiraUsersTable(APIResource):
194
194
 
195
195
  users = []
196
196
  for condition in conditions:
197
- if condition.column == 'accountId':
197
+ if condition.column == 'accountId':
198
198
  if condition.op == FilterOperator.EQUAL:
199
199
  users = [client.user(account_id=condition.value)]
200
200
  elif condition.op == FilterOperator.IN:
@@ -8,7 +8,6 @@ try:
8
8
  except Exception as e:
9
9
  Handler = None
10
10
  import_error = e
11
- from .__about__ import __version__ as version, __description__ as description
12
11
 
13
12
 
14
13
  title = 'Kinetica'
@@ -1,3 +1,2 @@
1
1
  lancedb~=0.3.1
2
2
  lance
3
- pyarrow~=19.0.0
@@ -108,7 +108,7 @@ AI: {response}'''
108
108
  self.model_storage.json_set('args', args)
109
109
 
110
110
  @staticmethod
111
- def create_validation(_, args: Dict=None, **kwargs):
111
+ def create_validation(_, args: Dict = None, **kwargs):
112
112
  if 'using' not in args:
113
113
  raise Exception("LangChain engine requires a USING clause! Refer to its documentation for more details.")
114
114
  else:
@@ -117,7 +117,7 @@ AI: {response}'''
117
117
  if not args.get('mode') == 'retrieval':
118
118
  raise ValueError('Please provide a `prompt_template` for this engine.')
119
119
 
120
- def predict(self, df: pd.DataFrame, args: Dict=None) -> pd.DataFrame:
120
+ def predict(self, df: pd.DataFrame, args: Dict = None) -> pd.DataFrame:
121
121
  """
122
122
  Dispatch is performed depending on the underlying model type. Currently, only the default text completion
123
123
  is supported.
@@ -125,7 +125,7 @@ AI: {response}'''
125
125
  pred_args = args['predict_params'] if args else {}
126
126
  args = self.model_storage.json_get('args')
127
127
  if 'prompt_template' not in args and 'prompt_template' not in pred_args:
128
- raise ValueError(f"This model expects a `prompt_template`, please provide one.")
128
+ raise ValueError("This model expects a `prompt_template`, please provide one.")
129
129
  # Back compatibility for old models
130
130
  args['provider'] = args.get('provider', get_llm_provider(args))
131
131
  args['embedding_model_provider'] = args.get('embedding_model', get_embedding_model_provider(args))
@@ -155,7 +155,7 @@ AI: {response}'''
155
155
 
156
156
  return pd.DataFrame([resp.content], columns=[assistant_column])
157
157
 
158
- def create_agent(self, df: pd.DataFrame, args: Dict=None, pred_args: Dict=None) -> AgentExecutor:
158
+ def create_agent(self, df: pd.DataFrame, args: Dict = None, pred_args: Dict = None) -> AgentExecutor:
159
159
  pred_args = pred_args if pred_args else {}
160
160
 
161
161
  # Set up tools.