MindsDB 25.4.3.2__py3-none-any.whl → 25.4.5.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 (68) hide show
  1. mindsdb/__about__.py +1 -1
  2. mindsdb/__main__.py +18 -4
  3. mindsdb/api/executor/command_executor.py +12 -2
  4. mindsdb/api/executor/data_types/response_type.py +1 -0
  5. mindsdb/api/executor/datahub/classes/tables_row.py +3 -10
  6. mindsdb/api/executor/datahub/datanodes/datanode.py +7 -2
  7. mindsdb/api/executor/datahub/datanodes/information_schema_datanode.py +44 -10
  8. mindsdb/api/executor/datahub/datanodes/integration_datanode.py +57 -38
  9. mindsdb/api/executor/datahub/datanodes/mindsdb_tables.py +2 -1
  10. mindsdb/api/executor/datahub/datanodes/project_datanode.py +39 -7
  11. mindsdb/api/executor/datahub/datanodes/system_tables.py +116 -109
  12. mindsdb/api/executor/planner/query_plan.py +1 -0
  13. mindsdb/api/executor/planner/query_planner.py +15 -1
  14. mindsdb/api/executor/planner/steps.py +8 -2
  15. mindsdb/api/executor/sql_query/sql_query.py +24 -8
  16. mindsdb/api/executor/sql_query/steps/apply_predictor_step.py +25 -8
  17. mindsdb/api/executor/sql_query/steps/fetch_dataframe_partition.py +4 -2
  18. mindsdb/api/executor/sql_query/steps/insert_step.py +2 -1
  19. mindsdb/api/executor/sql_query/steps/prepare_steps.py +2 -3
  20. mindsdb/api/http/namespaces/config.py +19 -11
  21. mindsdb/api/litellm/start.py +82 -0
  22. mindsdb/api/mysql/mysql_proxy/libs/constants/mysql.py +133 -0
  23. mindsdb/integrations/handlers/chromadb_handler/chromadb_handler.py +7 -2
  24. mindsdb/integrations/handlers/chromadb_handler/settings.py +1 -0
  25. mindsdb/integrations/handlers/mssql_handler/mssql_handler.py +13 -4
  26. mindsdb/integrations/handlers/mysql_handler/mysql_handler.py +14 -5
  27. mindsdb/integrations/handlers/openai_handler/helpers.py +3 -5
  28. mindsdb/integrations/handlers/openai_handler/openai_handler.py +20 -8
  29. mindsdb/integrations/handlers/oracle_handler/oracle_handler.py +14 -4
  30. mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py +34 -19
  31. mindsdb/integrations/handlers/postgres_handler/postgres_handler.py +21 -18
  32. mindsdb/integrations/handlers/snowflake_handler/snowflake_handler.py +14 -4
  33. mindsdb/integrations/handlers/togetherai_handler/__about__.py +9 -0
  34. mindsdb/integrations/handlers/togetherai_handler/__init__.py +20 -0
  35. mindsdb/integrations/handlers/togetherai_handler/creation_args.py +14 -0
  36. mindsdb/integrations/handlers/togetherai_handler/icon.svg +15 -0
  37. mindsdb/integrations/handlers/togetherai_handler/model_using_args.py +5 -0
  38. mindsdb/integrations/handlers/togetherai_handler/requirements.txt +2 -0
  39. mindsdb/integrations/handlers/togetherai_handler/settings.py +33 -0
  40. mindsdb/integrations/handlers/togetherai_handler/togetherai_handler.py +234 -0
  41. mindsdb/integrations/handlers/web_handler/urlcrawl_helpers.py +1 -1
  42. mindsdb/integrations/libs/response.py +80 -32
  43. mindsdb/integrations/utilities/handler_utils.py +4 -0
  44. mindsdb/integrations/utilities/rag/rerankers/base_reranker.py +360 -0
  45. mindsdb/integrations/utilities/rag/rerankers/reranker_compressor.py +8 -153
  46. mindsdb/interfaces/agents/litellm_server.py +345 -0
  47. mindsdb/interfaces/agents/mcp_client_agent.py +252 -0
  48. mindsdb/interfaces/agents/run_mcp_agent.py +205 -0
  49. mindsdb/interfaces/functions/controller.py +3 -2
  50. mindsdb/interfaces/knowledge_base/controller.py +106 -82
  51. mindsdb/interfaces/query_context/context_controller.py +55 -15
  52. mindsdb/interfaces/query_context/query_task.py +19 -0
  53. mindsdb/interfaces/skills/skill_tool.py +7 -1
  54. mindsdb/interfaces/skills/sql_agent.py +8 -3
  55. mindsdb/interfaces/storage/db.py +2 -2
  56. mindsdb/interfaces/tasks/task_monitor.py +5 -1
  57. mindsdb/interfaces/tasks/task_thread.py +6 -0
  58. mindsdb/migrations/versions/2025-04-22_53502b6d63bf_query_database.py +27 -0
  59. mindsdb/utilities/config.py +20 -2
  60. mindsdb/utilities/context.py +1 -0
  61. mindsdb/utilities/starters.py +7 -0
  62. {mindsdb-25.4.3.2.dist-info → mindsdb-25.4.5.0.dist-info}/METADATA +226 -221
  63. {mindsdb-25.4.3.2.dist-info → mindsdb-25.4.5.0.dist-info}/RECORD +67 -53
  64. {mindsdb-25.4.3.2.dist-info → mindsdb-25.4.5.0.dist-info}/WHEEL +1 -1
  65. mindsdb/integrations/handlers/snowflake_handler/tests/test_snowflake_handler.py +0 -230
  66. /mindsdb/{integrations/handlers/snowflake_handler/tests → api/litellm}/__init__.py +0 -0
  67. {mindsdb-25.4.3.2.dist-info → mindsdb-25.4.5.0.dist-info}/licenses/LICENSE +0 -0
  68. {mindsdb-25.4.3.2.dist-info → mindsdb-25.4.5.0.dist-info}/top_level.txt +0 -0
@@ -1,53 +1,53 @@
1
- mindsdb/__about__.py,sha256=M9GJsK4WekmOeg0_gt2SmJ_8_qA-DovVQpPFVbZe-lg,456
1
+ mindsdb/__about__.py,sha256=NQxSDL0_zMThoH2Fzamf4GShkFLpwGtKvwycDjP0LRY,456
2
2
  mindsdb/__init__.py,sha256=fZopLiAYa9MzMZ0d48JgHc_LddfFKDzh7n_8icsjrVs,54
3
- mindsdb/__main__.py,sha256=87osYtaljhBym3Zcif7hgN6Rlw-ozBAhOgdN4DN0zC0,23477
3
+ mindsdb/__main__.py,sha256=UwHgxc2X0jVFXoD4Xtx_SuzhGuNFyoeDgWRtSX8xmvQ,24281
4
4
  mindsdb/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  mindsdb/api/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  mindsdb/api/common/check_auth.py,sha256=cQEZqsnCbrRtUf8j4H6uPF98cDPu79t8TdtwBi5g30w,1345
7
7
  mindsdb/api/executor/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
8
- mindsdb/api/executor/command_executor.py,sha256=8LIF0CQkpbI1WsVa4u1kyEQkxRHy1dFyKCAMtHziyKc,79432
8
+ mindsdb/api/executor/command_executor.py,sha256=Gfn29_Cq-B4sZFTGxN6zHylw8zFhroIVNqVPkHD29zE,79808
9
9
  mindsdb/api/executor/exceptions.py,sha256=SoxhetIKIVOAwbVP_NatfoKnwt-Xj2yFCiAIqSDxpIE,566
10
10
  mindsdb/api/executor/controllers/__init__.py,sha256=px47lPVKqfpqgcoEBHyWoax-ad01rNOTJQCgQmG0Flo,50
11
11
  mindsdb/api/executor/controllers/session_controller.py,sha256=2Jf-V0nj7k0aB4scujNVyx91h54odkDrdK1ydsCo46g,3072
12
12
  mindsdb/api/executor/data_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  mindsdb/api/executor/data_types/answer.py,sha256=bvCpI-Tji2kgTzyzFaw-EgstMdssZvFmLXmiBjG87Bg,392
14
- mindsdb/api/executor/data_types/response_type.py,sha256=eAmjV_UoOKTLh6H7Qi9_1VFhvGm7k1u30D8anJJASGo,128
14
+ mindsdb/api/executor/data_types/response_type.py,sha256=u9cqvtoAE_ozNJr2YsBLYW0BMGUdaqp8IWn6ZLxO2NA,209
15
15
  mindsdb/api/executor/datahub/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
16
16
  mindsdb/api/executor/datahub/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  mindsdb/api/executor/datahub/classes/response.py,sha256=sCGFeOscRWi7f0SPvS1P3IzKFJwCUGmjRUR2SxKnfcs,299
18
- mindsdb/api/executor/datahub/classes/tables_row.py,sha256=wT3TzoK3dFNiRc92rh_Hgo1uqaznFldtXBUGCzKNOlg,1934
18
+ mindsdb/api/executor/datahub/classes/tables_row.py,sha256=7sRAqTbL-YcIfIvbdyEokSefHoWVzNSRM1vjqhqkWGQ,1495
19
19
  mindsdb/api/executor/datahub/datanodes/__init__.py,sha256=aGoFHBCcl4y-a5rjUYNGpVbZjsh6i__t4u8AY5shPsg,185
