MindsDB 25.3.1.0__py3-none-any.whl → 25.3.3.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 (30) hide show
  1. mindsdb/__about__.py +1 -1
  2. mindsdb/__main__.py +1 -2
  3. mindsdb/api/executor/sql_query/steps/union_step.py +21 -24
  4. mindsdb/api/http/gui.py +5 -4
  5. mindsdb/api/http/initialize.py +19 -19
  6. mindsdb/integrations/handlers/github_handler/generate_api.py +228 -0
  7. mindsdb/integrations/handlers/github_handler/github_handler.py +15 -8
  8. mindsdb/integrations/handlers/github_handler/requirements.txt +1 -1
  9. mindsdb/integrations/handlers/jira_handler/__init__.py +1 -0
  10. mindsdb/integrations/handlers/jira_handler/jira_handler.py +22 -80
  11. mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py +3 -3
  12. mindsdb/integrations/handlers/redshift_handler/redshift_handler.py +1 -0
  13. mindsdb/integrations/handlers/salesforce_handler/requirements.txt +1 -1
  14. mindsdb/integrations/handlers/salesforce_handler/salesforce_handler.py +20 -25
  15. mindsdb/integrations/handlers/salesforce_handler/salesforce_tables.py +2 -2
  16. mindsdb/integrations/handlers/slack_handler/slack_handler.py +2 -1
  17. mindsdb/integrations/handlers/timescaledb_handler/timescaledb_handler.py +11 -6
  18. mindsdb/integrations/libs/api_handler_generator.py +583 -0
  19. mindsdb/integrations/libs/ml_handler_process/learn_process.py +9 -3
  20. mindsdb/utilities/config.py +1 -1
  21. mindsdb/utilities/render/sqlalchemy_render.py +11 -5
  22. {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.3.0.dist-info}/METADATA +219 -220
  23. {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.3.0.dist-info}/RECORD +26 -28
  24. {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.3.0.dist-info}/WHEEL +1 -1
  25. mindsdb/integrations/handlers/jira_handler/jira_table.py +0 -172
  26. mindsdb/integrations/handlers/jira_handler/requirements.txt +0 -1
  27. mindsdb/integrations/handlers/timescaledb_handler/tests/__init__.py +0 -0
  28. mindsdb/integrations/handlers/timescaledb_handler/tests/test_timescaledb_handler.py +0 -47
  29. {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.3.0.dist-info}/LICENSE +0 -0
  30. {mindsdb-25.3.1.0.dist-info → mindsdb-25.3.3.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- mindsdb/__about__.py,sha256=GbHD_Ez6vYgMQy6NvdycomymgDUng-r6k-Ye0LsKkh0,444
1
+ mindsdb/__about__.py,sha256=7xE5LpjKTOw5WXoWMuiZAy5WT1KosaIDK7yxpF7dIEk,444
2
2
  mindsdb/__init__.py,sha256=fZopLiAYa9MzMZ0d48JgHc_LddfFKDzh7n_8icsjrVs,54
3
- mindsdb/__main__.py,sha256=rW-_mLgFu5UGtHY3PY0svt8M8l62DVVQpACnVM7qwLo,21827
3
+ mindsdb/__main__.py,sha256=OOvGVNYi17UNn66OFjRNGcgxR9JefTxLZzL3vHq3AEg,21826
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
@@ -49,15 +49,15 @@ mindsdb/api/executor/sql_query/steps/prepare_steps.py,sha256=IYsPxelD5WjtLIsfIxW
49
49
  mindsdb/api/executor/sql_query/steps/project_step.py,sha256=WQ23VkfWrVHKRnyy91Kh9uRI7Twb-IBvSQl2TZy_21w,2854
50
50
  mindsdb/api/executor/sql_query/steps/sql_steps.py,sha256=RXZ1L05H_MHwVNdf6qDbIStsDjG_3QxEr3wPuFtZMdM,891
51
51
  mindsdb/api/executor/sql_query/steps/subselect_step.py,sha256=o7znv6v6mbtm1mrQpJBWHQeD8s02XDKiTSXHClNJDSE,7275
52
- mindsdb/api/executor/sql_query/steps/union_step.py,sha256=BTVFZz28sGPgbwDOb7pUQxDYC3_WVOjLGBz-9eAmC60,1947
52
+ mindsdb/api/executor/sql_query/steps/union_step.py,sha256=wT_cRVE0vGFAXYcdTsm3P8TdfEgU-eHeNfFllR6OJ7U,1791
53
53
  mindsdb/api/executor/sql_query/steps/update_step.py,sha256=0MeUNsgVsK4pm2VrwM2ZrRua2JFvUHGhvzwzXRc8I1o,4563
54
54
  mindsdb/api/executor/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
55
  mindsdb/api/executor/utilities/functions.py,sha256=xUrrh2zgsP0cYNUAUDGWUXyam693NTL9nlByUAwx7nw,995
56
56
  mindsdb/api/executor/utilities/sql.py,sha256=vULbEMKN3ZB5RULqC_VPRhuROQ0_CotHYqA32Z2gKAg,6280
57
57
  mindsdb/api/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- mindsdb/api/http/gui.py,sha256=V1_SYzBvEbRfpwSaNdxdlU2ylS-OhJ8IK6p6pcHNJXo,3087
58
+ mindsdb/api/http/gui.py,sha256=Ph0Yz8G3F2D16VYN61IL6Mxc0j71dOlMn-Wu5r8N2Eg,3137
59
59
  mindsdb/api/http/gunicorn_wrapper.py,sha256=U11cza-mn71RcLcJZOYwo2Aee3fRIhAYQxby_FF6_Yc,534
60
- mindsdb/api/http/initialize.py,sha256=mjeQLszyfSXkbD_EVzrvbQp0w01Jl-OwyRlV8Wz-8_U,16121
60
+ mindsdb/api/http/initialize.py,sha256=pWQCv7YicvU7rmqh0w5r-12iWHOtdNChKWID-bxzvXU,16174
61
61
  mindsdb/api/http/start.py,sha256=3F2iob1EHNh9cCeuxD1RjlVp0wnRw-ybh7lU5KaYGK8,2350
62
62
  mindsdb/api/http/utils.py,sha256=nWP2HxeS0Ami0VSFCyoWyhLsz52mRaYkylQCKzH6d7c,1155
63
63
  mindsdb/api/http/namespaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -648,10 +648,11 @@ mindsdb/integrations/handlers/gcs_handler/requirements.txt,sha256=zLZXjAKF7BzZXl
648
648
  mindsdb/integrations/handlers/github_handler/__about__.py,sha256=bDVOGS37C6HVRgSOekhxUcvW2Eg0Z5k2bq558mUM07M,339
649
649
  mindsdb/integrations/handlers/github_handler/__init__.py,sha256=ov-CvC4-1IbwvuKykY7i3wJxHnYenbU8KtNZUSRzB-0,629
650
650
  mindsdb/integrations/handlers/github_handler/connection_args.py,sha256=jnJKzK-5UI5-GZVh57iWaYXkAlhnc8p_4vUn357wXow,911
651
- mindsdb/integrations/handlers/github_handler/github_handler.py,sha256=EKK1e0fOQsvZAyas0ZT8cjFDyhtXdAwlNOmR6QVAcpo,3746
651
+ mindsdb/integrations/handlers/github_handler/generate_api.py,sha256=GRIhxpUKQ_zazZDWqiUWu_fdXOztKF6c4ne1AgjE3qg,7089
652
+ mindsdb/integrations/handlers/github_handler/github_handler.py,sha256=6Xk5piMuafTvfPGvJ5U0WabE4W_Je75nZVUlfzMeRvE,3795
652
653
  mindsdb/integrations/handlers/github_handler/github_tables.py,sha256=ICt2HmrE0TSI_dEFgVMA00INoL5z5jhA8aKH9C_EiiA,30970
653
654
  mindsdb/integrations/handlers/github_handler/icon.svg,sha256=c1j3IrEwYsGXPwW-hjZDpOceLhVCW_0tT8Aba5PdF5c,1198
654
- mindsdb/integrations/handlers/github_handler/requirements.txt,sha256=ggn1M2VGEZcJPTW2vei8pt2sHD5Iifca4oQ13CyMHqY,8
655
+ mindsdb/integrations/handlers/github_handler/requirements.txt,sha256=BJz2OYblSD2RZAV7csj2UIyRfuSQmstGWB3flUgFOk4,16
655
656
  mindsdb/integrations/handlers/gitlab_handler/__about__.py,sha256=2uH49-_UriKLYrfBa8yIU6j1L9Bxpyp5Gqm7zsTT7eA,341
656
657
  mindsdb/integrations/handlers/gitlab_handler/__init__.py,sha256=MleI0P8FKMYzbzd_XPkTbCjT1_Ub21hreu56QhXQuy8,481
657
658
  mindsdb/integrations/handlers/gitlab_handler/gitlab_handler.py,sha256=fSj7r7irmC2WEOWGKM9An3V-gs-U1Ub5HommbwPdBDs,2575
@@ -834,11 +835,9 @@ mindsdb/integrations/handlers/intercom_handler/icon.svg,sha256=7_xPA2UKXxXmYfsb0
834
835
  mindsdb/integrations/handlers/intercom_handler/intercom_handler.py,sha256=_B0jxBo7Cso2o6pzmmycrFMaB6cJpCdYHMxRLPeGMO4,3726
835
836
  mindsdb/integrations/handlers/intercom_handler/intercom_tables.py,sha256=GKEJEhujvyWLLE326yOj-pECujnZV1cZwR65N3LBO-I,4953
836
837
  mindsdb/integrations/handlers/jira_handler/__about__.py,sha256=qP5rGBzzyFBTJnGNCeyOjiBlzfYjt26PU6bw_8MJQOQ,337
837
- mindsdb/integrations/handlers/jira_handler/__init__.py,sha256=Hsc-LAL8aLWwwjZ1D6k_vI_2L21-XET2sSuf0Pg-ga4,508
838
+ mindsdb/integrations/handlers/jira_handler/__init__.py,sha256=-WxcLvQvLWii6lNY6-nlNwwkMBSMg8n97pleTAflrQY,509
838
839
  mindsdb/integrations/handlers/jira_handler/icon.svg,sha256=mv8Ee-sh3YbNrGHgdQdgazMICVjU1StIu1Y41H9SjRc,1246
839
- mindsdb/integrations/handlers/jira_handler/jira_handler.py,sha256=kftB6xNJ-w5cXR2EPv2GzOEYMue6qFCyD9QqLrZ1jiQ,3659
840
- mindsdb/integrations/handlers/jira_handler/jira_table.py,sha256=ttTbNLGNdo_-Pxx-kZ7f31ok990tk16ClGOaqcdRgV4,5886
841
- mindsdb/integrations/handlers/jira_handler/requirements.txt,sha256=uGqoPIycab1Q50-NoN8vHp7TdzfHVamy9_t1RvONbog,21
840
+ mindsdb/integrations/handlers/jira_handler/jira_handler.py,sha256=UXlwCX728lR_YZg4ipb7hkCyUcH710nIpPirR7s_xdA,2266
842
841
  mindsdb/integrations/handlers/kinetica_handler/__about__.py,sha256=t4T3AR68hK91GASSzoP8aWSbbtmszFC0-i7Nb8UVIgs,344
843
842
  mindsdb/integrations/handlers/kinetica_handler/__init__.py,sha256=xGpX3Z4sE32AqOPHJ09Vhh-9tvjusZACBCAUwTv8hDI,683
844
843
  mindsdb/integrations/handlers/kinetica_handler/connection_args.py,sha256=3AaekEw24nX7mmRsqrYfs0M4jCVQ4VvdRHQDFRBosxs,1682
@@ -1170,7 +1169,7 @@ mindsdb/integrations/handlers/pgvector_handler/__about__.py,sha256=f7NEmnT5v8Bhc
1170
1169
  mindsdb/integrations/handlers/pgvector_handler/__init__.py,sha256=291L7daFcaNnMUEcIjs7-U-jgOTJzEvIm2FoO43S_6Q,659
1171
1170
  mindsdb/integrations/handlers/pgvector_handler/connection_args.py,sha256=etSu8X9uvYcdG0UZP7N8NdKCywmpcMf19ZPtthZArMg,1688
1172
1171
  mindsdb/integrations/handlers/pgvector_handler/icon.svg,sha256=BPrdgXF1gRp2IBmklyYNRpdGtbi1F6Ca78V_L4ji_LE,13760
1173
- mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py,sha256=U7bY7Aogz4-gKA-DH6TYfLU4UgYTf162noZ9BsJjJZY,19356
1172
+ mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py,sha256=PSxJdnnTpSGAdxrGwq_X17w01gSvjarjFZj84XZC7UU,19384
1174
1173
  mindsdb/integrations/handlers/pgvector_handler/requirements.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1175
1174
  mindsdb/integrations/handlers/phoenix_handler/__about__.py,sha256=PGGn5y0Y7tn2FnY2Ru1N7yjr6KZb8IhfUoKFc7GZO9I,359
1176
1175
  mindsdb/integrations/handlers/phoenix_handler/__init__.py,sha256=dguuDcpGTUdL7KHbLPv3OLY9fmvJrQj5I_CsfmuQdKk,606
@@ -1285,7 +1284,7 @@ mindsdb/integrations/handlers/redshift_handler/__about__.py,sha256=l9Ri3bz7eW3C5
1285
1284
  mindsdb/integrations/handlers/redshift_handler/__init__.py,sha256=CwcbbRYbQLXROfpRN3KOjqle2oEfOVkB1y-4h2HUOTs,631
1286
1285
  mindsdb/integrations/handlers/redshift_handler/connection_args.py,sha256=je_PzZnNCR5goeNyZY1Tt_0mPQmGUiU_5lCw-lEBxwc,1676
1287
1286
  mindsdb/integrations/handlers/redshift_handler/icon.svg,sha256=iIsJ28OGHPtST21OT4_bNoGt48ORHDPdnNGRYmrDPtQ,765
1288
- mindsdb/integrations/handlers/redshift_handler/redshift_handler.py,sha256=kX1HduXzHEU6GpZCPdDbEP_xJh2c-a8NHNYDElqLct8,2151
1287
+ mindsdb/integrations/handlers/redshift_handler/redshift_handler.py,sha256=AgwJbVaUjPgzHIqt0ZzsMW5vmH7mKrbRxLqIYoi_tHo,2190
1289
1288
  mindsdb/integrations/handlers/redshift_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1290
1289
  mindsdb/integrations/handlers/redshift_handler/tests/test_redshift_handler.py,sha256=dNQfm--1S8v-SPfAbS9VGuY7T8M97ELhwL9lxJ3zUNU,5523
1291
1290
  mindsdb/integrations/handlers/replicate_handler/__about__.py,sha256=2_18jFKOFO_515IYxchEJYQG77sR5MJTvOPUfZ_pjnU,349
@@ -1323,9 +1322,9 @@ mindsdb/integrations/handlers/salesforce_handler/__about__.py,sha256=WLr4oUXEPsa
1323
1322
  mindsdb/integrations/handlers/salesforce_handler/__init__.py,sha256=nH_HnnS5cnDadXEy6ZiGuUPByT_JGu2Nrgx3Nzw0JCg,650
1324
1323
  mindsdb/integrations/handlers/salesforce_handler/connection_args.py,sha256=XF20-m222AxVvK751lWKV2tb3I1WkRrmR5AJ7qV9PtI,1498
1325
1324
  mindsdb/integrations/handlers/salesforce_handler/icon.svg,sha256=sL7XX_vF5Y7gLLklV1h17MXILGYz0f79VH915DQXyV0,8594
1326
- mindsdb/integrations/handlers/salesforce_handler/requirements.txt,sha256=jPMerwJUBa5emh7WoOAwQkDxW88lk6wdLiDCCxIIbjk,14
1327
- mindsdb/integrations/handlers/salesforce_handler/salesforce_handler.py,sha256=uGPLIAbyAnB5cdei58zFniMQiGKAW6ZfIFmcWkWyeJI,6458
1328
- mindsdb/integrations/handlers/salesforce_handler/salesforce_tables.py,sha256=VV80EeBk9AboUUAJYYtuYOByglUPbsocNdKYoFV4NJ8,5080
1325
+ mindsdb/integrations/handlers/salesforce_handler/requirements.txt,sha256=JbByk_8_aqTrg45rT_tUbyDgUoDSTK7VVpgUaMen3wU,22
1326
+ mindsdb/integrations/handlers/salesforce_handler/salesforce_handler.py,sha256=vJRjGTLBE3IYWcU_TG5JV7nreSqIDxV0gNxokAMWO_g,6448
1327
+ mindsdb/integrations/handlers/salesforce_handler/salesforce_tables.py,sha256=6h7BhO8U6J0Zqil3ja3Snv98t2jeylSTrD-xWm2pkTw,5065
1329
1328
  mindsdb/integrations/handlers/sap_erp_handler/__about__.py,sha256=yXC_YavBeY0vTZvwkU4EN7DUijGMZ8m3jtQsftKwlhs,340
1330
1329
  mindsdb/integrations/handlers/sap_erp_handler/__init__.py,sha256=2rnUX-yeCkCgh4viBttHdG4o4HKJrVI3m82S8GJFCBU,531
1331
1330
  mindsdb/integrations/handlers/sap_erp_handler/api.py,sha256=tAIqeww34R0N0QyVKYhSE3NRzIDoBn8xepCZIG4tYbg,2168
@@ -1392,7 +1391,7 @@ mindsdb/integrations/handlers/slack_handler/__init__.py,sha256=1C8z9FrWQHIk2Dg5f
1392
1391
  mindsdb/integrations/handlers/slack_handler/connection_args.py,sha256=mzsx968FZZ3gVFXcTimbegcSucYcKzdRnj9FWj1SZ3s,637
1393
1392
  mindsdb/integrations/handlers/slack_handler/icon.svg,sha256=bPzub2wQkTiV8nFCoy8TCSAXxYjjg65S7jQT1_yGduM,2005
1394
1393
  mindsdb/integrations/handlers/slack_handler/requirements.txt,sha256=92G8Qt34iNKtS1FzKMKUHZp6r8CPz-3TZLn_dD9nY7M,18
1395
- mindsdb/integrations/handlers/slack_handler/slack_handler.py,sha256=2C4uvcnU83-zgodCvzJYE9mxX05kpKrj4jLV_hG7a4Y,13318
1394
+ mindsdb/integrations/handlers/slack_handler/slack_handler.py,sha256=aywMa3bryaCoTog7geFw2TvLTtzZALf0Djn6sMGORjI,13349
1396
1395
  mindsdb/integrations/handlers/slack_handler/slack_tables.py,sha256=4pkgnyICGoZhJQBWE-gDAZDR2bLm69JoFOHYSAQpbBw,28864
1397
1396
  mindsdb/integrations/handlers/slack_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1398
1397
  mindsdb/integrations/handlers/slack_handler/tests/test_slack.py,sha256=DRRHF-i5J711drntA15ZQY1KvI8GYRDXeKDFiH_alJk,883
@@ -1534,9 +1533,7 @@ mindsdb/integrations/handlers/timegpt_handler/timegpt_handler.py,sha256=rdAQhmGP
1534
1533
  mindsdb/integrations/handlers/timescaledb_handler/__about__.py,sha256=joUHMPBAiylB7Uc7sipeFVWlWDZ_wqVqyyy_MivkNFI,355
1535
1534
  mindsdb/integrations/handlers/timescaledb_handler/__init__.py,sha256=ynMpLqCRlYomZEFEinXmtYYGr0DPIMQZ9HtsytOpe6c,497
1536
1535
  mindsdb/integrations/handlers/timescaledb_handler/icon.svg,sha256=sZHwvwAJ5SiTLSHhjdm_2YazVz0KEDQj-5KYR7cBTxo,6197
1537
- mindsdb/integrations/handlers/timescaledb_handler/timescaledb_handler.py,sha256=9YZcL3JEajoehFLv96YjyRwB8IH6Y3Q4QHdcWE2RS5w,1242
1538
- mindsdb/integrations/handlers/timescaledb_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1539
- mindsdb/integrations/handlers/timescaledb_handler/tests/test_timescaledb_handler.py,sha256=6X6w-jusR76pKk0XvBwV5xZxjq8SP0tWPAw0pa10rB0,1552
1536
+ mindsdb/integrations/handlers/timescaledb_handler/timescaledb_handler.py,sha256=24xdH6WK-EDXmRK_51J-uvsizQcveeRopEtohfgUfqU,1439
1540
1537
  mindsdb/integrations/handlers/tpot_handler/__about__.py,sha256=UnKylDgzptBz8GP0Az_AnwEtYN7tGTzSkrk8OByt9hg,335
1541
1538
  mindsdb/integrations/handlers/tpot_handler/__init__.py,sha256=In_YSefcrQXPbgqBoTR77fx9sIRpBTBpWaIlhaaHHhA,526
1542
1539
  mindsdb/integrations/handlers/tpot_handler/icon.png,sha256=j1DfF2jF1kWD3dhCET51X26QnSW9rNuLXXG7Tav3M2M,114250
@@ -1679,6 +1676,7 @@ mindsdb/integrations/handlers/zotero_handler/zotero_tables.py,sha256=5uTXP3fYAQ6
1679
1676
  mindsdb/integrations/libs/__init__.py,sha256=uEz-XQLAwY2nMXc5ilEPP6cWWfo5HpO8o8UfV8JELS0,99
1680
1677
  mindsdb/integrations/libs/api_handler.py,sha256=PutrH8LuiEj7SNKb6Nl3ahaC6LieaB8VlG6RQL23w0w,13504
1681
1678
  mindsdb/integrations/libs/api_handler_exceptions.py,sha256=mw83eTmo9knpVHP1ISnudonZcBMI_Xzr77b1wXN-eu8,236
1679
+ mindsdb/integrations/libs/api_handler_generator.py,sha256=qQs12fr31g0XvMjTInopNfKiPj7pKfyuNhqqX0tCgGo,19304
1682
1680
  mindsdb/integrations/libs/base.py,sha256=fVs3nf98jfA9aH5O18ZlrGjhZuasYHwD9TrgF9fJ8Eo,12851
1683
1681
  mindsdb/integrations/libs/const.py,sha256=Pbdv7K_SvOWSwANwu4FK2S0jkJYaRnVZpfx4SexxR8c,407
1684
1682
  mindsdb/integrations/libs/ml_exec_base.py,sha256=lp4LGXZUfTaPfY4V44osJQfz0pq0-l3V4gc1vl4rWoc,17540
@@ -1696,7 +1694,7 @@ mindsdb/integrations/libs/ml_handler_process/create_validation_process.py,sha256
1696
1694
  mindsdb/integrations/libs/ml_handler_process/describe_process.py,sha256=D1FEY2C5Ht1KjiycMuplLgHhfRaw-OJylVgst6pOzpQ,4205
1697
1695
  mindsdb/integrations/libs/ml_handler_process/func_call_process.py,sha256=W29lPhV6K8g2prNR57CmyJ_t5DNG_EVnf4fhnHpGFPI,728
1698
1696
  mindsdb/integrations/libs/ml_handler_process/handlers_cacher.py,sha256=Lult730J8sPGabO4cVqXWtc9gqt_iFvTFlY7GAym1RM,771
1699
- mindsdb/integrations/libs/ml_handler_process/learn_process.py,sha256=EjMwG2Hy4N6xS3qJYwibGGhR6xsZH6L_LSkEnwlSnDE,7103
1697
+ mindsdb/integrations/libs/ml_handler_process/learn_process.py,sha256=67Pn-0Y1H-q8sDnpCtCCpaw4dynCtskalO3MbLeVyhI,7521
1700
1698
  mindsdb/integrations/libs/ml_handler_process/predict_process.py,sha256=QmThCaCy-LBVCcpzHWEecl6eWW48QJsf2HxxnwNWN0o,1346
1701
1699
  mindsdb/integrations/libs/ml_handler_process/update_engine_process.py,sha256=cczOfdAPbriukLa5lamDT4VRONjFZ9QGdlXxzOad4K8,788
1702
1700
  mindsdb/integrations/libs/ml_handler_process/update_process.py,sha256=QA3S0GK2wsbCLmTQxPvdHt2V5-hr5t_25JBRFDfvTEo,784
@@ -1900,7 +1898,7 @@ mindsdb/migrations/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
1900
1898
  mindsdb/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1901
1899
  mindsdb/utilities/auth.py,sha256=6ycLJgXySghgFdzK6emxdStElzt5aOPafjDCRR_g_q0,2336
1902
1900
  mindsdb/utilities/cache.py,sha256=6VV5BJ0EWPYK2h80KEM1ETMhw_OCgDKyU6Pejvj1s3E,7431
1903
- mindsdb/utilities/config.py,sha256=F31QINdBhkQTfEdnitKkekUHQWOU2vdQV5doNqa4Mes,20942
1901
+ mindsdb/utilities/config.py,sha256=jRyBcGUmFiHbuUzwOwbB5ufySrpUvAjg9qHkDqEMmO4,20946
1904
1902
  mindsdb/utilities/context.py,sha256=LyKNgtavQnAfZpaPHINhrA_9L_SjfURUBD9fZNtuQMQ,1813
1905
1903
  mindsdb/utilities/context_executor.py,sha256=6ByyeulMePEfRrGxR9vlKYF87R8z1wHFwc1GdfhlGCk,1946
1906
1904
  mindsdb/utilities/exception.py,sha256=q-9cwMLmQvuPpwdjRG0xNZ23z9cxHSfyT2295Rk6waA,1034
@@ -1933,9 +1931,9 @@ mindsdb/utilities/otel/metric_handlers/__init__.py,sha256=3jGsLt5KkdhqaAUUw8ALxE
1933
1931
  mindsdb/utilities/profiler/__init__.py,sha256=d4VXl80uSm1IotR-WwbBInPmLmACiK0AzxXGBA40I-0,251
1934
1932
  mindsdb/utilities/profiler/profiler.py,sha256=KCUtOupkbM_nCoof9MtiuhUzDGezx4a4NsBX6vGWbPA,3936
1935
1933
  mindsdb/utilities/render/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1936
- mindsdb/utilities/render/sqlalchemy_render.py,sha256=jVzdLD691hCs26wsUfhj6VDC8YIjL5hX0P9zNzSszH4,30311
1937
- mindsdb-25.3.1.0.dist-info/LICENSE,sha256=ziqdjujs6WDn-9g3t0SISjHCBc2pLRht3gnRbQoXmIs,5804
1938
- mindsdb-25.3.1.0.dist-info/METADATA,sha256=nKd2zruKpdFtLfVqsqAUr9iiKStVlEcJz3lRPkH_kyY,41703
1939
- mindsdb-25.3.1.0.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
1940
- mindsdb-25.3.1.0.dist-info/top_level.txt,sha256=10wPR96JDf3hM8aMP7Fz0lDlmClEP480zgXISJKr5jE,8
1941
- mindsdb-25.3.1.0.dist-info/RECORD,,
1934
+ mindsdb/utilities/render/sqlalchemy_render.py,sha256=E6_sJv9kfwOwUMurDklFOKpwplASwUBFhfknUqwbUCw,30627
1935
+ mindsdb-25.3.3.0.dist-info/LICENSE,sha256=ziqdjujs6WDn-9g3t0SISjHCBc2pLRht3gnRbQoXmIs,5804
1936
+ mindsdb-25.3.3.0.dist-info/METADATA,sha256=Ow16X8K3pHk0j_i7nAT0p56ckZKLms4S13A-2Rxuzaw,41689
1937
+ mindsdb-25.3.3.0.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
1938
+ mindsdb-25.3.3.0.dist-info/top_level.txt,sha256=10wPR96JDf3hM8aMP7Fz0lDlmClEP480zgXISJKr5jE,8
1939
+ mindsdb-25.3.3.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.2)
2
+ Generator: setuptools (76.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,172 +0,0 @@
1
- import pandas as pd
2
-
3
- from typing import List
4
-
5
- from mindsdb.integrations.libs.api_handler import APITable
6
- from mindsdb.integrations.utilities.sql_utils import extract_comparison_conditions
7
- from mindsdb.utilities import log
8
-
9
- from mindsdb_sql_parser import ast
10
-
11
- logger = log.getLogger(__name__)
12
-
13
-
14
- def flatten_json(nested_json, parent_key="", separator="."):
15
- """
16
- Recursively flattens a nested JSON object into a dictionary with dot notation keys.
17
- """
18
- items = []
19
- for k, v in nested_json.items():
20
- new_key = f"{parent_key}{separator}{k}" if parent_key else k
21
- if isinstance(v, dict):
22
- items.extend(flatten_json(v, new_key, separator=separator).items())
23
- else:
24
- items.append((new_key, v))
25
- return dict(items)
26
-
27
-
28
- class JiraProjectsTable(APITable):
29
- """Jira Projects Table implementation"""
30
-
31
- _MAX_API_RESULTS = 100
32
-
33
- def select(self, query: ast.Select) -> pd.DataFrame:
34
- """Pulls data from the Jira "get_all_project_issues" API endpoint
35
- Parameters
36
- ----------
37
- query : ast.Select
38
- Given SQL SELECT query
39
- Returns
40
- -------
41
- pd.DataFrame
42
- jira "get_all_project_issues" matching the query
43
- Raises
44
- ------
45
- ValueError
46
- If the query contains an unsupported condition
47
- """
48
- conditions = extract_comparison_conditions(query.where)
49
-
50
- if query.limit:
51
- total_results = query.limit.value
52
-
53
- issues_kwargs = {}
54
- order_by_conditions = {}
55
-
56
- if query.order_by and len(query.order_by) > 0:
57
- order_by_conditions["columns"] = []
58
- order_by_conditions["ascending"] = []
59
-
60
- for an_order in query.order_by:
61
- if an_order.field.parts[0] != "key":
62
- continue
63
- if an_order.field.parts[1] in ["reporter", "assignee", "status"]:
64
- if issues_kwargs != {}:
65
- raise ValueError(
66
- "Duplicate order conditions found for reporter,status and assignee"
67
- )
68
- issues_kwargs["sort"] = an_order.field.parts[1]
69
- issues_kwargs["direction"] = an_order.direction
70
- if an_order.field.parts[1] in self.get_columns():
71
- order_by_conditions["columns"].append(an_order.field.parts[1])
72
-
73
- if an_order.direction == "ASC":
74
- order_by_conditions["ascending"].append(True)
75
- else:
76
- order_by_conditions["ascending"].append(False)
77
- else:
78
- raise ValueError(
79
- f"Order by unknown column {an_order.field.parts[1]}"
80
- )
81
- project = self.handler.connection_data["project"]
82
- jira_project_df = self.call_jira_api(project)
83
-
84
- selected_columns = []
85
- for target in query.targets:
86
- if isinstance(target, ast.Star):
87
- selected_columns = self.get_columns()
88
- break
89
- elif isinstance(target, ast.Identifier):
90
- selected_columns.append(target.parts[-1])
91
- else:
92
- raise ValueError(f"Unknown query target {type(target)}")
93
-
94
- if len(jira_project_df) == 0:
95
- jira_project_df = pd.DataFrame([], columns=selected_columns)
96
- return jira_project_df
97
-
98
- jira_project_df.columns = self.get_columns()
99
- for col in set(jira_project_df.columns).difference(set(selected_columns)):
100
- jira_project_df = jira_project_df.drop(col, axis=1)
101
-
102
- if len(order_by_conditions.get("columns", [])) > 0:
103
- jira_project_df = jira_project_df.sort_values(
104
- by=order_by_conditions["columns"],
105
- ascending=order_by_conditions["ascending"],
106
- )
107
-
108
- if query.limit:
109
- jira_project_df = jira_project_df.head(total_results)
110
-
111
- return jira_project_df
112
-
113
- def get_columns(self) -> List[str]:
114
- """Gets all columns to be returned in pandas DataFrame responses
115
- Returns
116
- -------
117
- List[str]
118
- List of columns
119
- """
120
- return [
121
- "key",
122
- "summary",
123
- "status",
124
- "reporter",
125
- "assignee",
126
- "priority",
127
- ]
128
-
129
- def call_jira_api(self, project):
130
-
131
- jira = self.handler.connect()
132
- max_records = jira.get_project_issues_count(project)
133
- max_records = 100
134
- jql_query = self.handler.construct_jql()
135
- max_results = self._MAX_API_RESULTS
136
- start_index = 0
137
- total = 1
138
- fields = [
139
- "key",
140
- "fields.summary",
141
- "fields.status.name",
142
- "fields.reporter.displayName",
143
- "fields.assignee.displayName",
144
- "fields.priority.name",
145
- ]
146
-
147
- all_jira_issues_df = pd.DataFrame(columns=fields)
148
-
149
- while start_index <= total:
150
- results = self.handler.connect().jql(
151
- jql_query, start=start_index, limit=max_results
152
- )
153
- flattened_data = [flatten_json(item) for item in results["issues"]]
154
- df = pd.DataFrame(flattened_data)
155
- df = df[fields]
156
- start_index += max_results
157
- total = results["total"]
158
- all_jira_issues_df = pd.concat([all_jira_issues_df, df], axis=0)
159
-
160
- all_jira_issues_df = all_jira_issues_df.rename(
161
- columns={
162
- "key": "key",
163
- "fields.summary": "summary",
164
- "fields.reporter.displayName": "reporter",
165
- "fields.assignee.displayName": "assignee",
166
- "fields.priority.name": "priority",
167
- "fields.status.name": "status",
168
- },
169
- errors="ignore",
170
- )
171
-
172
- return all_jira_issues_df
@@ -1 +0,0 @@
1
- atlassian-python-api
@@ -1,47 +0,0 @@
1
- import unittest
2
- from mindsdb.integrations.handlers.timescaledb_handler.timescaledb_handler import TimeScaleDBHandler
3
- from mindsdb.api.executor.data_types.response_type import RESPONSE_TYPE
4
-
5
-
6
- class TimeScaleDBHandlerTest(unittest.TestCase):
7
- @classmethod
8
- def setUpClass(cls):
9
- cls.kwargs = {
10
- "host": "localhost",
11
- "port": 36806,
12
- "user": "USERNAME",
13
- "password": "P455W0rd",
14
- "database": "tsdb"
15
- }
16
- cls.handler = TimeScaleDBHandler('test_timescaledb_handler', connection_data=cls.kwargs)
17
-
18
- def test_0_connect(self):
19
- self.handler.connect()
20
-
21
- def test_1_drop_table(self):
22
- res = self.handler.query("DROP TABLE IF EXISTS LOVE;")
23
- assert res.type is not RESPONSE_TYPE.ERROR
24
-
25
- def test_2_create_table(self):
26
- res = self.handler.query("CREATE TABLE IF NOT EXISTS LOVE (LOVER varchar(20));")
27
- assert res.type is not RESPONSE_TYPE.ERROR
28
-
29
- def test_3_insert(self):
30
- res = self.handler.query("INSERT INTO LOVE VALUES('Hari');")
31
- assert res.type is not RESPONSE_TYPE.ERROR
32
-
33
- def test_4_get_tables(self):
34
- tables = self.handler.get_tables()
35
- assert tables.type is RESPONSE_TYPE.TABLE
36
-
37
- def test_5_select_query(self):
38
- query = "SELECT * FROM LOVE;"
39
- result = self.handler.native_query(query)
40
- assert result.type is RESPONSE_TYPE.TABLE
41
-
42
- def test_5_check_connection(self):
43
- self.handler.check_connection()
44
-
45
-
46
- if __name__ == '__main__':
47
- unittest.main()