20
- mindsdb/api/executor/datahub/datanodes/datanode.py,sha256=Up2GVmlR96qu7Bn_xrBXry8aK67YolPZ9Idk-yuL_yI,418
21
- mindsdb/api/executor/datahub/datanodes/information_schema_datanode.py,sha256=CVV46sqVm3bMgjn7SXPA2RfBPukRkmkKgeQfjdSX0cY,6407
22
- mindsdb/api/executor/datahub/datanodes/integration_datanode.py,sha256=KMLCNqdwaYLOqJNLRo1pV0y0IF-EBZe0-fpvzLBklKo,10505
23
- mindsdb/api/executor/datahub/datanodes/mindsdb_tables.py,sha256=kYKJWwzwXiNcOTytArtafPX3jJQ9iEdrzyQdo42Eyw0,14093
24
- mindsdb/api/executor/datahub/datanodes/project_datanode.py,sha256=Y4dzi-aHNgC5ncM8KyEhjoz5sglGfexix6fymA4ulvQ,6425
25
- mindsdb/api/executor/datahub/datanodes/system_tables.py,sha256=9Bol0qiDRxBQJ53-EytjxzLnVNsipmrRm0J-BrDJ7eU,15559
20
+ mindsdb/api/executor/datahub/datanodes/datanode.py,sha256=hYIig24NP18NPlP-yR01qfgrebm2pwJYOy3zgZi4mQI,594
21
+ mindsdb/api/executor/datahub/datanodes/information_schema_datanode.py,sha256=R2vFk13fIFvQDd_JP6g7cqPJq3BTNW4CpXZY5jY704w,8260
22
+ mindsdb/api/executor/datahub/datanodes/integration_datanode.py,sha256=pTPPjSaAI4IuSNdz4xpbguZoxRt7WBNMhvsffalowvw,11907
23
+ mindsdb/api/executor/datahub/datanodes/mindsdb_tables.py,sha256=inOQtLa-nP0sbyDtwvFGuxZsvWClQDhhNrA-bjFmWP4,14120
24
+ mindsdb/api/executor/datahub/datanodes/project_datanode.py,sha256=j2dJHT09FJOq76ORSkgGMtZxtE8kSB4VY6UrRce-KBc,8080
25
+ mindsdb/api/executor/datahub/datanodes/system_tables.py,sha256=lE72MHKk7yLbbvGvwVThczen290ShpkgXT7L82gvRJs,16982
26
26
  mindsdb/api/executor/planner/__init__.py,sha256=Ysh8feXwejpVhJ9yDbrE_lBA3EsGqyWnrbIPdmtE1Oc,143
27
27
  mindsdb/api/executor/planner/exceptions.py,sha256=rvLQoFZgCpVsGWomSBdPeuOyr_6FM-QKmseVvUIw5E8,46
28
28
  mindsdb/api/executor/planner/plan_join.py,sha256=QuwrM2Ck8jQmHMzo3eU768v1QqNtaLCZQ4cKfj2IkwA,22549
29
29
  mindsdb/api/executor/planner/plan_join_ts.py,sha256=LeQWq1dnhkLo36EaQG5B-EAlGfTFHT1szvEve75uMk8,16369
30
- mindsdb/api/executor/planner/query_plan.py,sha256=_ykXHlvqsaZRv2dEuyYk2W46hj2PRVxDERg9UKRy6bE,750
31
- mindsdb/api/executor/planner/query_planner.py,sha256=aFBcI_SsYizqzodGhfgPqOsLcMdlIEHAUOeN_KQ46wQ,34142
30
+ mindsdb/api/executor/planner/query_plan.py,sha256=Cj02laM8YCuwuNUNrkLrhbBcO1cOAXcq5IHTx-_R5L0,780
31
+ mindsdb/api/executor/planner/query_planner.py,sha256=v1eqHTnGLKunN8LUKzjrxcdLPC1D7Julerj3NNDD0_s,34618
32
32
  mindsdb/api/executor/planner/query_prepare.py,sha256=ZH8fZ05tFMMy9aeuLU1R5F-ThSPtiGbvozoCZSNGz7A,16694
33
33
  mindsdb/api/executor/planner/step_result.py,sha256=t2xBRVSfqTRk4GY2JIi21cXSUiFlCw5hMbWRBSMtEjM,519
34
- mindsdb/api/executor/planner/steps.py,sha256=pj-YdKfL1kePdqtAbgqitL4IdQnuN8jSq3VUxrkTsLw,9166
34
+ mindsdb/api/executor/planner/steps.py,sha256=8BV3dGf5Yi3jbq_2XPapr5nPyL0KqgPFtWxqX95Mcyw,9352
35
35
  mindsdb/api/executor/planner/ts_utils.py,sha256=_vujPqWH-Y3gVffv6ND1H2b_j99CBvIgQBxZUvZ7Sic,3871
36
36
  mindsdb/api/executor/planner/utils.py,sha256=pCec75lLc5V84LYMheprYxT7RGeJPKiNZrqA_bYmco0,3838
37
37
  mindsdb/api/executor/sql_query/__init__.py,sha256=LJ2BV8snOaXGA8RJ5W5AmQuViLlxJ5V25G_SdsNIYZI,32
38
38
  mindsdb/api/executor/sql_query/result_set.py,sha256=cX5Mp5BRYzsZ7avbIALVcrZgAs4w-c8O08JOQoQH-nM,9789
39
- mindsdb/api/executor/sql_query/sql_query.py,sha256=NUXAsttNgnbkJUDfLp0dKxo394j25HhCT7p-UfpY9k8,10697
39
+ mindsdb/api/executor/sql_query/sql_query.py,sha256=NEDZmaASFZFuUHWc7BUqWW4jzY1yMUnzyJD1mDwaz1o,11341
40
40
  mindsdb/api/executor/sql_query/steps/__init__.py,sha256=KHQ25_rwy0pCFHqrLYismnY0UxS35mfpeYSL4D_fzqo,795
41
- mindsdb/api/executor/sql_query/steps/apply_predictor_step.py,sha256=Qm_kVTg0fwXWIy26Atmie_bGNa0wQQ7mVengN6Zly2A,16305
41
+ mindsdb/api/executor/sql_query/steps/apply_predictor_step.py,sha256=q98j7Gx6hs9kbp5jbd5LkN8WqcfQnJsleLOwo8Ukc4U,17151
42
42
  mindsdb/api/executor/sql_query/steps/base.py,sha256=xs3wOJ0fkqMRDNR5jDVaz23zeaD8wSF0L-JVC2WW7_E,557
43
43
  mindsdb/api/executor/sql_query/steps/delete_step.py,sha256=iPxSYq_GrVBsdB6mmWeCi5fLgbXbIhvXxc0LRMTbJ0M,1370
44
44
  mindsdb/api/executor/sql_query/steps/fetch_dataframe.py,sha256=-1CE0KIEY3IZjMfSoVCNUpe_yASU7rBnpVvEmpU13AQ,3941
45
- mindsdb/api/executor/sql_query/steps/fetch_dataframe_partition.py,sha256=gqhWnVwAABSIhuRJdqxtz7lxGLHBpr7Qi8XmEgO3Npo,8250
46
- mindsdb/api/executor/sql_query/steps/insert_step.py,sha256=Vz0rjS5FHx9Ym-U4TuU_PdO60qGov-ZFF83aLYOHfvo,3785
45
+ mindsdb/api/executor/sql_query/steps/fetch_dataframe_partition.py,sha256=D0sqnX3n7e2eLbJzq-pgEpdfVIcTLBSgnk6nI84bk-I,8445
46
+ mindsdb/api/executor/sql_query/steps/insert_step.py,sha256=nu1D6Lx6zQ0_OKT1LG-cfwedSNwT_Pg6TTCfUBKcPjM,3817
47
47
  mindsdb/api/executor/sql_query/steps/join_step.py,sha256=8wW7AmIMhMinpMovSgl-2CGujV3mDX5kTFLxuI1KZfQ,4261
48
48
  mindsdb/api/executor/sql_query/steps/map_reduce_step.py,sha256=v1TZy0FBjw_Bqxx-X2KP-jeqrun-FH4yilghiYhsQEM,4452
49
49
  mindsdb/api/executor/sql_query/steps/multiple_step.py,sha256=jAwY8rGUOdecQNP5JSjjHmPpNLMVPX4adAU-PoHJBuY,656
50
- mindsdb/api/executor/sql_query/steps/prepare_steps.py,sha256=eciOR2oUbheMcJqL72pqoSJncjh3HvL38GMZ6zVZdGM,1596
50
+ mindsdb/api/executor/sql_query/steps/prepare_steps.py,sha256=URXDoE6vuc5mJ-vBkM5RXRYCS92NXs8_Jrlykh9mk6c,1588
51
51
  mindsdb/api/executor/sql_query/steps/project_step.py,sha256=WQ23VkfWrVHKRnyy91Kh9uRI7Twb-IBvSQl2TZy_21w,2854
52
52
  mindsdb/api/executor/sql_query/steps/sql_steps.py,sha256=RXZ1L05H_MHwVNdf6qDbIStsDjG_3QxEr3wPuFtZMdM,891
53
53
  mindsdb/api/executor/sql_query/steps/subselect_step.py,sha256=J9aVzChLxIoI8QwykdqDKYCObW5_ZhYQPvv7oBRDXo8,8120
@@ -67,7 +67,7 @@ mindsdb/api/http/namespaces/agents.py,sha256=H3C4MmNCsrk3Dv8Cw1kx0j7EvNOia5PfyfQ
67
67
  mindsdb/api/http/namespaces/analysis.py,sha256=Dp3izdLkG35cSAKNUPJfuGoFSRe34CzFPKk2CEVjDoI,3821
68
68
  mindsdb/api/http/namespaces/auth.py,sha256=Qm1ZUBdbv_nTDzSQHdzXEosdpYCRzIa17k1yYErOeuk,5483
69
69
  mindsdb/api/http/namespaces/chatbots.py,sha256=pLSaTzm2GtqJM-RW8MrEQTIJybLRCMbLv99BNABxMjw,11877
70
- mindsdb/api/http/namespaces/config.py,sha256=-OZaCf32lHIi1hZ3gt6nuR0XF1gxkh3zv-oU28Z9Tfs,8382
70
+ mindsdb/api/http/namespaces/config.py,sha256=tC7MItEt_hjpG1O8-y85sEqPtwX_iPj7mNdTQ6zSg-0,8785
71
71
  mindsdb/api/http/namespaces/databases.py,sha256=QuHD5zSIftfb5qRdPJS3UtZEnfQnf1fp0wVKe98h7Rg,18543
72
72
  mindsdb/api/http/namespaces/default.py,sha256=r8PXn00Um2eyKB5e_Kj7fzk4e4LYH-JCzXCpxgJA2vY,4729
73
73
  mindsdb/api/http/namespaces/file.py,sha256=u6xYa_moAMb0UXWGkNtErGw9nk-FbloRuLHrLCANjoU,6644
@@ -102,6 +102,8 @@ mindsdb/api/http/namespaces/configs/tabs.py,sha256=5kB0gcdPuYxUebeRuNCHkX8uleEDs
102
102
  mindsdb/api/http/namespaces/configs/tree.py,sha256=MIVdZLdwQP5DnJMO8lBN7ee1uUiT6Wy5LL865qAAizg,112
103
103
  mindsdb/api/http/namespaces/configs/util.py,sha256=BY7FtouA0QjxiygxCIrQNfP3z1dbXdbQzeKfsSW7UDE,93
104
104
  mindsdb/api/http/namespaces/configs/webhooks.py,sha256=WTZAN2r6GdR8LbhAyh9osFGaFDtgPDCl7VMSew-NUqs,116
105
+ mindsdb/api/litellm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
+ mindsdb/api/litellm/start.py,sha256=U6gBzQrHNmbPCjCnizPz59jnM0GdYmMx84XTIVzCiww,2761
105
107
  mindsdb/api/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
108
  mindsdb/api/mcp/start.py,sha256=zcWD70agZp9oUAXiSo0HJ0uwkxTwSsTQRQFknpLAhHw,4089
107
109
  mindsdb/api/mongo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -184,7 +186,7 @@ mindsdb/api/mysql/mysql_proxy/external_libs/__init__.py,sha256=47DEQpj8HBSa-_TIm
184
186
  mindsdb/api/mysql/mysql_proxy/external_libs/mysql_scramble.py,sha256=k5ZmduhQW2E3Mf_jns-dyVLsRxXUAJE1b3Qbr1FkHKo,4116
185
187
  mindsdb/api/mysql/mysql_proxy/libs/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
186
188
  mindsdb/api/mysql/mysql_proxy/libs/constants/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
187
- mindsdb/api/mysql/mysql_proxy/libs/constants/mysql.py,sha256=ubgVGT56J5xvzNz8JnHApdSGWTElW8gd_fD81uyB6Kk,38043
189
+ mindsdb/api/mysql/mysql_proxy/libs/constants/mysql.py,sha256=eCDaSXJJIZ45V24OUk9tlnXVUmlNtRyECraddhFXRiQ,42062
188
190
  mindsdb/api/mysql/mysql_proxy/utilities/__init__.py,sha256=y6AJu3xWHud92ZK_pfU3WzDj8gLIYvXfFNJ-phZmjJo,26
189
191
  mindsdb/api/mysql/mysql_proxy/utilities/exceptions.py,sha256=6iKdCaPRytM2uk9F0fXEl7Xl89wU-_28K0CtndChvfU,407
190
192
  mindsdb/api/mysql/mysql_proxy/utilities/lightwood_dtype.py,sha256=dPtDWMh2S5ICsSYMsnLia7-R1mwHUGs7aopiRhLamD8,2341
@@ -352,11 +354,11 @@ mindsdb/integrations/handlers/cassandra_handler/tests/__init__.py,sha256=47DEQpj
352
354
  mindsdb/integrations/handlers/cassandra_handler/tests/test_cassandra_handler.py,sha256=9MibR3PQlvZzt7Q0rCU6R8dICvqhPA_kxoUp4JiVEVE,1353
353
355
  mindsdb/integrations/handlers/chromadb_handler/__about__.py,sha256=28MPMq-Rjb1tR4SawSItNeGvVRupERgeHUDW7KRiyr4,345
354
356
  mindsdb/integrations/handlers/chromadb_handler/__init__.py,sha256=FzOq_6Kq-DWh2JpJT_nUryqEZrRR3TtpAmynMFOfHr4,659
355
- mindsdb/integrations/handlers/chromadb_handler/chromadb_handler.py,sha256=lDATt6UW-mpUuoxJdCFfoV9ghNKgk2Gb7TOq974Bf_k,18483
357
+ mindsdb/integrations/handlers/chromadb_handler/chromadb_handler.py,sha256=zBQ-Nl1aQqZFJbVo1W8-cxuLsPkqP6W01edZ1IXUByo,18704
356
358
  mindsdb/integrations/handlers/chromadb_handler/connection_args.py,sha256=68xiE2YIA1nVVgX2TujmKW2eJ1m7gkvkogtizepPR3o,664
357
359
  mindsdb/integrations/handlers/chromadb_handler/icon.png,sha256=kNvGVxfI_vQgHvpuBwHXKZOpgERaHHx3i1XmyA8GDRg,4199
358
360
  mindsdb/integrations/handlers/chromadb_handler/requirements.txt,sha256=xDi58Geqkth3WtJFFFD20zyutNzmtrKu9cQOSNNzx9A,16
359
- mindsdb/integrations/handlers/chromadb_handler/settings.py,sha256=2WL-LMu4ESft90BriiYOmo_WQoXPfh59u_8YeJ3Ml5c,1965
361
+ mindsdb/integrations/handlers/chromadb_handler/settings.py,sha256=X2InXMtGB5rwTgPIhKCw7h83dzH2n89P0QjsoZv8p0Q,1994
360
362
  mindsdb/integrations/handlers/chromadb_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
361
363
  mindsdb/integrations/handlers/ckan_handler/__about__.py,sha256=asp1VEDXJCLipP3uoPK7Q_qXIODhH89pJqQyjv6P3WE,337
362
364
  mindsdb/integrations/handlers/ckan_handler/__init__.py,sha256=ERm0z1dxntDJfeAyYMKbzmKB48LmZC03o_g5gh9GXC4,621
@@ -1047,7 +1049,7 @@ mindsdb/integrations/handlers/mssql_handler/__about__.py,sha256=PIWwVwn9iAHApIWR
1047
1049
  mindsdb/integrations/handlers/mssql_handler/__init__.py,sha256=eYkU7VeK9N8vb68pZEJYVNDIH4JslkIiz8HrX9HV2sQ,612
1048
1050
  mindsdb/integrations/handlers/mssql_handler/connection_args.py,sha256=gqdCqCfjOvItZ-tAlUsh7QV7rfyjei_nj0rFX1hKEyE,1524
1049
1051
  mindsdb/integrations/handlers/mssql_handler/icon.svg,sha256=CMPDc66jCYyao_ui5eRds92raysDIMNuhIs59Tvbk_8,11944
1050
- mindsdb/integrations/handlers/mssql_handler/mssql_handler.py,sha256=Vr5_jwxtMnUMQFPO9Xl3K-1-NFkvbFhWjeU5mwmK6A8,8886
1052
+ mindsdb/integrations/handlers/mssql_handler/mssql_handler.py,sha256=p6ZU7ua6Oy_YJ6nobDmK_pqY1qEX6zCMvXfZHqeM1UA,9130
1051
1053
  mindsdb/integrations/handlers/mssql_handler/requirements.txt,sha256=U59auV3ZAxBGXdMbyXxdRI3LTfCICvZVZWKWMnLUlwA,17
1052
1054
  mindsdb/integrations/handlers/mssql_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1053
1055
  mindsdb/integrations/handlers/mssql_handler/tests/test_mssql_handler.py,sha256=gh8t3ft5Xy-EZ3Rfk1oopojQTrbc_DDE-uAlWpeH-8E,6010
@@ -1055,7 +1057,7 @@ mindsdb/integrations/handlers/mysql_handler/__about__.py,sha256=UCFLhlYJ-_DenwFc
1055
1057
  mindsdb/integrations/handlers/mysql_handler/__init__.py,sha256=ikcK9oIUFjMfyRDAUKKvb8JQ4Fw-P1zLBeEHo2ZMPY8,592
1056
1058
  mindsdb/integrations/handlers/mysql_handler/connection_args.py,sha256=--9ZuX6QSTbWPcRQuptMElStU6p_wkYAUGuxVhRi9JU,2288
1057
1059
  mindsdb/integrations/handlers/mysql_handler/icon.svg,sha256=yvGRJXlDZ7tyqGSjbgEgG-gDhrKPUVt2ifG6xdjSfAA,4136
1058
- mindsdb/integrations/handlers/mysql_handler/mysql_handler.py,sha256=WNJFIcaB9qFHlF0EvZ7SXJ6qytQ779opeuLSQEcUYco,8124
1060
+ mindsdb/integrations/handlers/mysql_handler/mysql_handler.py,sha256=KcxIt6OJNbSzyhaGI2TNVIZ-BXY7NMwSKIfq70EQpKg,8288
1059
1061
  mindsdb/integrations/handlers/mysql_handler/requirements.txt,sha256=uDDh7neCc41qZxjCFB2rpKPTSZvD58RCfa7DjZJykw0,30
1060
1062
  mindsdb/integrations/handlers/mysql_handler/settings.py,sha256=3a6VexTd2nD72WiXYG_IGeZ-n59ANggeE3X5OkdxHI8,1692
1061
1063
  mindsdb/integrations/handlers/neuralforecast_handler/__about__.py,sha256=qfziv8flt2mMSNCiZMOzXHN7karhW69QZy3rRnCdSY8,377
@@ -1117,10 +1119,10 @@ mindsdb/integrations/handlers/openai_handler/__about__.py,sha256=CHoor6pfv6jc7Lf
1117
1119
  mindsdb/integrations/handlers/openai_handler/__init__.py,sha256=2oicF7rVoEJTh-_p_7bpmh3shHYL2zZr4tPj0ZDXeCI,621
1118
1120
  mindsdb/integrations/handlers/openai_handler/constants.py,sha256=szFwNnhFO8g_XJh8DnqxlrmZh9YTkiTiCpvAI0txZak,1356
1119
1121
  mindsdb/integrations/handlers/openai_handler/creation_args.py,sha256=v1NHiz-tLvAHrcA_vIe1A6L5UbeGpHBl88XWZVgtric,342
1120
- mindsdb/integrations/handlers/openai_handler/helpers.py,sha256=Tp-4KQQTCfYl5UYGQFBbP3hiqhmfLMnQzpiaCcA8LTk,6978
1122
+ mindsdb/integrations/handlers/openai_handler/helpers.py,sha256=xEezAE-Pmxxsa878vAtO05AxBhLQkT89ShPjBwyZoEs,6843
1121
1123
  mindsdb/integrations/handlers/openai_handler/icon.svg,sha256=r5vCiNm9_nL1ZbM1e6PYcTzw9KrgC0hqWT8IAi2pFbE,2625
1122
1124
  mindsdb/integrations/handlers/openai_handler/model_using_args.py,sha256=c5NBe6RGkRGVOLhc7Ksq3M3w96Kd9KECO6T01j7VS90,76
1123
- mindsdb/integrations/handlers/openai_handler/openai_handler.py,sha256=Dx_5vrNLX02gTXERT9_oWzziDJ45EWp1EzyqIdaU8aU,48686
1125
+ mindsdb/integrations/handlers/openai_handler/openai_handler.py,sha256=z7OM8uj1keOPYzgZX2vmC5D7gDUVV7p52TIhfDxZC1s,49255
1124
1126
  mindsdb/integrations/handlers/openai_handler/requirements.txt,sha256=u06ahGd1EskIW_Yy-5Y_jNLNbN1CtF9N3ylGPPOPBLA,9
1125
1127
  mindsdb/integrations/handlers/openai_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1126
1128
  mindsdb/integrations/handlers/openai_handler/tests/test_openai_handler.py,sha256=W3b39JCQfCF_IXUS98j7KqTqIzeYne9RDba33AxM774,18651
@@ -1149,7 +1151,7 @@ mindsdb/integrations/handlers/oracle_handler/__about__.py,sha256=IIt4NVwQ52K79l7
1149
1151
  mindsdb/integrations/handlers/oracle_handler/__init__.py,sha256=9U8p9zE7yi32hWtWEQTFcVz5CSgAGlu6E9C-hPf_tBE,629
1150
1152
  mindsdb/integrations/handlers/oracle_handler/connection_args.py,sha256=6NbwAdFz7OBNIaaWH-uAF8sVcixRuRf6Srna-Mk20kk,1966
1151
1153
  mindsdb/integrations/handlers/oracle_handler/icon.svg,sha256=43yVX7g6fI4SLk9h23xsJvzLl9fMOfiKlQ4aNyQ3yxU,537
1152
- mindsdb/integrations/handlers/oracle_handler/oracle_handler.py,sha256=Ht3H9E9pPwJQa4VcTce7JhRQBQoD7VD-eHd76Znknug,11180
1154
+ mindsdb/integrations/handlers/oracle_handler/oracle_handler.py,sha256=u7aNmkzQdME35xKZipcjZP6_HuHzr9byEEeYM_Yzlug,11586
1153
1155
  mindsdb/integrations/handlers/oracle_handler/requirements.txt,sha256=6My_yqlFsKIvJvanjJc8usHiQ5Ax_rKaHrzNYNKC71c,16
1154
1156
  mindsdb/integrations/handlers/oracle_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1155
1157
  mindsdb/integrations/handlers/oracle_handler/tests/test_oracle_handler.py,sha256=TjY4cZHMPUaLyusCTTHCRGC30pXDUqqM2vEjw2UqB1Q,1064
@@ -1175,7 +1177,7 @@ mindsdb/integrations/handlers/pgvector_handler/__about__.py,sha256=f7NEmnT5v8Bhc
1175
1177
  mindsdb/integrations/handlers/pgvector_handler/__init__.py,sha256=291L7daFcaNnMUEcIjs7-U-jgOTJzEvIm2FoO43S_6Q,659
1176
1178
  mindsdb/integrations/handlers/pgvector_handler/connection_args.py,sha256=etSu8X9uvYcdG0UZP7N8NdKCywmpcMf19ZPtthZArMg,1688
1177
1179
  mindsdb/integrations/handlers/pgvector_handler/icon.svg,sha256=BPrdgXF1gRp2IBmklyYNRpdGtbi1F6Ca78V_L4ji_LE,13760
1178
- mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py,sha256=kS-PFGLzo3IWFUQSh8BdYgaF3FGs_Ux7KjpSFua5PPQ,20376
1180
+ mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py,sha256=IvIeivzzWfmCcLRpJUmNEh1LvCJKYHX0hM1CH95q0Jg,20811
1179
1181
  mindsdb/integrations/handlers/pgvector_handler/requirements.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1180
1182
  mindsdb/integrations/handlers/phoenix_handler/__about__.py,sha256=PGGn5y0Y7tn2FnY2Ru1N7yjr6KZb8IhfUoKFc7GZO9I,359
1181
1183
  mindsdb/integrations/handlers/phoenix_handler/__init__.py,sha256=dguuDcpGTUdL7KHbLPv3OLY9fmvJrQj5I_CsfmuQdKk,606
@@ -1232,7 +1234,7 @@ mindsdb/integrations/handlers/postgres_handler/__about__.py,sha256=5W3AHCv0BuvCa
1232
1234
  mindsdb/integrations/handlers/postgres_handler/__init__.py,sha256=tszm8ZCcNkHKoPDIB99A4A40dvj-Yk8PY8p35irS0tQ,606
1233
1235
  mindsdb/integrations/handlers/postgres_handler/connection_args.py,sha256=Td7_Pj2HJYVi3-yzBe-BpFfl1zAZvtDZaYh77PfdhE8,1911
1234
1236
  mindsdb/integrations/handlers/postgres_handler/icon.svg,sha256=pDl9ZZL9cGcrcGVglWMX1L1IncVv5di1b1tly1dfia4,13757
1235
- mindsdb/integrations/handlers/postgres_handler/postgres_handler.py,sha256=9Vy2KJXVGu30i2kCu0zP3acDh7je2QkqkA8nNQNEBMQ,16612
1237
+ mindsdb/integrations/handlers/postgres_handler/postgres_handler.py,sha256=0seOFkaWTqS2wulM0NDBVq8UE7uJaQS9vgS1dTyXqFs,16567
1236
1238
  mindsdb/integrations/handlers/postgres_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1237
1239
  mindsdb/integrations/handlers/postgres_handler/tests/test_postgres_handler.py,sha256=IwUYXO3aVCsIunHl5cPsf1nndZj3W-wkp5naH_vPb9Q,5825
1238
1240
  mindsdb/integrations/handlers/pycaret_handler/__about__.py,sha256=Cbt3qxt8SiIhU2_cgCwQxNjrB-alortHg4VqGFY0VlQ,340
@@ -1406,9 +1408,7 @@ mindsdb/integrations/handlers/snowflake_handler/__init__.py,sha256=tPpKf8KwyX2DI
1406
1408
  mindsdb/integrations/handlers/snowflake_handler/connection_args.py,sha256=7pnJbHpbXMZwQbAS4U7LJUk8OWLLpPN2_q9IPr7wpec,1778
1407
1409
  mindsdb/integrations/handlers/snowflake_handler/icon.svg,sha256=Syi1A_eltgZH6HjPuKi8bi9Pzf8T879RfVAZnNzK0Qo,4088
1408
1410
  mindsdb/integrations/handlers/snowflake_handler/requirements.txt,sha256=iTXmeBgeK_eFwxQM-1Lpv4MCy6_Nd7RWD6FpE6P9WA8,71
1409
- mindsdb/integrations/handlers/snowflake_handler/snowflake_handler.py,sha256=5gTB-_gQZq0GCtFWqAi7S8oEWRDTgfnxwbuJa-t0FYg,14536
1410
- mindsdb/integrations/handlers/snowflake_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1411
- mindsdb/integrations/handlers/snowflake_handler/tests/test_snowflake_handler.py,sha256=2_zTKNxqbvhzwVhU9JRmv5Chhh9rulGnMfj-GVIPA60,7369
1411
+ mindsdb/integrations/handlers/snowflake_handler/snowflake_handler.py,sha256=B_QRuLXo-5YBg2294bifAd3asN_sHt8EdXVfYYsud1E,14715
1412
1412
  mindsdb/integrations/handlers/solace_handler/__about__.py,sha256=C-y1qVOGsPDdMEjUocH_juhmrpRwN2-U61sJT_lwzE0,354
1413
1413
  mindsdb/integrations/handlers/solace_handler/__init__.py,sha256=hotuL8W79n-H943a40Q94jm2S1he08VM68nTbVFIKPY,480
1414
1414
  mindsdb/integrations/handlers/solace_handler/icon.svg,sha256=rzGNiCdLWu9OJ3j8ilXrOTwRupMp3n3RQrfm2D_Nx5A,152
@@ -1540,6 +1540,14 @@ mindsdb/integrations/handlers/timescaledb_handler/__about__.py,sha256=joUHMPBAiy
1540
1540
  mindsdb/integrations/handlers/timescaledb_handler/__init__.py,sha256=ynMpLqCRlYomZEFEinXmtYYGr0DPIMQZ9HtsytOpe6c,497
1541
1541
  mindsdb/integrations/handlers/timescaledb_handler/icon.svg,sha256=sZHwvwAJ5SiTLSHhjdm_2YazVz0KEDQj-5KYR7cBTxo,6197
1542
1542
  mindsdb/integrations/handlers/timescaledb_handler/timescaledb_handler.py,sha256=24xdH6WK-EDXmRK_51J-uvsizQcveeRopEtohfgUfqU,1439
1543
+ mindsdb/integrations/handlers/togetherai_handler/__about__.py,sha256=Sj0Z65YQtkWCufv5ucIN1badPvfaMZvG8AYHqBcoabQ,348
1544
+ mindsdb/integrations/handlers/togetherai_handler/__init__.py,sha256=vYINYMgIw3ssDadFUYI3MCUHlBTzJY_J2y9vMI6H2Y8,649
1545
+ mindsdb/integrations/handlers/togetherai_handler/creation_args.py,sha256=h_45u7qld20WfzL241mtIi1l6DTRjmAEUe5pO2ABjLg,355
1546
+ mindsdb/integrations/handlers/togetherai_handler/icon.svg,sha256=_VGYB5C26lzRj1lZN1ky-WGOQez8x2zDmXNtJPyNAaQ,21743
1547
+ mindsdb/integrations/handlers/togetherai_handler/model_using_args.py,sha256=T5kGCBoy_qCq9MuiX88MoleUi8lmB4Iwyut0535lvwg,80
1548
+ mindsdb/integrations/handlers/togetherai_handler/requirements.txt,sha256=akRKyhwvLrsRKZlseLcE3aKK82dAx5Y5ARfJ3b_Nn4c,92
1549
+ mindsdb/integrations/handlers/togetherai_handler/settings.py,sha256=jCdx0RNNh0xL-wqmvfKzJEF6ugsC99eVEuGp7qJeg3w,877
1550
+ mindsdb/integrations/handlers/togetherai_handler/togetherai_handler.py,sha256=94K7ZMeEuBtofbiw-bDwHnA2YhwPTAt-llO_mTf40zE,8259
1543
1551
  mindsdb/integrations/handlers/tpot_handler/__about__.py,sha256=UnKylDgzptBz8GP0Az_AnwEtYN7tGTzSkrk8OByt9hg,335
1544
1552
  mindsdb/integrations/handlers/tpot_handler/__init__.py,sha256=In_YSefcrQXPbgqBoTR77fx9sIRpBTBpWaIlhaaHHhA,526
1545
1553
  mindsdb/integrations/handlers/tpot_handler/icon.png,sha256=j1DfF2jF1kWD3dhCET51X26QnSW9rNuLXXG7Tav3M2M,114250
@@ -1616,7 +1624,7 @@ mindsdb/integrations/handlers/web_handler/__about__.py,sha256=CxQc3_pLSKuz1AnBj6
1616
1624
  mindsdb/integrations/handlers/web_handler/__init__.py,sha256=vfphmqTz8VmQlD7fmeE3B900gkZLuQ8QWQEvYFbTUkE,504
1617
1625
  mindsdb/integrations/handlers/web_handler/icon.svg,sha256=zd0x3UwSoGfJf7Vg5eAcaR4pEtkmJMZwVsgdha2Mtrc,1385
1618
1626
  mindsdb/integrations/handlers/web_handler/requirements.txt,sha256=DGTAMisIfhU-7xWdii0CEOyiwNDYYKBTsD4F-fKnNRo,13
1619
- mindsdb/integrations/handlers/web_handler/urlcrawl_helpers.py,sha256=KHX_f-7_7mLwhxQNLUPB-WUmGBlA04FtFJb4N2jBM2c,11304
1627
+ mindsdb/integrations/handlers/web_handler/urlcrawl_helpers.py,sha256=dCBqMYKwdQdThqbxeZA0a9z--yBC5vJJ8q8MikIKA2Q,11305
1620
1628
  mindsdb/integrations/handlers/web_handler/web_handler.py,sha256=XjM_hJTTjaA2MLjX0pCJpY4gpejICjme89K63Ghrr-U,3493
1621
1629
  mindsdb/integrations/handlers/webz_handler/__about__.py,sha256=WziIvpCflTd96urD_LFndy7sGYIxqzpfeql4yOTmt_Q,331
1622
1630
  mindsdb/integrations/handlers/webz_handler/__init__.py,sha256=06qa6pqDB-83d_TkU82CNRQYpq54-mP3r6fILAMVjRw,521
@@ -1688,7 +1696,7 @@ mindsdb/integrations/libs/const.py,sha256=Pbdv7K_SvOWSwANwu4FK2S0jkJYaRnVZpfx4Se
1688
1696
  mindsdb/integrations/libs/ml_exec_base.py,sha256=lp4LGXZUfTaPfY4V44osJQfz0pq0-l3V4gc1vl4rWoc,17540
1689
1697
  mindsdb/integrations/libs/process_cache.py,sha256=Razi-ybfANk1KUdUL7X_lR1IxCBmozuc7CCg1EXaQ5s,16079
1690
1698
  mindsdb/integrations/libs/realtime_chat_handler.py,sha256=bJxlLKzYUb8tYShRUsecdubZ_E0kWxzExXK-v37gqYc,1171
1691
- mindsdb/integrations/libs/response.py,sha256=k-wCsIofWk4S3Mv6GX6sq482g_BIYF0iIMEwxYxrJ6E,3409
1699
+ mindsdb/integrations/libs/response.py,sha256=aWIzWrZ6RQkeN9-YS-iaq1q4if6YLd0icnQKBC4YvcI,5886
1692
1700
  mindsdb/integrations/libs/storage_handler.py,sha256=g4rcAD4TzmxWmEtS00235_NAnrdulIir4If6E4y_OUo,3512
1693
1701
  mindsdb/integrations/libs/vectordatabase_handler.py,sha256=NuILtarU7TSRCWidb1GWh7BxiWy-wrFHDUSFTJzvArY,18227
1694
1702
  mindsdb/integrations/libs/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1706,7 +1714,7 @@ mindsdb/integrations/libs/ml_handler_process/update_engine_process.py,sha256=ccz
1706
1714
  mindsdb/integrations/libs/ml_handler_process/update_process.py,sha256=QA3S0GK2wsbCLmTQxPvdHt2V5-hr5t_25JBRFDfvTEo,784
1707
1715
  mindsdb/integrations/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1708
1716
  mindsdb/integrations/utilities/date_utils.py,sha256=TqCyde_jbknQnrJqYIkNwEHUg-dsjRElJZHX_UicYQk,2769
1709
- mindsdb/integrations/utilities/handler_utils.py,sha256=UEgEckWFDZXLcu5AbBFrqPJuFFXgejDmDRkr6622CPc,2272
1717
+ mindsdb/integrations/utilities/handler_utils.py,sha256=r_EBkrgf6dmkHmH12ANOFIw6aS03mTeSU_tWa9p3yVc,2404
1710
1718
  mindsdb/integrations/utilities/install.py,sha256=wbg0pcIn8C8PEfjA45DmwueEZ5nX27t2YsLe1xXhC7s,5018
1711
1719
  mindsdb/integrations/utilities/pydantic_utils.py,sha256=JvB34a7XTMbA4z_vS1aURvU4PE0rNhZDkOVzb8xfRZw,6992
1712
1720
  mindsdb/integrations/utilities/query_traversal.py,sha256=XtAuZU58un1s40JMoxMZX0JzhBEqgsW95Ux1UqHGLgY,9882
@@ -1758,7 +1766,8 @@ mindsdb/integrations/utilities/rag/loaders/vector_store_loader/vector_store_load
1758
1766
  mindsdb/integrations/utilities/rag/pipelines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1759
1767
  mindsdb/integrations/utilities/rag/pipelines/rag.py,sha256=Ij91MJ0QpqocHs2vLfLO43PFZPFCyt1mvFjwvDecVU4,15551
1760
1768
  mindsdb/integrations/utilities/rag/rerankers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1761
- mindsdb/integrations/utilities/rag/rerankers/reranker_compressor.py,sha256=Ah7ApcT_HxqkwdMNmrCpqEgTgWjQDZi-bBonGJihDo0,10546
1769
+ mindsdb/integrations/utilities/rag/rerankers/base_reranker.py,sha256=dtXKri1RHsjhbfkgsKDTvrx0MedhFxc6iwlARpJDQ0c,17998
1770
+ mindsdb/integrations/utilities/rag/rerankers/reranker_compressor.py,sha256=IN7R2dtqEtqdhPQh5r62oZOII_4m_ZU-XCpnbvSqjw0,3729
1762
1771
  mindsdb/integrations/utilities/rag/retrievers/__init__.py,sha256=Kuo3AJxzHVXMxPFxGqz2AXNPzjBzyMuk2yQj9pFpOsI,128
1763
1772
  mindsdb/integrations/utilities/rag/retrievers/auto_retriever.py,sha256=ODNXqeBuDfatGQLvKvogO0aA-A5v3Z4xbCbvO5ICvt4,3923
1764
1773
  mindsdb/integrations/utilities/rag/retrievers/base.py,sha256=fomZCUibDLKg-g4_uoTWz6OlhRG-GzqdPPoAR6XyPtk,264
@@ -1776,8 +1785,11 @@ mindsdb/interfaces/agents/constants.py,sha256=xBiIyfjVBggMBm78fvrssyDJwci0T8YP01
1776
1785
  mindsdb/interfaces/agents/event_dispatch_callback_handler.py,sha256=-76yTtxTHO5AkFTtr_RvYfkdUROJHcKZx6KJDZvj_-M,1331
1777
1786
  mindsdb/interfaces/agents/langchain_agent.py,sha256=ElPKeJW7mLOEMFdJKHE7FTTMu_Lijjn6_stJRslBaHg,27743
1778
1787
  mindsdb/interfaces/agents/langfuse_callback_handler.py,sha256=-51IWB5U2_m71xx00IwSOAK6gJ2n-HD_CzbtbmEfbBQ,11598
1788
+ mindsdb/interfaces/agents/litellm_server.py,sha256=j33LqHlUt9XApMozP4mHy9iFGT1Lx7WRqKHwGfJfT8w,11366
1789
+ mindsdb/interfaces/agents/mcp_client_agent.py,sha256=9oki-GDsN1H6fYsNLBQWTMYSHGpWliYF9I5AZSuXS8U,9814
1779
1790
  mindsdb/interfaces/agents/mindsdb_chat_model.py,sha256=dtVZU3k-aXiK9AC2_ZizeFP2er_-2YVLj4YxQ189nU0,6155
1780
1791
  mindsdb/interfaces/agents/mindsdb_database_agent.py,sha256=lk7UyE7tK807GXLBDr4-b2VVFUUzDtpMx2GjVtywv3o,2459
1792
+ mindsdb/interfaces/agents/run_mcp_agent.py,sha256=4ZXhIGBu3wVIZC9Ys6vTJDxGJzLXppLLqzbg1UFanS8,8689
1781
1793
  mindsdb/interfaces/agents/safe_output_parser.py,sha256=x2G27UPT42iVjjj44vGUVNPEUDSHH3nlKJwe3GZDh9A,1605
1782
1794
  mindsdb/interfaces/chatbot/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
1783
1795
  mindsdb/interfaces/chatbot/chatbot_controller.py,sha256=nmJs8zotT88aab99FdPQLqaOSsqbqmHNpo9oK6nlBG0,14494
@@ -1796,13 +1808,13 @@ mindsdb/interfaces/database/views.py,sha256=CthbUly3OgOyFV8a-VRQwhjLh6I1LXbBUzMA
1796
1808
  mindsdb/interfaces/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1797
1809
  mindsdb/interfaces/file/file_controller.py,sha256=ebe0hEZhOHbrMhVg84XW33Jl1jUeo2uARKGp_NWBkKY,8626
1798
1810
  mindsdb/interfaces/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1799
- mindsdb/interfaces/functions/controller.py,sha256=N9gD8tLp7J19_qeIaN4dyng-0993WDRoQKqWHBq_MZ8,7428
1811
+ mindsdb/interfaces/functions/controller.py,sha256=Fsp3INjy8iSm5eyhD_kyxgDMiV7n_Y_q5LOq01kmosQ,7524
1800
1812
  mindsdb/interfaces/functions/to_markdown.py,sha256=Gs-rMBfMsdau-0FbQZpvV7_Aeg_vw9Aj25lh6SHGInE,7408
1801
1813
  mindsdb/interfaces/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1802
1814
  mindsdb/interfaces/jobs/jobs_controller.py,sha256=2-L61saLbpaQ4hAT_HepIq0DUqdUxsPuNNMkj3ZfAJk,18299
1803
1815
  mindsdb/interfaces/jobs/scheduler.py,sha256=eHBWTpZozI_AC-hKmg4p0qRoGZW8O3gEt5Y9nDhHWpw,3696
1804
1816
  mindsdb/interfaces/knowledge_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1805
- mindsdb/interfaces/knowledge_base/controller.py,sha256=kguVmuRXiECCn2UJEKxRifTiD9d9Ju0GjdKP2NF1r_c,44410
1817
+ mindsdb/interfaces/knowledge_base/controller.py,sha256=Auv3dQKHTrR4AEhqIXqtkMorXdM0FKxW9Lzgl-BcGQc,45386
1806
1818
  mindsdb/interfaces/knowledge_base/utils.py,sha256=KGIbP8n5bx6JpL0jtFGeGd3lvDkFmZQnpIG9VbUmStU,1074
1807
1819
  mindsdb/interfaces/knowledge_base/preprocessing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1808
1820
  mindsdb/interfaces/knowledge_base/preprocessing/constants.py,sha256=iW5q65albIfTT1ZuxNceJ8o7yrOcttCH1Kx4Vdo-iPY,296
@@ -1813,19 +1825,20 @@ mindsdb/interfaces/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
1813
1825
  mindsdb/interfaces/model/functions.py,sha256=TlZfCASNDtwEXXTb38ma5fgWmn2f0XuWPQ5m8wufqks,4904
1814
1826
  mindsdb/interfaces/model/model_controller.py,sha256=o84VBCAqr6ecfl9ms0enetZxC30w7pGHzfYkrkZ0x_U,20306
1815
1827
  mindsdb/interfaces/query_context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1816
- mindsdb/interfaces/query_context/context_controller.py,sha256=JfYpmHI2hvi4m-pogKeFYuuooCjAAyjguSSzcXp1-R0,16291
1828
+ mindsdb/interfaces/query_context/context_controller.py,sha256=PlC4skYCQpEbNKkbcNgcPhSmf4uT03We58FYbGtUMvE,17564
1817
1829
  mindsdb/interfaces/query_context/last_query.py,sha256=LbZwvPtDYJFVBRonJr6RgGZyCbCNGcJJdhS22pW_YE0,9331
1830
+ mindsdb/interfaces/query_context/query_task.py,sha256=8lvk48tEPMyXJDtML7aKuVyU54UhXqbHy5jwpPnn-0w,727
1818
1831
  mindsdb/interfaces/skills/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
1819
1832
  mindsdb/interfaces/skills/retrieval_tool.py,sha256=V4ElVmbkh1e9J9_Ro3-Re9Js-dhUcFJkTmbUa8vi9Gc,8752
1820
- mindsdb/interfaces/skills/skill_tool.py,sha256=lUfQXxcLlEgjVe30knPjE2klWDlChHgCcBYlEJYy9Hw,12992
1833
+ mindsdb/interfaces/skills/skill_tool.py,sha256=jRZmgGiPMS5R7sanW_XtfT-hS_Y_7kJt67-VeGvpnds,13305
1821
1834
  mindsdb/interfaces/skills/skills_controller.py,sha256=cNblNQNOJXQkuXq0q2g7-OmAFG-QoBbRign6gHt6NLg,6319
1822
- mindsdb/interfaces/skills/sql_agent.py,sha256=ResOUpthG2o7C6w5qNyvQeCoT7fuaExQsRQA9TzKXVE,14619
1835
+ mindsdb/interfaces/skills/sql_agent.py,sha256=pLC4qeVsA4j6O3UJ4kHbe6_hF-NqRxYiI947d2uZ68w,14995
1823
1836
  mindsdb/interfaces/skills/custom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1824
1837
  mindsdb/interfaces/skills/custom/text2sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1825
1838
  mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_tool.py,sha256=n7r08idG9Qaa0C41HokUf-w72yyACoINOFKGgtNVHLA,1375
1826
1839
  mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_toolkit.py,sha256=08WyJXYJ_hP7JYLvwaSWuJN6Q1PLgIAvh7bcgsV-0XU,7962
1827
1840
  mindsdb/interfaces/storage/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
1828
- mindsdb/interfaces/storage/db.py,sha256=lskAyQMjMMdz0_b8dRW8bZ_Ii4kMjjZiKlrp3H7QvG4,20342
1841
+ mindsdb/interfaces/storage/db.py,sha256=tIbODmfE6YkFup2PfVhT6lgTWNkwkJK42evSNWn52Ns,20309
1829
1842
  mindsdb/interfaces/storage/fs.py,sha256=4Nyo-h23UtZc2nz_LWyVzboC_e1jlU58aph1_en8MdE,21155
1830
1843
  mindsdb/interfaces/storage/json.py,sha256=xwMYcn7pJN5Ou1QsBJYBmTX5u2bbUr62l2cWtAQS1cA,5066
1831
1844
  mindsdb/interfaces/storage/model_fs.py,sha256=kYJ1-FU7sOh7nEO10_gh1P9YfIbU8VITx5Y6K9K-NLE,11297
@@ -1833,8 +1846,8 @@ mindsdb/interfaces/tabs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
1833
1846
  mindsdb/interfaces/tabs/tabs_controller.py,sha256=TZltOnr0DAjhrW2u-bzIVfjPHgh4bxdkitExr9sCNYE,8761
1834
1847
  mindsdb/interfaces/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1835
1848
  mindsdb/interfaces/tasks/task.py,sha256=KQZ9rtD7mE6qeCtA14arMIP-gEnPzMBvIUvmGSzqTH8,401
1836
- mindsdb/interfaces/tasks/task_monitor.py,sha256=OD_XRuPDcXEkt0KYg4mqyJW5wwIZ4FZhfW__k3sB49s,3863
1837
- mindsdb/interfaces/tasks/task_thread.py,sha256=G2Ouh75uacCdOnGuMBKmHjFGWdCIbilRkCAUKz7Py6M,1666
1849
+ mindsdb/interfaces/tasks/task_monitor.py,sha256=zGRUEUDM7b1A5oCUBYsotpYyEuyfFg7ns-remRSLnbY,4004
1850
+ mindsdb/interfaces/tasks/task_thread.py,sha256=RJfPF8BUpwS95M-ytDyq35-1RUp2_Q4K3Vb08TYZCLg,1924
1838
1851
  mindsdb/interfaces/triggers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1839
1852
  mindsdb/interfaces/triggers/trigger_task.py,sha256=hfNl2aNYSx7WvGQOE4l70mQLpUUqJTAmFgXsHH0mijI,2928
1840
1853
  mindsdb/interfaces/triggers/triggers_controller.py,sha256=tmyaI9Pi-EUkaoN5jtRc0aGa_OgDfRRuag0-7mz-VgU,5523
@@ -1903,12 +1916,13 @@ mindsdb/migrations/versions/2025-02-10_6ab9903fc59a_del_log_table.py,sha256=V46G
1903
1916
  mindsdb/migrations/versions/2025-02-14_4521dafe89ab_added_encrypted_content_to_json_storage.py,sha256=ypMSb0IApik_sjmG1ibII6fRH4KdWHFaLQHQro0mgV8,883
1904
1917
  mindsdb/migrations/versions/2025-02-19_11347c213b36_added_metadata_to_projects.py,sha256=5I6Zs75EzHCAEvRPbjnCEhgT-YfXJU1fHR4GeZxMyVY,1087
1905
1918
  mindsdb/migrations/versions/2025-03-21_fda503400e43_queries.py,sha256=rZ0oj2DTLxz4sRWVElZ4YfSzEK19fIcLuRfS_3LX0rY,1418
1919
+ mindsdb/migrations/versions/2025-04-22_53502b6d63bf_query_database.py,sha256=z_RcbWyUz88jc-qFS--G49Cyfb5xY0-fH7aI9r5_2qg,633
1906
1920
  mindsdb/migrations/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1907
1921
  mindsdb/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1908
1922
  mindsdb/utilities/auth.py,sha256=nfC8oqvaN3GAATc_LeHJ34Kg3PYfyfJ-KI6TN_fOB48,2568
1909
1923
  mindsdb/utilities/cache.py,sha256=nkfEt8Pw5H_8sPNXMaS2SZCC3NrEMi486K8m61zqu-s,7590
1910
- mindsdb/utilities/config.py,sha256=Sp8-RXEozUpvEeCzpFnr6SEXfBUOk3fSv8vZcj5MPQ4,21249
1911
- mindsdb/utilities/context.py,sha256=LyKNgtavQnAfZpaPHINhrA_9L_SjfURUBD9fZNtuQMQ,1813
1924
+ mindsdb/utilities/config.py,sha256=ONzy4_Eb-BDkNkSmbi5uJn-9rNzIG-hVcPioNumZuuY,22206
1925
+ mindsdb/utilities/context.py,sha256=eLuRvHTwp8ysEr_zqAwdLfHNcBEdHvjjAN5xL_gMoRM,1842
1912
1926
  mindsdb/utilities/context_executor.py,sha256=OcJu-FgHZUmtAa_jOfXtwr7LPH3Vw2FPPJlx_9cWi7w,1945
1913
1927
  mindsdb/utilities/exception.py,sha256=q-9cwMLmQvuPpwdjRG0xNZ23z9cxHSfyT2295Rk6waA,1034
1914
1928
  mindsdb/utilities/fs.py,sha256=1ezB-EkY-qhIBBC_qRUAn79D0CbxCyVDfEdrY2pp1JA,4657
@@ -1920,7 +1934,7 @@ mindsdb/utilities/partitioning.py,sha256=EnFkEIfPMj2_uH7llOQqzjVrbGO2g0AzH2vQWPA
1920
1934
  mindsdb/utilities/ps.py,sha256=vsY7119OJGYd_n1FXT_FuMTfUL3dVr3WiTRyASaGD00,2339
1921
1935
  mindsdb/utilities/security.py,sha256=Mdj3c9Y2BFiEmwKY7J-yrbYdQ6oMgWENPE1XIu4tidk,1506
1922
1936
  mindsdb/utilities/sentry.py,sha256=PMI55LbYvCi8NLmI3QgCNL1M8bymVr8J4JBTywAl1WE,2420
1923
- mindsdb/utilities/starters.py,sha256=W-jEYCchUw2lrI88joA17OvUijHyjYF4b3hDrsuktm4,955
1937
+ mindsdb/utilities/starters.py,sha256=S9GXhgGCAgqyvxxP-Fqj_LCTRqAK5FdNyVi8Ele6ywE,1104
1924
1938
  mindsdb/utilities/utils.py,sha256=RZcPZtM5o1PPYOQmooHSTDn2yP909LGKm9whjVzTr28,1089
1925
1939
  mindsdb/utilities/wizards.py,sha256=vlWb50BSmBomj4jMGVc-DABx88GGAaWWqZf8RxA6O-0,1708
1926
1940
  mindsdb/utilities/hooks/__init__.py,sha256=HDPLuCxND4GUj5biGVfYeCmMZipMIyTG5WCOU3k654E,796
@@ -1941,8 +1955,8 @@ mindsdb/utilities/profiler/__init__.py,sha256=d4VXl80uSm1IotR-WwbBInPmLmACiK0Azx
1941
1955
  mindsdb/utilities/profiler/profiler.py,sha256=KCUtOupkbM_nCoof9MtiuhUzDGezx4a4NsBX6vGWbPA,3936
1942
1956
  mindsdb/utilities/render/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1943
1957
  mindsdb/utilities/render/sqlalchemy_render.py,sha256=6NqOcfz19dhd0PEyNfOtNHsBt1fGjq2E3nFNUad5HOk,31444
1944
- mindsdb-25.4.3.2.dist-info/licenses/LICENSE,sha256=ziqdjujs6WDn-9g3t0SISjHCBc2pLRht3gnRbQoXmIs,5804
1945
- mindsdb-25.4.3.2.dist-info/METADATA,sha256=v0znfXZ7JA2O2lFTbl_7WAnd5yojvc3GoC2wokwzmfI,42147
1946
- mindsdb-25.4.3.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
1947
- mindsdb-25.4.3.2.dist-info/top_level.txt,sha256=10wPR96JDf3hM8aMP7Fz0lDlmClEP480zgXISJKr5jE,8
1948
- mindsdb-25.4.3.2.dist-info/RECORD,,
1958
+ mindsdb-25.4.5.0.dist-info/licenses/LICENSE,sha256=ziqdjujs6WDn-9g3t0SISjHCBc2pLRht3gnRbQoXmIs,5804
1959
+ mindsdb-25.4.5.0.dist-info/METADATA,sha256=s4FYLBkRofGLjgwGnRLvH-MNIRUIDYoSK6VdUHFJcG0,42360
1960
+ mindsdb-25.4.5.0.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
1961
+ mindsdb-25.4.5.0.dist-info/top_level.txt,sha256=10wPR96JDf3hM8aMP7Fz0lDlmClEP480zgXISJKr5jE,8
1962
+ mindsdb-25.4.5.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,230 +0,0 @@
1
- import os
2
- import pytest
3
- import snowflake
4
- import pandas as pd
5
- import snowflake.connector
6
- from mindsdb.integrations.handlers.snowflake_handler.snowflake_handler import SnowflakeHandler
7
- from mindsdb.integrations.libs.response import (
8
- HandlerResponse as Response,
9
- RESPONSE_TYPE,
10
- )
11
-
12
- HANDLER_KWARGS = {
13
- "connection_data": {
14
- "account": os.environ.get("MDB_TEST_SNOWFLAKE_ACCOUNT"),
15
- "user": os.environ.get("MDB_TEST_SNOWFLAKE_USER"),
16
- "password": os.environ.get("MDB_TEST_SNOWFLAKE_PASSWORD"),
17
- "database": os.environ.get("MDB_TEST_SNOWFLAKE_DATABASE"),
18
- "schema": os.environ.get("MDB_TEST_SNOWFLAKE_SCHEMA", "PUBLIC"),
19
- }
20
- }
21
-
22
-
23
- @pytest.fixture(scope="class")
24
- def snowflake_handler():
25
- """
26
- Create a SnowflakeHandler instance for testing.
27
- """
28
-
29
- seed_db()
30
- handler = SnowflakeHandler("test_snowflake_handler", **HANDLER_KWARGS)
31
- yield handler
32
- handler.disconnect()
33
-
34
-
35
- def seed_db():
36
- """
37
- Seed the test DB by running the queries in the seed.sql file.
38
- """
39
-
40
- # Connect to the SNOWFLAKE database to run seed queries
41
- conn_info = HANDLER_KWARGS["connection_data"].copy()
42
- conn_info["database"] = "SNOWFLAKE"
43
- db = snowflake.connector.connect(**conn_info)
44
-
45
- cursor = db.cursor()
46
- with open("mindsdb/integrations/handlers/snowflake_handler/tests/seed.sql", "r") as f:
47
- for line in f.readlines():
48
- cursor.execute(line)
49
- cursor.close()
50
- db.close()
51
-
52
-
53
- def check_valid_response(res):
54
- """
55
- Utility function to check if the response is valid.
56
- """
57
-
58
- if res.resp_type == RESPONSE_TYPE.TABLE:
59
- assert res.data_frame is not None, "expected to have some data, but got None"
60
- assert (
61
- res.error_code == 0
62
- ), f"expected to have zero error_code, but got {res.error_code}"
63
- assert (
64
- res.error_message is None
65
- ), f"expected to have None in error message, but got {res.error_message}"
66
-
67
-
68
- def get_table_names(snowflake_handler):
69
- """
70
- Utility function to get the table names from the Snowflake account.
71
- """
72
-
73
- res = snowflake_handler.get_tables()
74
- tables = res.data_frame
75
-
76
- assert tables is not None, "expected to have some tables in the db, but got None"
77
- assert (
78
- "table_name" in tables
79
- ), f"expected to get 'table_name' column in the response:\n{tables}"
80
-
81
- return list(tables["table_name"])
82
-
83
-
84
- @pytest.mark.usefixtures("snowflake_handler")
85
- class TestSnowflakeHandlerConnect:
86
- def test_connect(self, snowflake_handler):
87
- """
88
- Tests the `connect` method to ensure it connects to the Snowflake account.
89
- """
90
-
91
- snowflake_handler.connect()
92
- assert snowflake_handler.is_connected, "the handler has failed to connect"
93
-
94
- def test_check_connection(self, snowflake_handler):
95
- """
96
- Tests the `check_connection` method to verify that it returns a StatusResponse object and accurately reflects the connection status.
97
- """
98
-
99
- res = snowflake_handler.check_connection()
100
- assert res.success, res.error_message
101
-
102
-
103
- @pytest.mark.usefixtures("snowflake_handler")
104
- class TestSnowflakeHandlerTables:
105
- table_for_creation = "TEST_MDB"
106
-
107
- def test_get_tables(self, snowflake_handler):
108
- """
109
- Tests the `get_tables` method to confirm it correctly calls `native_query` with the appropriate SQL commands.
110
- """
111
-
112
- res = snowflake_handler.get_tables()
113
- assert res.type == RESPONSE_TYPE.TABLE, "expected a TABLE"
114
- assert len(res.data_frame) > 0, "expected > O columns"
115
-
116
- tables = res.data_frame
117
-
118
- assert (
119
- tables is not None
120
- ), "expected to have some tables in the db, but got None"
121
- assert (
122
- "table_name" in tables
123
- ), f"expected to get 'table_name' in the response but got: {tables}"
124
- assert (
125
- "TEST" in tables["table_name"].values
126
- ), "expected to have 'test' in the response."
127
-
128
- def test_get_columns(self, snowflake_handler):
129
- """
130
- Tests if the `get_columns` method correctly constructs the SQL query and if it calls `native_query` with the correct query.
131
- """
132
-
133
- res = snowflake_handler.get_columns("TEST")
134
- assert res.type == RESPONSE_TYPE.TABLE, "expected a TABLE"
135
- assert len(res.data_frame) > 0, "expected > O columns"
136
-
137
- views = res.data_frame
138
-
139
- expected_columns = {
140
- "Field": ["COL_ONE", "COL_FOUR", "COL_TWO", "COL_THREE"],
141
- "Type": ["NUMBER", "TEXT", "NUMBER", "FLOAT"],
142
- }
143
- expected_df = pd.DataFrame(expected_columns)
144
-
145
- # Sort both DataFrames by all columns before comparing
146
- views = views.sort_values(by=list(res.data_frame.columns)).reset_index(drop=True)
147
- expected_df = expected_df.sort_values(by=list(expected_df.columns)).reset_index(drop=True)
148
-
149
- assert views.equals(
150
- expected_df
151
- ), "response does not contain the expected columns"
152
-
153
- def test_create_table(self, snowflake_handler):
154
- """
155
- Tests a table creation query to ensure it creates a table in the Snowflake account.
156
- """
157
-
158
- query = f"""
159
- CREATE TABLE IF NOT EXISTS {self.table_for_creation} (
160
- test_col INT
161
- );
162
- """
163
- res = snowflake_handler.native_query(query)
164
- check_valid_response(res)
165
-
166
- tables = get_table_names(snowflake_handler)
167
-
168
- assert (
169
- self.table_for_creation in tables
170
- ), f"expected to have {self.table_for_creation} in database, but got: {tables}"
171
-
172
- def test_drop_table(self, snowflake_handler):
173
- """
174
- Tests a table drop query to ensure it drops a table in the Snowflake account.
175
- """
176
-
177
- query = f"DROP TABLE IF EXISTS {self.table_for_creation}"
178
- res = snowflake_handler.native_query(query)
179
- check_valid_response(res)
180
-
181
- tables = get_table_names(snowflake_handler)
182
-
183
- assert self.table_for_creation not in tables
184
-
185
-
186
- @pytest.mark.usefixtures("snowflake_handler")
187
- class TestSnowflakeHandlerQuery:
188
- def test_select_native_query(self, snowflake_handler):
189
- """
190
- Tests the `native_query` method to ensure it executes a SQL query using a mock cursor and returns a Response object.
191
- """
192
-
193
- query = "SELECT * FROM test"
194
- res = snowflake_handler.native_query(query)
195
-
196
- assert type(res) is Response
197
- assert res.resp_type == RESPONSE_TYPE.TABLE
198
-
199
- expected_data = {
200
- "COL_ONE": [1, 2, 3],
201
- "COL_TWO": [-1, -2, -3],
202
- "COL_THREE": [0.1, 0.2, 0.3],
203
- "COL_FOUR": ["A", "B", "C"],
204
- }
205
- expected_df = pd.DataFrame(expected_data)
206
-
207
- assert res.data_frame.equals(
208
- expected_df
209
- ), "response does not contain the expected data"
210
-
211
- def test_select_query(self, snowflake_handler):
212
- """
213
- Tests the `query` method to ensure it executes a SQL query and returns a Response object.
214
- """
215
-
216
- limit = 3
217
- query = "SELECT * FROM test"
218
- res = snowflake_handler.query(query)
219
- check_valid_response(res)
220
-
221
- got_rows = res.data_frame.shape[0]
222
- want_rows = limit
223
-
224
- assert (
225
- got_rows == want_rows
226
- ), f"expected to have {want_rows} rows in response but got: {got_rows}"
227
-
228
-
229
- if __name__ == "__main__":
230
- pytest.main([__file__])