MindsDB 1.2.9__py3-none-any.whl → 24.12.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of MindsDB might be problematic. Click here for more details.
- MindsDB-24.12.4.0.dist-info/LICENSE +199 -0
- MindsDB-24.12.4.0.dist-info/METADATA +910 -0
- MindsDB-24.12.4.0.dist-info/RECORD +1922 -0
- {MindsDB-1.2.9.dist-info → MindsDB-24.12.4.0.dist-info}/WHEEL +1 -1
- mindsdb/__about__.py +5 -5
- mindsdb/__init__.py +1 -11
- mindsdb/__main__.py +556 -0
- mindsdb/api/common/check_auth.py +42 -0
- mindsdb/api/executor/__init__.py +2 -0
- mindsdb/api/executor/command_executor.py +2047 -0
- mindsdb/api/executor/controllers/__init__.py +1 -0
- mindsdb/api/executor/controllers/session_controller.py +91 -0
- mindsdb/api/executor/data_types/answer.py +16 -0
- mindsdb/api/executor/data_types/response_type.py +8 -0
- mindsdb/api/executor/datahub/__init__.py +1 -0
- mindsdb/api/executor/datahub/classes/tables_row.py +65 -0
- mindsdb/api/executor/datahub/datanodes/__init__.py +4 -0
- mindsdb/api/executor/datahub/datanodes/datanode.py +20 -0
- mindsdb/api/executor/datahub/datanodes/information_schema_datanode.py +180 -0
- mindsdb/api/executor/datahub/datanodes/integration_datanode.py +281 -0
- mindsdb/api/executor/datahub/datanodes/mindsdb_tables.py +428 -0
- mindsdb/api/executor/datahub/datanodes/project_datanode.py +186 -0
- mindsdb/api/executor/datahub/datanodes/system_tables.py +525 -0
- mindsdb/api/executor/exceptions.py +39 -0
- mindsdb/api/executor/planner/__init__.py +5 -0
- mindsdb/api/executor/planner/exceptions.py +3 -0
- mindsdb/api/executor/planner/plan_join.py +640 -0
- mindsdb/api/executor/planner/plan_join_ts.py +384 -0
- mindsdb/api/executor/planner/query_plan.py +29 -0
- mindsdb/api/executor/planner/query_planner.py +837 -0
- mindsdb/api/executor/planner/query_prepare.py +527 -0
- mindsdb/api/executor/planner/step_result.py +19 -0
- mindsdb/api/executor/planner/steps.py +262 -0
- mindsdb/api/executor/planner/ts_utils.py +93 -0
- mindsdb/api/executor/planner/utils.py +126 -0
- mindsdb/api/executor/sql_query/result_set.py +312 -0
- mindsdb/api/executor/sql_query/sql_query.py +318 -0
- mindsdb/api/executor/sql_query/steps/__init__.py +13 -0
- mindsdb/api/executor/sql_query/steps/apply_predictor_step.py +424 -0
- mindsdb/api/executor/sql_query/steps/base.py +21 -0
- mindsdb/api/executor/sql_query/steps/delete_step.py +49 -0
- mindsdb/api/executor/sql_query/steps/fetch_dataframe.py +116 -0
- mindsdb/api/executor/sql_query/steps/insert_step.py +129 -0
- mindsdb/api/executor/sql_query/steps/join_step.py +109 -0
- mindsdb/api/executor/sql_query/steps/map_reduce_step.py +179 -0
- mindsdb/api/executor/sql_query/steps/multiple_step.py +24 -0
- mindsdb/api/executor/sql_query/steps/prepare_steps.py +59 -0
- mindsdb/api/executor/sql_query/steps/project_step.py +86 -0
- mindsdb/api/executor/sql_query/steps/sql_steps.py +41 -0
- mindsdb/api/executor/sql_query/steps/subselect_step.py +159 -0
- mindsdb/api/executor/sql_query/steps/union_step.py +56 -0
- mindsdb/api/executor/sql_query/steps/update_step.py +129 -0
- mindsdb/api/executor/utilities/functions.py +37 -0
- mindsdb/api/executor/utilities/sql.py +195 -0
- mindsdb/api/http/gui.py +94 -0
- mindsdb/api/http/gunicorn_wrapper.py +17 -0
- mindsdb/api/http/initialize.py +454 -0
- mindsdb/api/http/namespaces/agents.py +499 -0
- mindsdb/api/http/namespaces/analysis.py +117 -0
- mindsdb/api/http/namespaces/auth.py +167 -0
- mindsdb/api/http/namespaces/chatbots.py +318 -0
- mindsdb/api/http/namespaces/config.py +286 -0
- mindsdb/api/http/namespaces/configs/agents.py +3 -0
- mindsdb/api/http/namespaces/configs/analysis.py +3 -0
- mindsdb/api/http/namespaces/configs/auth.py +4 -0
- mindsdb/api/http/namespaces/configs/chatbots.py +3 -0
- mindsdb/api/http/namespaces/configs/config.py +3 -0
- mindsdb/api/http/namespaces/configs/databases.py +3 -0
- mindsdb/api/http/namespaces/configs/default.py +4 -0
- mindsdb/api/http/namespaces/configs/files.py +4 -0
- mindsdb/api/http/namespaces/configs/handlers.py +3 -0
- mindsdb/api/http/namespaces/configs/jobs.py +3 -0
- mindsdb/api/http/namespaces/configs/knowledge_bases.py +3 -0
- mindsdb/api/http/namespaces/configs/projects.py +3 -0
- mindsdb/api/http/namespaces/configs/skills.py +3 -0
- mindsdb/api/http/namespaces/configs/sql.py +3 -0
- mindsdb/api/http/namespaces/configs/tabs.py +3 -0
- mindsdb/api/http/namespaces/configs/tree.py +3 -0
- mindsdb/api/http/namespaces/configs/util.py +3 -0
- mindsdb/api/http/namespaces/configs/webhooks.py +3 -0
- mindsdb/api/http/namespaces/databases.py +394 -0
- mindsdb/api/http/namespaces/default.py +152 -0
- mindsdb/api/http/namespaces/file.py +191 -0
- mindsdb/api/http/namespaces/handlers.py +232 -0
- mindsdb/api/http/namespaces/jobs.py +99 -0
- mindsdb/api/http/namespaces/knowledge_bases.py +420 -0
- mindsdb/api/http/namespaces/models.py +297 -0
- mindsdb/api/http/namespaces/projects.py +46 -0
- mindsdb/api/http/namespaces/skills.py +170 -0
- mindsdb/api/http/namespaces/sql.py +162 -0
- mindsdb/api/http/namespaces/tab.py +131 -0
- mindsdb/api/http/namespaces/tree.py +105 -0
- mindsdb/api/http/namespaces/util.py +144 -0
- mindsdb/api/http/namespaces/views.py +153 -0
- mindsdb/api/http/namespaces/webhooks.py +29 -0
- mindsdb/api/http/start.py +67 -0
- mindsdb/api/http/utils.py +37 -0
- mindsdb/api/mongo/classes/__init__.py +5 -0
- mindsdb/api/mongo/classes/query_sql.py +18 -0
- mindsdb/api/mongo/classes/responder.py +45 -0
- mindsdb/api/mongo/classes/responder_collection.py +34 -0
- mindsdb/api/mongo/classes/scram.py +86 -0
- mindsdb/api/mongo/classes/session.py +23 -0
- mindsdb/api/mongo/functions/__init__.py +19 -0
- mindsdb/api/mongo/responders/__init__.py +73 -0
- mindsdb/api/mongo/responders/add_shard.py +13 -0
- mindsdb/api/mongo/responders/aggregate.py +90 -0
- mindsdb/api/mongo/responders/buildinfo.py +17 -0
- mindsdb/api/mongo/responders/coll_stats.py +62 -0
- mindsdb/api/mongo/responders/company_id.py +25 -0
- mindsdb/api/mongo/responders/connection_status.py +22 -0
- mindsdb/api/mongo/responders/count.py +21 -0
- mindsdb/api/mongo/responders/db_stats.py +31 -0
- mindsdb/api/mongo/responders/delete.py +105 -0
- mindsdb/api/mongo/responders/describe.py +23 -0
- mindsdb/api/mongo/responders/end_sessions.py +13 -0
- mindsdb/api/mongo/responders/find.py +175 -0
- mindsdb/api/mongo/responders/get_cmd_line_opts.py +18 -0
- mindsdb/api/mongo/responders/get_free_monitoring_status.py +14 -0
- mindsdb/api/mongo/responders/get_parameter.py +23 -0
- mindsdb/api/mongo/responders/getlog.py +14 -0
- mindsdb/api/mongo/responders/host_info.py +28 -0
- mindsdb/api/mongo/responders/insert.py +268 -0
- mindsdb/api/mongo/responders/is_master.py +20 -0
- mindsdb/api/mongo/responders/is_master_lower.py +13 -0
- mindsdb/api/mongo/responders/list_collections.py +55 -0
- mindsdb/api/mongo/responders/list_databases.py +37 -0
- mindsdb/api/mongo/responders/list_indexes.py +22 -0
- mindsdb/api/mongo/responders/ping.py +13 -0
- mindsdb/api/mongo/responders/recv_chunk_start.py +13 -0
- mindsdb/api/mongo/responders/replsetgetstatus.py +13 -0
- mindsdb/api/mongo/responders/sasl_continue.py +34 -0
- mindsdb/api/mongo/responders/sasl_start.py +33 -0
- mindsdb/api/mongo/responders/update_range_deletions.py +12 -0
- mindsdb/api/mongo/responders/whatsmyuri.py +18 -0
- mindsdb/api/mongo/server.py +388 -0
- mindsdb/api/mongo/start.py +15 -0
- mindsdb/api/mongo/utilities/mongodb_ast.py +257 -0
- mindsdb/api/mongo/utilities/mongodb_parser.py +145 -0
- mindsdb/api/mongo/utilities/mongodb_query.py +84 -0
- mindsdb/api/mysql/mysql_proxy/classes/client_capabilities.py +130 -0
- mindsdb/api/mysql/mysql_proxy/classes/fake_mysql_proxy/__init__.py +3 -0
- mindsdb/api/mysql/mysql_proxy/classes/fake_mysql_proxy/fake_mysql_proxy.py +37 -0
- mindsdb/api/mysql/mysql_proxy/classes/server_capabilities.py +22 -0
- mindsdb/api/mysql/mysql_proxy/classes/sql_statement_parser.py +151 -0
- mindsdb/api/mysql/mysql_proxy/data_types/__init__.py +0 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_datum.py +212 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packet.py +166 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/__init__.py +15 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/binary_resultset_row_package.py +140 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/column_count_packet.py +44 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/column_definition_packet.py +94 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/command_packet.py +159 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/eof_packet.py +52 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/err_packet.py +58 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/fast_auth_fail_packet.py +20 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/handshake_packet.py +80 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/handshake_response_packet.py +96 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/ok_packet.py +106 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/password_answer.py +13 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/resultset_row_package.py +54 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/stmt_prepare_header.py +46 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/switch_auth_packet.py +53 -0
- mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/switch_auth_response_packet.py +16 -0
- mindsdb/api/mysql/mysql_proxy/executor/__init__.py +2 -0
- mindsdb/api/mysql/mysql_proxy/executor/mysql_executor.py +138 -0
- mindsdb/api/mysql/mysql_proxy/external_libs/__init__.py +0 -0
- mindsdb/api/mysql/mysql_proxy/external_libs/mysql_scramble.py +135 -0
- mindsdb/api/mysql/mysql_proxy/libs/__init__.py +1 -0
- mindsdb/api/mysql/mysql_proxy/libs/constants/__init__.py +1 -0
- mindsdb/api/mysql/mysql_proxy/libs/constants/mysql.py +1030 -0
- mindsdb/api/mysql/mysql_proxy/mysql_proxy.py +930 -0
- mindsdb/api/mysql/mysql_proxy/utilities/__init__.py +1 -0
- mindsdb/api/mysql/mysql_proxy/utilities/exceptions.py +18 -0
- mindsdb/api/mysql/mysql_proxy/utilities/lightwood_dtype.py +48 -0
- mindsdb/api/mysql/start.py +13 -0
- mindsdb/api/postgres/__init__.py +0 -0
- mindsdb/api/postgres/postgres_proxy/__init__.py +0 -0
- mindsdb/api/postgres/postgres_proxy/executor/__init__.py +1 -0
- mindsdb/api/postgres/postgres_proxy/executor/executor.py +188 -0
- mindsdb/api/postgres/postgres_proxy/postgres_packets/__init__.py +0 -0
- mindsdb/api/postgres/postgres_proxy/postgres_packets/errors.py +322 -0
- mindsdb/api/postgres/postgres_proxy/postgres_packets/postgres_fields.py +34 -0
- mindsdb/api/postgres/postgres_proxy/postgres_packets/postgres_message.py +31 -0
- mindsdb/api/postgres/postgres_proxy/postgres_packets/postgres_message_formats.py +1265 -0
- mindsdb/api/postgres/postgres_proxy/postgres_packets/postgres_message_identifiers.py +31 -0
- mindsdb/api/postgres/postgres_proxy/postgres_packets/postgres_packets.py +253 -0
- mindsdb/api/postgres/postgres_proxy/postgres_proxy.py +479 -0
- mindsdb/api/postgres/postgres_proxy/utilities/__init__.py +10 -0
- mindsdb/api/postgres/start.py +11 -0
- mindsdb/integrations/__init__.py +0 -0
- mindsdb/integrations/handlers/__init__.py +0 -0
- mindsdb/integrations/handlers/access_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/access_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/access_handler/access_handler.py +197 -0
- mindsdb/integrations/handlers/access_handler/connection_args.py +15 -0
- mindsdb/integrations/handlers/access_handler/icon.svg +19 -0
- mindsdb/integrations/handlers/access_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/access_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/access_handler/tests/test_access_handler.py +32 -0
- mindsdb/integrations/handlers/aerospike_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/aerospike_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/aerospike_handler/aerospike_handler.py +236 -0
- mindsdb/integrations/handlers/aerospike_handler/connection_args.py +46 -0
- mindsdb/integrations/handlers/aerospike_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/aerospike_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/aerospike_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/aerospike_handler/tests/test_aerospike_handler.py +36 -0
- mindsdb/integrations/handlers/airtable_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/airtable_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/airtable_handler/airtable_handler.py +211 -0
- mindsdb/integrations/handlers/airtable_handler/connection_args.py +26 -0
- mindsdb/integrations/handlers/airtable_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/airtable_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/airtable_handler/tests/test_airtable_handler.py +34 -0
- mindsdb/integrations/handlers/altibase_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/altibase_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/altibase_handler/altibase_handler.py +253 -0
- mindsdb/integrations/handlers/altibase_handler/connection_args.py +50 -0
- mindsdb/integrations/handlers/altibase_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/altibase_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/altibase_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/altibase_handler/tests/test_altibase_handler.py +67 -0
- mindsdb/integrations/handlers/altibase_handler/tests/test_altibase_handler_dsn.py +68 -0
- mindsdb/integrations/handlers/anomaly_detection_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/anomaly_detection_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/anomaly_detection_handler/anomaly_detection_handler.py +180 -0
- mindsdb/integrations/handlers/anomaly_detection_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/anomaly_detection_handler/requirements.txt +4 -0
- mindsdb/integrations/handlers/anomaly_detection_handler/utils.py +21 -0
- mindsdb/integrations/handlers/anthropic_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/anthropic_handler/__init__.py +22 -0
- mindsdb/integrations/handlers/anthropic_handler/anthropic_handler.py +108 -0
- mindsdb/integrations/handlers/anthropic_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/anthropic_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/anyscale_endpoints_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/anyscale_endpoints_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/anyscale_endpoints_handler/anyscale_endpoints_handler.py +290 -0
- mindsdb/integrations/handlers/anyscale_endpoints_handler/creation_args.py +14 -0
- mindsdb/integrations/handlers/anyscale_endpoints_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/anyscale_endpoints_handler/requirements.txt +3 -0
- mindsdb/integrations/handlers/anyscale_endpoints_handler/settings.py +51 -0
- mindsdb/integrations/handlers/anyscale_endpoints_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/anyscale_endpoints_handler/tests/test_anyscale_endpoints_handler.py +212 -0
- mindsdb/integrations/handlers/apache_doris_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/apache_doris_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/apache_doris_handler/apache_doris_handler.py +10 -0
- mindsdb/integrations/handlers/apache_doris_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/apache_doris_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/aqicn_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/aqicn_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/aqicn_handler/aqicn.py +35 -0
- mindsdb/integrations/handlers/aqicn_handler/aqicn_handler.py +97 -0
- mindsdb/integrations/handlers/aqicn_handler/aqicn_tables.py +425 -0
- mindsdb/integrations/handlers/aqicn_handler/connection_args.py +18 -0
- mindsdb/integrations/handlers/aqicn_handler/icon.png +0 -0
- mindsdb/integrations/handlers/aqicn_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/athena_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/athena_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/athena_handler/athena_handler.py +218 -0
- mindsdb/integrations/handlers/athena_handler/connection_args.py +51 -0
- mindsdb/integrations/handlers/athena_handler/icon.svg +22 -0
- mindsdb/integrations/handlers/athena_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/athena_handler/tests/test_athena_handler.py +85 -0
- mindsdb/integrations/handlers/aurora_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/aurora_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/aurora_handler/aurora_handler.py +140 -0
- mindsdb/integrations/handlers/aurora_handler/connection_args.py +50 -0
- mindsdb/integrations/handlers/aurora_handler/icon.svg +7 -0
- mindsdb/integrations/handlers/aurora_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/aurora_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/aurora_handler/tests/test_aurora_mysql_handler.py +37 -0
- mindsdb/integrations/handlers/aurora_handler/tests/test_aurora_postgres_handler.py +37 -0
- mindsdb/integrations/handlers/autogluon_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/autogluon_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/autogluon_handler/autogluon_handler.py +57 -0
- mindsdb/integrations/handlers/autogluon_handler/config.py +17 -0
- mindsdb/integrations/handlers/autogluon_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/autogluon_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/autokeras_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/autokeras_handler/__init__.py +22 -0
- mindsdb/integrations/handlers/autokeras_handler/autokeras_handler.py +139 -0
- mindsdb/integrations/handlers/autokeras_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/autokeras_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/autosklearn_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/autosklearn_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/autosklearn_handler/autosklearn_handler.py +53 -0
- mindsdb/integrations/handlers/autosklearn_handler/config.py +29 -0
- mindsdb/integrations/handlers/autosklearn_handler/icon.png +0 -0
- mindsdb/integrations/handlers/autosklearn_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/azure_blob_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/azure_blob_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/azure_blob_handler/azure_blob_handler.py +346 -0
- mindsdb/integrations/handlers/azure_blob_handler/connection_args.py +25 -0
- mindsdb/integrations/handlers/azure_blob_handler/icon.svg +30 -0
- mindsdb/integrations/handlers/azure_blob_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/bedrock_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/bedrock_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/bedrock_handler/bedrock_handler.py +328 -0
- mindsdb/integrations/handlers/bedrock_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/bedrock_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/bedrock_handler/settings.py +287 -0
- mindsdb/integrations/handlers/bedrock_handler/utilities.py +46 -0
- mindsdb/integrations/handlers/bigquery_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/bigquery_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/bigquery_handler/bigquery_handler.py +181 -0
- mindsdb/integrations/handlers/bigquery_handler/connection_args.py +30 -0
- mindsdb/integrations/handlers/bigquery_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/bigquery_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/bigquery_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/bigquery_handler/tests/test_bigquery_handler.py +221 -0
- mindsdb/integrations/handlers/binance_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/binance_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/binance_handler/binance_handler.py +144 -0
- mindsdb/integrations/handlers/binance_handler/binance_tables.py +175 -0
- mindsdb/integrations/handlers/binance_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/binance_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/box_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/box_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/box_handler/box_handler.py +257 -0
- mindsdb/integrations/handlers/box_handler/connection_args.py +17 -0
- mindsdb/integrations/handlers/box_handler/icon.svg +1 -0
- mindsdb/integrations/handlers/box_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/byom_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/byom_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/byom_handler/byom_handler.py +678 -0
- mindsdb/integrations/handlers/byom_handler/connection_args.py +19 -0
- mindsdb/integrations/handlers/byom_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/byom_handler/proc_wrapper.py +229 -0
- mindsdb/integrations/handlers/byom_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/cassandra_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/cassandra_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/cassandra_handler/cassandra_handler.py +27 -0
- mindsdb/integrations/handlers/cassandra_handler/connection_args.py +50 -0
- mindsdb/integrations/handlers/cassandra_handler/icon.svg +33 -0
- mindsdb/integrations/handlers/cassandra_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/cassandra_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/cassandra_handler/tests/test_cassandra_handler.py +39 -0
- mindsdb/integrations/handlers/chromadb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/chromadb_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/chromadb_handler/chromadb_handler.py +491 -0
- mindsdb/integrations/handlers/chromadb_handler/connection_args.py +28 -0
- mindsdb/integrations/handlers/chromadb_handler/icon.png +0 -0
- mindsdb/integrations/handlers/chromadb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/chromadb_handler/settings.py +62 -0
- mindsdb/integrations/handlers/chromadb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/ckan_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/ckan_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/ckan_handler/ckan_handler.py +310 -0
- mindsdb/integrations/handlers/ckan_handler/connection_args.py +22 -0
- mindsdb/integrations/handlers/ckan_handler/icon.png +0 -0
- mindsdb/integrations/handlers/ckan_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/ckan_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/ckan_handler/tests/test_ckan_handler.py +156 -0
- mindsdb/integrations/handlers/clickhouse_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/clickhouse_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/clickhouse_handler/clickhouse_handler.py +168 -0
- mindsdb/integrations/handlers/clickhouse_handler/connection_args.py +53 -0
- mindsdb/integrations/handlers/clickhouse_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/clickhouse_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/clickhouse_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/clickhouse_handler/tests/test_clickhouse_handler.py +41 -0
- mindsdb/integrations/handlers/clipdrop_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/clipdrop_handler/__init__.py +22 -0
- mindsdb/integrations/handlers/clipdrop_handler/clipdrop.py +87 -0
- mindsdb/integrations/handlers/clipdrop_handler/clipdrop_handler.py +193 -0
- mindsdb/integrations/handlers/clipdrop_handler/icon.svg +6 -0
- mindsdb/integrations/handlers/cloud_spanner_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/cloud_spanner_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/cloud_spanner_handler/cloud_spanner_handler.py +219 -0
- mindsdb/integrations/handlers/cloud_spanner_handler/connection_args.py +33 -0
- mindsdb/integrations/handlers/cloud_spanner_handler/icon.png +0 -0
- mindsdb/integrations/handlers/cloud_spanner_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/cloud_spanner_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/cloud_spanner_handler/tests/test_cloud_spanner_handler.py +50 -0
- mindsdb/integrations/handlers/cloud_sql_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/cloud_sql_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/cloud_sql_handler/cloud_sql_handler.py +123 -0
- mindsdb/integrations/handlers/cloud_sql_handler/connection_args.py +41 -0
- mindsdb/integrations/handlers/cloud_sql_handler/icon.png +0 -0
- mindsdb/integrations/handlers/cloud_sql_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/cloud_sql_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/cloud_sql_handler/tests/test_cloud_sql_mssql_handler.py +37 -0
- mindsdb/integrations/handlers/cloud_sql_handler/tests/test_cloud_sql_mysql_handler.py +37 -0
- mindsdb/integrations/handlers/cockroach_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/cockroach_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/cockroach_handler/cockroach_handler.py +11 -0
- mindsdb/integrations/handlers/cockroach_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/cockroach_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/cockroach_handler/tests/test_cockroachdb_handler.py +34 -0
- mindsdb/integrations/handlers/cohere_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/cohere_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/cohere_handler/cohere_handler.py +88 -0
- mindsdb/integrations/handlers/cohere_handler/icon.svg +12 -0
- mindsdb/integrations/handlers/cohere_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/coinbase_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/coinbase_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/coinbase_handler/coinbase_handler.py +138 -0
- mindsdb/integrations/handlers/coinbase_handler/coinbase_tables.py +56 -0
- mindsdb/integrations/handlers/coinbase_handler/connection_args.py +34 -0
- mindsdb/integrations/handlers/coinbase_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/coinbase_handler/requirements.txt +0 -0
- mindsdb/integrations/handlers/confluence_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/confluence_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/confluence_handler/confluence_handler.py +102 -0
- mindsdb/integrations/handlers/confluence_handler/confluence_table.py +193 -0
- mindsdb/integrations/handlers/confluence_handler/connection_args.py +32 -0
- mindsdb/integrations/handlers/confluence_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/confluence_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/confluence_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/confluence_handler/tests/test_confluence_handler.py +68 -0
- mindsdb/integrations/handlers/couchbase_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/couchbase_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/couchbase_handler/connection_args.py +31 -0
- mindsdb/integrations/handlers/couchbase_handler/couchbase_handler.py +208 -0
- mindsdb/integrations/handlers/couchbase_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/couchbase_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/couchbase_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/couchbase_handler/tests/test_couchbase_handler.py +39 -0
- mindsdb/integrations/handlers/couchbasevector_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/couchbasevector_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/couchbasevector_handler/connection_args.py +31 -0
- mindsdb/integrations/handlers/couchbasevector_handler/couchbasevector_handler.py +472 -0
- mindsdb/integrations/handlers/couchbasevector_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/couchbasevector_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/couchbasevector_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/crate_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/crate_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/crate_handler/crate_handler.py +226 -0
- mindsdb/integrations/handlers/crate_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/crate_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/crate_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/crate_handler/tests/test_crate_handler.py +46 -0
- mindsdb/integrations/handlers/d0lt_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/d0lt_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/d0lt_handler/d0lt_handler.py +12 -0
- mindsdb/integrations/handlers/d0lt_handler/icon.svg +6 -0
- mindsdb/integrations/handlers/d0lt_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/d0lt_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/d0lt_handler/tests/test_d0lt_handler.py +53 -0
- mindsdb/integrations/handlers/databend_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/databend_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/databend_handler/connection_args.py +36 -0
- mindsdb/integrations/handlers/databend_handler/databend_handler.py +199 -0
- mindsdb/integrations/handlers/databend_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/databend_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/databend_handler/tests/__init__.py +1 -0
- mindsdb/integrations/handlers/databend_handler/tests/test_databend_handler.py +37 -0
- mindsdb/integrations/handlers/databricks_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/databricks_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/databricks_handler/connection_args.py +58 -0
- mindsdb/integrations/handlers/databricks_handler/databricks_handler.py +261 -0
- mindsdb/integrations/handlers/databricks_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/databricks_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/databricks_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/databricks_handler/tests/test_databricks_handler.py +37 -0
- mindsdb/integrations/handlers/datastax_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/datastax_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/datastax_handler/datastax_handler.py +12 -0
- mindsdb/integrations/handlers/datastax_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/datastax_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/datastax_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/datastax_handler/tests/test_cassandra_handler.py +38 -0
- mindsdb/integrations/handlers/db2_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/db2_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/db2_handler/connection_args.py +53 -0
- mindsdb/integrations/handlers/db2_handler/db2_handler.py +235 -0
- mindsdb/integrations/handlers/db2_handler/icon.svg +49 -0
- mindsdb/integrations/handlers/db2_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/db2_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/db2_handler/tests/test_db2_handler.py +46 -0
- mindsdb/integrations/handlers/derby_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/derby_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/derby_handler/connection_args.py +50 -0
- mindsdb/integrations/handlers/derby_handler/derby_handler.py +203 -0
- mindsdb/integrations/handlers/derby_handler/icon.svg +21 -0
- mindsdb/integrations/handlers/derby_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/derby_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/derby_handler/tests/test_derby_handler.py +46 -0
- mindsdb/integrations/handlers/discord_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/discord_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/discord_handler/discord_handler.py +187 -0
- mindsdb/integrations/handlers/discord_handler/discord_tables.py +189 -0
- mindsdb/integrations/handlers/discord_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/discord_handler/requirements.txt +0 -0
- mindsdb/integrations/handlers/discord_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/discord_handler/tests/test_discord.py +59 -0
- mindsdb/integrations/handlers/dockerhub_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/dockerhub_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/dockerhub_handler/connection_args.py +25 -0
- mindsdb/integrations/handlers/dockerhub_handler/dockerhub.py +55 -0
- mindsdb/integrations/handlers/dockerhub_handler/dockerhub_handler.py +112 -0
- mindsdb/integrations/handlers/dockerhub_handler/dockerhub_tables.py +509 -0
- mindsdb/integrations/handlers/dockerhub_handler/icon.svg +12 -0
- mindsdb/integrations/handlers/documentdb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/documentdb_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/documentdb_handler/connection_args.py +53 -0
- mindsdb/integrations/handlers/documentdb_handler/documentdb_handler.py +41 -0
- mindsdb/integrations/handlers/documentdb_handler/icon.svg +15 -0
- mindsdb/integrations/handlers/dremio_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/dremio_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/dremio_handler/connection_args.py +31 -0
- mindsdb/integrations/handlers/dremio_handler/dremio_handler.py +222 -0
- mindsdb/integrations/handlers/dremio_handler/icon.svg +16 -0
- mindsdb/integrations/handlers/dremio_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/dremio_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/dremio_handler/tests/test_dremio_handler.py +35 -0
- mindsdb/integrations/handlers/dropbox_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/dropbox_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/dropbox_handler/connection_args.py +17 -0
- mindsdb/integrations/handlers/dropbox_handler/dropbox_handler.py +253 -0
- mindsdb/integrations/handlers/dropbox_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/dropbox_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/dropbox_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/dropbox_handler/tests/test_dropbox_handler.py +18 -0
- mindsdb/integrations/handlers/druid_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/druid_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/druid_handler/connection_args.py +51 -0
- mindsdb/integrations/handlers/druid_handler/druid_handler.py +216 -0
- mindsdb/integrations/handlers/druid_handler/icon.svg +6 -0
- mindsdb/integrations/handlers/druid_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/druid_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/druid_handler/tests/test_druid_handler.py +35 -0
- mindsdb/integrations/handlers/dspy_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/dspy_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/dspy_handler/dspy_handler.py +250 -0
- mindsdb/integrations/handlers/dspy_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/dspy_handler/requirements.txt +8 -0
- mindsdb/integrations/handlers/duckdb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/duckdb_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/duckdb_handler/connection_args.py +17 -0
- mindsdb/integrations/handlers/duckdb_handler/duckdb_handler.py +170 -0
- mindsdb/integrations/handlers/duckdb_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/duckdb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/duckdb_handler/tests/test_duckdb_handler.py +48 -0
- mindsdb/integrations/handlers/dummy_data_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/dummy_data_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/dummy_data_handler/dummy_data_handler.py +97 -0
- mindsdb/integrations/handlers/dummy_data_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/dynamodb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/dynamodb_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/dynamodb_handler/connection_args.py +39 -0
- mindsdb/integrations/handlers/dynamodb_handler/dynamodb_handler.py +293 -0
- mindsdb/integrations/handlers/dynamodb_handler/icon.svg +17 -0
- mindsdb/integrations/handlers/dynamodb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/dynamodb_handler/tests/test_dynamodb_handler.py +34 -0
- mindsdb/integrations/handlers/edgelessdb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/edgelessdb_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/edgelessdb_handler/connection_args.py +45 -0
- mindsdb/integrations/handlers/edgelessdb_handler/edgelessdb_handler.py +12 -0
- mindsdb/integrations/handlers/edgelessdb_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/edgelessdb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/edgelessdb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/edgelessdb_handler/tests/test_edgelessdb_handler.py +66 -0
- mindsdb/integrations/handlers/elasticsearch_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/elasticsearch_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/elasticsearch_handler/connection_args.py +38 -0
- mindsdb/integrations/handlers/elasticsearch_handler/elasticsearch_handler.py +288 -0
- mindsdb/integrations/handlers/elasticsearch_handler/icon.svg +16 -0
- mindsdb/integrations/handlers/elasticsearch_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/elasticsearch_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/elasticsearch_handler/tests/test_elasticsearch_handler.py +32 -0
- mindsdb/integrations/handlers/email_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/email_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/email_handler/email_client.py +165 -0
- mindsdb/integrations/handlers/email_handler/email_handler.py +99 -0
- mindsdb/integrations/handlers/email_handler/email_ingestor.py +86 -0
- mindsdb/integrations/handlers/email_handler/email_tables.py +159 -0
- mindsdb/integrations/handlers/email_handler/icon.png +0 -0
- mindsdb/integrations/handlers/email_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/email_handler/settings.py +60 -0
- mindsdb/integrations/handlers/empress_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/empress_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/empress_handler/connection_args.py +42 -0
- mindsdb/integrations/handlers/empress_handler/empress_handler.py +211 -0
- mindsdb/integrations/handlers/empress_handler/icon.png +0 -0
- mindsdb/integrations/handlers/empress_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/empress_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/empress_handler/tests/test_empress_handler.py +55 -0
- mindsdb/integrations/handlers/eventbrite_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/eventbrite_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/eventbrite_handler/eventbrite_handler.py +94 -0
- mindsdb/integrations/handlers/eventbrite_handler/eventbrite_tables.py +612 -0
- mindsdb/integrations/handlers/eventbrite_handler/icon.png +0 -0
- mindsdb/integrations/handlers/eventbrite_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/eventstoredb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/eventstoredb_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/eventstoredb_handler/eventstoredb_handler.py +216 -0
- mindsdb/integrations/handlers/eventstoredb_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/faunadb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/faunadb_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/faunadb_handler/connection_args.py +39 -0
- mindsdb/integrations/handlers/faunadb_handler/faunadb_handler.py +267 -0
- mindsdb/integrations/handlers/faunadb_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/faunadb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/faunadb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/faunadb_handler/tests/test_faunadb_handler.py +41 -0
- mindsdb/integrations/handlers/file_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/file_handler/__init__.py +16 -0
- mindsdb/integrations/handlers/file_handler/file_handler.py +528 -0
- mindsdb/integrations/handlers/file_handler/icon.svg +8 -0
- mindsdb/integrations/handlers/file_handler/requirements.txt +4 -0
- mindsdb/integrations/handlers/file_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/file_handler/tests/data/test.txt +10 -0
- mindsdb/integrations/handlers/file_handler/tests/test_file_handler.py +458 -0
- mindsdb/integrations/handlers/financial_modeling_prep_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/financial_modeling_prep_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/financial_modeling_prep_handler/financial_modeling_handler.py +56 -0
- mindsdb/integrations/handlers/financial_modeling_prep_handler/financial_modeling_tables.py +89 -0
- mindsdb/integrations/handlers/financial_modeling_prep_handler/icon.svg +67 -0
- mindsdb/integrations/handlers/firebird_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/firebird_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/firebird_handler/connection_args.py +34 -0
- mindsdb/integrations/handlers/firebird_handler/firebird_handler.py +240 -0
- mindsdb/integrations/handlers/firebird_handler/icon.svg +16 -0
- mindsdb/integrations/handlers/firebird_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/firebird_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/firebird_handler/tests/test_firebird_handler.py +37 -0
- mindsdb/integrations/handlers/flaml_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/flaml_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/flaml_handler/flaml_handler.py +47 -0
- mindsdb/integrations/handlers/flaml_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/flaml_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/frappe_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/frappe_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/frappe_handler/frappe_client.py +111 -0
- mindsdb/integrations/handlers/frappe_handler/frappe_handler.py +209 -0
- mindsdb/integrations/handlers/frappe_handler/frappe_tables.py +82 -0
- mindsdb/integrations/handlers/frappe_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/frappe_handler/requirements.txt +0 -0
- mindsdb/integrations/handlers/gcs_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/gcs_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/gcs_handler/connection_args.py +29 -0
- mindsdb/integrations/handlers/gcs_handler/gcs_handler.py +375 -0
- mindsdb/integrations/handlers/gcs_handler/gcs_tables.py +50 -0
- mindsdb/integrations/handlers/gcs_handler/icon.svg +1 -0
- mindsdb/integrations/handlers/gcs_handler/requirements.txt +4 -0
- mindsdb/integrations/handlers/github_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/github_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/github_handler/connection_args.py +32 -0
- mindsdb/integrations/handlers/github_handler/github_handler.py +124 -0
- mindsdb/integrations/handlers/github_handler/github_tables.py +965 -0
- mindsdb/integrations/handlers/github_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/github_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/gitlab_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/gitlab_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/gitlab_handler/gitlab_handler.py +84 -0
- mindsdb/integrations/handlers/gitlab_handler/gitlab_tables.py +393 -0
- mindsdb/integrations/handlers/gitlab_handler/icon.svg +6 -0
- mindsdb/integrations/handlers/gitlab_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/gmail_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/gmail_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/gmail_handler/connection_args.py +27 -0
- mindsdb/integrations/handlers/gmail_handler/gmail_handler.py +566 -0
- mindsdb/integrations/handlers/gmail_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/gmail_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/gmail_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/gmail_handler/tests/test_gmail_handler.py +50 -0
- mindsdb/integrations/handlers/gmail_handler/utils.py +45 -0
- mindsdb/integrations/handlers/google_analytics_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/google_analytics_handler/__init__.py +18 -0
- mindsdb/integrations/handlers/google_analytics_handler/google_analytics_handler.py +129 -0
- mindsdb/integrations/handlers/google_analytics_handler/google_analytics_tables.py +283 -0
- mindsdb/integrations/handlers/google_analytics_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/google_analytics_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/google_analytics_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/google_analytics_handler/tests/test_google_analytics_handler.py +48 -0
- mindsdb/integrations/handlers/google_books_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/google_books_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/google_books_handler/google_books_handler.py +184 -0
- mindsdb/integrations/handlers/google_books_handler/google_books_tables.py +185 -0
- mindsdb/integrations/handlers/google_books_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/google_books_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/google_books_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/google_books_handler/tests/test_google_books_handler.py +41 -0
- mindsdb/integrations/handlers/google_calendar_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/google_calendar_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/google_calendar_handler/connection_args.py +12 -0
- mindsdb/integrations/handlers/google_calendar_handler/google_calendar_handler.py +292 -0
- mindsdb/integrations/handlers/google_calendar_handler/google_calendar_tables.py +228 -0
- mindsdb/integrations/handlers/google_calendar_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/google_calendar_handler/requirements.txt +3 -0
- mindsdb/integrations/handlers/google_calendar_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/google_calendar_handler/tests/test_google_calendar_handler.py +56 -0
- mindsdb/integrations/handlers/google_content_shopping_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/google_content_shopping_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/google_content_shopping_handler/connection_args.py +20 -0
- mindsdb/integrations/handlers/google_content_shopping_handler/google_content_shopping_handler.py +396 -0
- mindsdb/integrations/handlers/google_content_shopping_handler/google_content_shopping_tables.py +435 -0
- mindsdb/integrations/handlers/google_content_shopping_handler/icon.svg +15 -0
- mindsdb/integrations/handlers/google_content_shopping_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/google_content_shopping_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/google_content_shopping_handler/tests/test_google_content_shopping_handler.py +64 -0
- mindsdb/integrations/handlers/google_fit_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/google_fit_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/google_fit_handler/google_fit_handler.py +155 -0
- mindsdb/integrations/handlers/google_fit_handler/google_fit_tables.py +69 -0
- mindsdb/integrations/handlers/google_fit_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/google_fit_handler/requirements.txt +4 -0
- mindsdb/integrations/handlers/google_gemini_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/google_gemini_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/google_gemini_handler/google_gemini_handler.py +370 -0
- mindsdb/integrations/handlers/google_gemini_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/google_gemini_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/google_search_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/google_search_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/google_search_handler/connection_args.py +15 -0
- mindsdb/integrations/handlers/google_search_handler/google_search_handler.py +205 -0
- mindsdb/integrations/handlers/google_search_handler/google_search_tables.py +220 -0
- mindsdb/integrations/handlers/google_search_handler/icon.svg +19 -0
- mindsdb/integrations/handlers/google_search_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/google_search_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/google_search_handler/tests/test_google_search_handler.py +55 -0
- mindsdb/integrations/handlers/greptimedb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/greptimedb_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/greptimedb_handler/greptimedb_handler.py +21 -0
- mindsdb/integrations/handlers/greptimedb_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/greptimedb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/groq_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/groq_handler/__init__.py +23 -0
- mindsdb/integrations/handlers/groq_handler/groq_handler.py +136 -0
- mindsdb/integrations/handlers/groq_handler/icon.svg +30 -0
- mindsdb/integrations/handlers/groq_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/groq_handler/settings.py +31 -0
- mindsdb/integrations/handlers/hackernews_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/hackernews_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/hackernews_handler/hn_handler.py +102 -0
- mindsdb/integrations/handlers/hackernews_handler/hn_table.py +152 -0
- mindsdb/integrations/handlers/hackernews_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/hana_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/hana_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/hana_handler/connection_args.py +57 -0
- mindsdb/integrations/handlers/hana_handler/hana_handler.py +259 -0
- mindsdb/integrations/handlers/hana_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/hana_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/hive_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/hive_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/hive_handler/connection_args.py +53 -0
- mindsdb/integrations/handlers/hive_handler/hive_handler.py +224 -0
- mindsdb/integrations/handlers/hive_handler/icon.svg +41 -0
- mindsdb/integrations/handlers/hive_handler/requirements.txt +3 -0
- mindsdb/integrations/handlers/hive_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/hive_handler/tests/test_hive_handler.py +50 -0
- mindsdb/integrations/handlers/hsqldb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/hsqldb_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/hsqldb_handler/connection_args.py +39 -0
- mindsdb/integrations/handlers/hsqldb_handler/hsqldb_handler.py +197 -0
- mindsdb/integrations/handlers/hsqldb_handler/icon.png +0 -0
- mindsdb/integrations/handlers/hsqldb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/hubspot_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/hubspot_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/hubspot_handler/hubspot_handler.py +96 -0
- mindsdb/integrations/handlers/hubspot_handler/hubspot_tables.py +589 -0
- mindsdb/integrations/handlers/hubspot_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/hubspot_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/huggingface_api_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/huggingface_api_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/huggingface_api_handler/exceptions.py +6 -0
- mindsdb/integrations/handlers/huggingface_api_handler/huggingface_api_handler.py +250 -0
- mindsdb/integrations/handlers/huggingface_api_handler/icon.svg +24 -0
- mindsdb/integrations/handlers/huggingface_api_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/huggingface_api_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/huggingface_api_handler/tests/test_huggingface_api_handler.py +9 -0
- mindsdb/integrations/handlers/huggingface_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/huggingface_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/huggingface_handler/finetune.py +223 -0
- mindsdb/integrations/handlers/huggingface_handler/huggingface_handler.py +383 -0
- mindsdb/integrations/handlers/huggingface_handler/icon.svg +24 -0
- mindsdb/integrations/handlers/huggingface_handler/requirements.txt +5 -0
- mindsdb/integrations/handlers/huggingface_handler/requirements_cpu.txt +6 -0
- mindsdb/integrations/handlers/huggingface_handler/settings.py +27 -0
- mindsdb/integrations/handlers/ibm_cos_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/ibm_cos_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/ibm_cos_handler/connection_args.py +38 -0
- mindsdb/integrations/handlers/ibm_cos_handler/ibm_cos_handler.py +338 -0
- mindsdb/integrations/handlers/ibm_cos_handler/icon.svg +54 -0
- mindsdb/integrations/handlers/ibm_cos_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/ibm_cos_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/ibm_cos_handler/tests/test_ibm_cos_handler.py +23 -0
- mindsdb/integrations/handlers/ignite_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/ignite_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/ignite_handler/connection_args.py +46 -0
- mindsdb/integrations/handlers/ignite_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/ignite_handler/ignite_handler.py +207 -0
- mindsdb/integrations/handlers/ignite_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/ignite_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/ignite_handler/tests/test_ignite_handler.py +33 -0
- mindsdb/integrations/handlers/impala_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/impala_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/impala_handler/connection_args.py +37 -0
- mindsdb/integrations/handlers/impala_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/impala_handler/impala_handler.py +156 -0
- mindsdb/integrations/handlers/impala_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/impala_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/impala_handler/tests/test_impala_handler.py +50 -0
- mindsdb/integrations/handlers/influxdb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/influxdb_handler/__init__.py +26 -0
- mindsdb/integrations/handlers/influxdb_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/influxdb_handler/influxdb_handler.py +105 -0
- mindsdb/integrations/handlers/influxdb_handler/influxdb_tables.py +81 -0
- mindsdb/integrations/handlers/influxdb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/informix_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/informix_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/informix_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/informix_handler/informix_handler.py +318 -0
- mindsdb/integrations/handlers/informix_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/informix_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/informix_handler/tests/test_informix_handler.py +52 -0
- mindsdb/integrations/handlers/ingres_handler/__about__.py +10 -0
- mindsdb/integrations/handlers/ingres_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/ingres_handler/connection_args.py +36 -0
- mindsdb/integrations/handlers/ingres_handler/icon.svg +6 -0
- mindsdb/integrations/handlers/ingres_handler/ingres_handler.py +210 -0
- mindsdb/integrations/handlers/ingres_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/ingres_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/ingres_handler/tests/test_ingres_handler.py +53 -0
- mindsdb/integrations/handlers/instatus_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/instatus_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/instatus_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/instatus_handler/instatus_handler.py +127 -0
- mindsdb/integrations/handlers/instatus_handler/instatus_tables.py +393 -0
- mindsdb/integrations/handlers/intercom_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/intercom_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/intercom_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/intercom_handler/intercom_handler.py +117 -0
- mindsdb/integrations/handlers/intercom_handler/intercom_tables.py +152 -0
- mindsdb/integrations/handlers/jira_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/jira_handler/__init__.py +26 -0
- mindsdb/integrations/handlers/jira_handler/icon.svg +15 -0
- mindsdb/integrations/handlers/jira_handler/jira_handler.py +119 -0
- mindsdb/integrations/handlers/jira_handler/jira_table.py +151 -0
- mindsdb/integrations/handlers/jira_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/kinetica_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/kinetica_handler/__init__.py +22 -0
- mindsdb/integrations/handlers/kinetica_handler/connection_args.py +54 -0
- mindsdb/integrations/handlers/kinetica_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/kinetica_handler/kinetica_handler.py +12 -0
- mindsdb/integrations/handlers/lancedb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/lancedb_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/lancedb_handler/connection_args.py +35 -0
- mindsdb/integrations/handlers/lancedb_handler/icon.svg +8 -0
- mindsdb/integrations/handlers/lancedb_handler/lancedb_handler.py +329 -0
- mindsdb/integrations/handlers/lancedb_handler/requirements.txt +3 -0
- mindsdb/integrations/handlers/lancedb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/lancedb_handler/tests/test_lancedb_handler.py +99 -0
- mindsdb/integrations/handlers/langchain_embedding_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/langchain_embedding_handler/__init__.py +23 -0
- mindsdb/integrations/handlers/langchain_embedding_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/langchain_embedding_handler/langchain_embedding_handler.py +221 -0
- mindsdb/integrations/handlers/langchain_embedding_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/langchain_embedding_handler/vllm_embeddings.py +111 -0
- mindsdb/integrations/handlers/langchain_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/langchain_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/langchain_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/langchain_handler/langchain_handler.py +278 -0
- mindsdb/integrations/handlers/langchain_handler/requirements.txt +8 -0
- mindsdb/integrations/handlers/langchain_handler/tools.py +247 -0
- mindsdb/integrations/handlers/leonardoai_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/leonardoai_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/leonardoai_handler/icon.svg +306 -0
- mindsdb/integrations/handlers/leonardoai_handler/leonardo_ai_handler.py +225 -0
- mindsdb/integrations/handlers/leonardoai_handler/requirements.txt +0 -0
- mindsdb/integrations/handlers/libsql_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/libsql_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/libsql_handler/connection_args.py +22 -0
- mindsdb/integrations/handlers/libsql_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/libsql_handler/libsql_handler.py +192 -0
- mindsdb/integrations/handlers/libsql_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/libsql_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/libsql_handler/tests/test_libsql_handler.py +45 -0
- mindsdb/integrations/handlers/lightdash_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/lightdash_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/lightdash_handler/api.py +513 -0
- mindsdb/integrations/handlers/lightdash_handler/icon.png +0 -0
- mindsdb/integrations/handlers/lightdash_handler/lightdash_handler.py +108 -0
- mindsdb/integrations/handlers/lightdash_handler/lightdash_tables.py +648 -0
- mindsdb/integrations/handlers/lightdash_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/lightfm_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/lightfm_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/lightfm_handler/helpers.py +175 -0
- mindsdb/integrations/handlers/lightfm_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/lightfm_handler/lightfm_handler.py +198 -0
- mindsdb/integrations/handlers/lightfm_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/lightfm_handler/settings.py +7 -0
- mindsdb/integrations/handlers/lightwood_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/lightwood_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/lightwood_handler/functions.py +252 -0
- mindsdb/integrations/handlers/lightwood_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/lightwood_handler/lightwood_handler.py +581 -0
- mindsdb/integrations/handlers/lightwood_handler/requirements.txt +4 -0
- mindsdb/integrations/handlers/lightwood_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/lightwood_handler/tests/test_lightwood_handler.py +258 -0
- mindsdb/integrations/handlers/lightwood_handler/utils.py +76 -0
- mindsdb/integrations/handlers/lindorm_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/lindorm_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/lindorm_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/lindorm_handler/lindorm_handler.py +220 -0
- mindsdb/integrations/handlers/lindorm_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/lindorm_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/lindorm_handler/tests/test_lindorm_handler.py +33 -0
- mindsdb/integrations/handlers/litellm_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/litellm_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/litellm_handler/icon.png +0 -0
- mindsdb/integrations/handlers/litellm_handler/litellm_handler.py +141 -0
- mindsdb/integrations/handlers/litellm_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/litellm_handler/settings.py +39 -0
- mindsdb/integrations/handlers/llama_index_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/llama_index_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/llama_index_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/llama_index_handler/llama_index_handler.py +201 -0
- mindsdb/integrations/handlers/llama_index_handler/requirements.txt +5 -0
- mindsdb/integrations/handlers/llama_index_handler/settings.py +65 -0
- mindsdb/integrations/handlers/ludwig_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/ludwig_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/ludwig_handler/functions.py +0 -0
- mindsdb/integrations/handlers/ludwig_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/ludwig_handler/ludwig_handler.py +68 -0
- mindsdb/integrations/handlers/ludwig_handler/requirements.txt +3 -0
- mindsdb/integrations/handlers/ludwig_handler/utils.py +12 -0
- mindsdb/integrations/handlers/luma_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/luma_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/luma_handler/connection_args.py +18 -0
- mindsdb/integrations/handlers/luma_handler/icon.png +0 -0
- mindsdb/integrations/handlers/luma_handler/luma.py +47 -0
- mindsdb/integrations/handlers/luma_handler/luma_handler.py +77 -0
- mindsdb/integrations/handlers/luma_handler/luma_tables.py +164 -0
- mindsdb/integrations/handlers/luma_handler/requirements.txt +0 -0
- mindsdb/integrations/handlers/mariadb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/mariadb_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/mariadb_handler/connection_args.py +76 -0
- mindsdb/integrations/handlers/mariadb_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/mariadb_handler/mariadb_handler.py +12 -0
- mindsdb/integrations/handlers/mariadb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/materialize_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/materialize_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/materialize_handler/icon.svg +7 -0
- mindsdb/integrations/handlers/materialize_handler/materialize_handler.py +43 -0
- mindsdb/integrations/handlers/materialize_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/materialize_handler/tests/test_materialize_handler.py +56 -0
- mindsdb/integrations/handlers/matrixone_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/matrixone_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/matrixone_handler/connection_args.py +52 -0
- mindsdb/integrations/handlers/matrixone_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/matrixone_handler/matrixone_handler.py +168 -0
- mindsdb/integrations/handlers/matrixone_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/matrixone_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/matrixone_handler/tests/test_matrixone_handler.py +56 -0
- mindsdb/integrations/handlers/maxdb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/maxdb_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/maxdb_handler/connection_args.py +42 -0
- mindsdb/integrations/handlers/maxdb_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/maxdb_handler/maxdb_handler.py +185 -0
- mindsdb/integrations/handlers/maxdb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/maxdb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/maxdb_handler/tests/test_maxdb_handler.py +55 -0
- mindsdb/integrations/handlers/mediawiki_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/mediawiki_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/mediawiki_handler/icon.svg +153 -0
- mindsdb/integrations/handlers/mediawiki_handler/mediawiki_handler.py +87 -0
- mindsdb/integrations/handlers/mediawiki_handler/mediawiki_tables.py +98 -0
- mindsdb/integrations/handlers/mediawiki_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/mendeley_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/mendeley_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/mendeley_handler/icon.svg +14 -0
- mindsdb/integrations/handlers/mendeley_handler/mendeley_handler.py +225 -0
- mindsdb/integrations/handlers/mendeley_handler/mendeley_tables.py +134 -0
- mindsdb/integrations/handlers/mendeley_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/mendeley_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/mendeley_handler/tests/test_mendeley_handler.py +108 -0
- mindsdb/integrations/handlers/merlion_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/merlion_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/merlion_handler/adapters.py +182 -0
- mindsdb/integrations/handlers/merlion_handler/icon.svg +16 -0
- mindsdb/integrations/handlers/merlion_handler/merlion_handler.py +205 -0
- mindsdb/integrations/handlers/merlion_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/milvus_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/milvus_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/milvus_handler/connection_args.py +112 -0
- mindsdb/integrations/handlers/milvus_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/milvus_handler/milvus_handler.py +332 -0
- mindsdb/integrations/handlers/milvus_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/milvus_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/minds_endpoint_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/minds_endpoint_handler/__init__.py +23 -0
- mindsdb/integrations/handlers/minds_endpoint_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/minds_endpoint_handler/minds_endpoint_handler.py +132 -0
- mindsdb/integrations/handlers/minds_endpoint_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/minds_endpoint_handler/settings.py +18 -0
- mindsdb/integrations/handlers/minds_endpoint_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/minds_endpoint_handler/tests/test_minds_endpoint_handler.py +160 -0
- mindsdb/integrations/handlers/mlflow_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/mlflow_handler/__init__.py +18 -0
- mindsdb/integrations/handlers/mlflow_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/mlflow_handler/mlflow_handler.py +83 -0
- mindsdb/integrations/handlers/mlflow_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/monetdb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/monetdb_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/monetdb_handler/connection_args.py +44 -0
- mindsdb/integrations/handlers/monetdb_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/monetdb_handler/monetdb_handler.py +219 -0
- mindsdb/integrations/handlers/monetdb_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/monetdb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/monetdb_handler/tests/test_monetdb_handler.py +50 -0
- mindsdb/integrations/handlers/monetdb_handler/utils/__init__.py +0 -0
- mindsdb/integrations/handlers/monetdb_handler/utils/monet_get_id.py +50 -0
- mindsdb/integrations/handlers/mongodb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/mongodb_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/mongodb_handler/connection_args.py +46 -0
- mindsdb/integrations/handlers/mongodb_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/mongodb_handler/mongodb_handler.py +372 -0
- mindsdb/integrations/handlers/mongodb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/mongodb_handler/tests/test_mongodb_handler.py +125 -0
- mindsdb/integrations/handlers/mongodb_handler/utils/__init__.py +0 -0
- mindsdb/integrations/handlers/mongodb_handler/utils/mongodb_render.py +286 -0
- mindsdb/integrations/handlers/monkeylearn_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/monkeylearn_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/monkeylearn_handler/icon.png +0 -0
- mindsdb/integrations/handlers/monkeylearn_handler/monkeylearn_handler.py +81 -0
- mindsdb/integrations/handlers/monkeylearn_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/ms_one_drive_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/ms_one_drive_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/ms_one_drive_handler/icon.svg +31 -0
- mindsdb/integrations/handlers/ms_one_drive_handler/ms_graph_api_one_drive_client.py +102 -0
- mindsdb/integrations/handlers/ms_one_drive_handler/ms_one_drive_handler.py +252 -0
- mindsdb/integrations/handlers/ms_one_drive_handler/ms_one_drive_tables.py +100 -0
- mindsdb/integrations/handlers/ms_teams_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/ms_teams_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/ms_teams_handler/icon.svg +23 -0
- mindsdb/integrations/handlers/ms_teams_handler/ms_teams_handler.py +193 -0
- mindsdb/integrations/handlers/ms_teams_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/mssql_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/mssql_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/mssql_handler/connection_args.py +52 -0
- mindsdb/integrations/handlers/mssql_handler/icon.svg +21 -0
- mindsdb/integrations/handlers/mssql_handler/mssql_handler.py +218 -0
- mindsdb/integrations/handlers/mssql_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/mssql_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/mssql_handler/tests/test_mssql_handler.py +169 -0
- mindsdb/integrations/handlers/mysql_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/mysql_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/mysql_handler/connection_args.py +76 -0
- mindsdb/integrations/handlers/mysql_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/mysql_handler/mysql_handler.py +214 -0
- mindsdb/integrations/handlers/mysql_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/mysql_handler/settings.py +46 -0
- mindsdb/integrations/handlers/neuralforecast_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/neuralforecast_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/neuralforecast_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/neuralforecast_handler/neuralforecast_handler.py +135 -0
- mindsdb/integrations/handlers/neuralforecast_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/neuralforecast_handler/requirements_extra.txt +2 -0
- mindsdb/integrations/handlers/newsapi_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/newsapi_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/newsapi_handler/connection_args.py +14 -0
- mindsdb/integrations/handlers/newsapi_handler/icon.png +0 -0
- mindsdb/integrations/handlers/newsapi_handler/newsapi_handler.py +209 -0
- mindsdb/integrations/handlers/newsapi_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/newsapi_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/newsapi_handler/tests/test_newsapi_handler.py +90 -0
- mindsdb/integrations/handlers/notion_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/notion_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/notion_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/notion_handler/notion_handler.py +238 -0
- mindsdb/integrations/handlers/notion_handler/notion_table.py +422 -0
- mindsdb/integrations/handlers/notion_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/notion_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/notion_handler/tests/test_notion_handler.py +62 -0
- mindsdb/integrations/handlers/npm_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/npm_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/npm_handler/api.py +26 -0
- mindsdb/integrations/handlers/npm_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/npm_handler/npm_handler.py +53 -0
- mindsdb/integrations/handlers/npm_handler/npm_tables.py +242 -0
- mindsdb/integrations/handlers/npm_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/nuo_jdbc_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/nuo_jdbc_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/nuo_jdbc_handler/connection_args.py +65 -0
- mindsdb/integrations/handlers/nuo_jdbc_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/nuo_jdbc_handler/nuo_jdbc_handler.py +228 -0
- mindsdb/integrations/handlers/nuo_jdbc_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/nuo_jdbc_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/nuo_jdbc_handler/tests/test_nuo_handler.py +50 -0
- mindsdb/integrations/handlers/oceanbase_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/oceanbase_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/oceanbase_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/oceanbase_handler/oceanbase_handler.py +48 -0
- mindsdb/integrations/handlers/oceanbase_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/oceanbase_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/oceanbase_handler/tests/test_oceanbase_handler.py +56 -0
- mindsdb/integrations/handlers/oilpriceapi_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/oilpriceapi_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/oilpriceapi_handler/connection_args.py +18 -0
- mindsdb/integrations/handlers/oilpriceapi_handler/icon.svg +7 -0
- mindsdb/integrations/handlers/oilpriceapi_handler/oilpriceapi.py +45 -0
- mindsdb/integrations/handlers/oilpriceapi_handler/oilpriceapi_handler.py +100 -0
- mindsdb/integrations/handlers/oilpriceapi_handler/oilpriceapi_tables.py +208 -0
- mindsdb/integrations/handlers/ollama_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/ollama_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/ollama_handler/icon.png +0 -0
- mindsdb/integrations/handlers/ollama_handler/ollama_handler.py +171 -0
- mindsdb/integrations/handlers/openai_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/openai_handler/__init__.py +22 -0
- mindsdb/integrations/handlers/openai_handler/constants.py +36 -0
- mindsdb/integrations/handlers/openai_handler/creation_args.py +14 -0
- mindsdb/integrations/handlers/openai_handler/helpers.py +197 -0
- mindsdb/integrations/handlers/openai_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/openai_handler/model_using_args.py +5 -0
- mindsdb/integrations/handlers/openai_handler/openai_handler.py +1188 -0
- mindsdb/integrations/handlers/openai_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/openai_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/openai_handler/tests/test_openai_handler.py +509 -0
- mindsdb/integrations/handlers/openbb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/openbb_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/openbb_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/openbb_handler/openbb_handler.py +119 -0
- mindsdb/integrations/handlers/openbb_handler/openbb_tables.py +337 -0
- mindsdb/integrations/handlers/openbb_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/opengauss_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/opengauss_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/opengauss_handler/connection_args.py +36 -0
- mindsdb/integrations/handlers/opengauss_handler/icon.svg +6 -0
- mindsdb/integrations/handlers/opengauss_handler/opengauss_handler.py +11 -0
- mindsdb/integrations/handlers/opengauss_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/opengauss_handler/tests/test_opengauss_handler.py +45 -0
- mindsdb/integrations/handlers/openstreetmap_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/openstreetmap_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/openstreetmap_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/openstreetmap_handler/openstreetmap_handler.py +90 -0
- mindsdb/integrations/handlers/openstreetmap_handler/openstreetmap_tables.py +243 -0
- mindsdb/integrations/handlers/openstreetmap_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/openstreetmap_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/openstreetmap_handler/tests/test_openstreetmap_handler.py +37 -0
- mindsdb/integrations/handlers/oracle_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/oracle_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/oracle_handler/connection_args.py +70 -0
- mindsdb/integrations/handlers/oracle_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/oracle_handler/oracle_handler.py +246 -0
- mindsdb/integrations/handlers/oracle_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/oracle_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/oracle_handler/tests/test_oracle_handler.py +32 -0
- mindsdb/integrations/handlers/orioledb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/orioledb_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/orioledb_handler/connection_args.py +36 -0
- mindsdb/integrations/handlers/orioledb_handler/icon.svg +6 -0
- mindsdb/integrations/handlers/orioledb_handler/orioledb_handler.py +11 -0
- mindsdb/integrations/handlers/orioledb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/orioledb_handler/tests/test_orioledb_handler.py +56 -0
- mindsdb/integrations/handlers/palm_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/palm_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/palm_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/palm_handler/palm_handler.py +448 -0
- mindsdb/integrations/handlers/palm_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/paypal_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/paypal_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/paypal_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/paypal_handler/paypal_handler.py +145 -0
- mindsdb/integrations/handlers/paypal_handler/paypal_tables.py +283 -0
- mindsdb/integrations/handlers/paypal_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/pgvector_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/pgvector_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/pgvector_handler/connection_args.py +54 -0
- mindsdb/integrations/handlers/pgvector_handler/icon.svg +23 -0
- mindsdb/integrations/handlers/pgvector_handler/pgvector_handler.py +447 -0
- mindsdb/integrations/handlers/pgvector_handler/requirements.txt +0 -0
- mindsdb/integrations/handlers/phoenix_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/phoenix_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/phoenix_handler/connection_args.py +50 -0
- mindsdb/integrations/handlers/phoenix_handler/icon.png +0 -0
- mindsdb/integrations/handlers/phoenix_handler/phoenix_handler.py +229 -0
- mindsdb/integrations/handlers/phoenix_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/phoenix_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/phoenix_handler/tests/test_phoenix_handler.py +33 -0
- mindsdb/integrations/handlers/pinecone_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/pinecone_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/pinecone_handler/connection_args.py +53 -0
- mindsdb/integrations/handlers/pinecone_handler/icon.svg +21 -0
- mindsdb/integrations/handlers/pinecone_handler/pinecone_handler.py +304 -0
- mindsdb/integrations/handlers/pinecone_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/pinecone_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/pinot_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/pinot_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/pinot_handler/connection_args.py +49 -0
- mindsdb/integrations/handlers/pinot_handler/icon.svg +7 -0
- mindsdb/integrations/handlers/pinot_handler/pinot_handler.py +223 -0
- mindsdb/integrations/handlers/pinot_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/pinot_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/pinot_handler/tests/test_pinot_handler.py +36 -0
- mindsdb/integrations/handlers/pirateweather_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/pirateweather_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/pirateweather_handler/connection_args.py +14 -0
- mindsdb/integrations/handlers/pirateweather_handler/icon.png +0 -0
- mindsdb/integrations/handlers/pirateweather_handler/pirateweather_handler.py +236 -0
- mindsdb/integrations/handlers/plaid_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/plaid_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/plaid_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/plaid_handler/plaid_handler.py +225 -0
- mindsdb/integrations/handlers/plaid_handler/plaid_tables.py +159 -0
- mindsdb/integrations/handlers/plaid_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/plaid_handler/utils.py +9 -0
- mindsdb/integrations/handlers/planetscale_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/planetscale_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/planetscale_handler/connection_args.py +36 -0
- mindsdb/integrations/handlers/planetscale_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/planetscale_handler/planetscale_handler.py +14 -0
- mindsdb/integrations/handlers/planetscale_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/popularity_recommender_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/popularity_recommender_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/popularity_recommender_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/popularity_recommender_handler/popularity_recommender_handler.py +103 -0
- mindsdb/integrations/handlers/popularity_recommender_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/portkey_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/portkey_handler/__init__.py +22 -0
- mindsdb/integrations/handlers/portkey_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/portkey_handler/portkey_handler.py +79 -0
- mindsdb/integrations/handlers/portkey_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/postgres_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/postgres_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/postgres_handler/connection_args.py +65 -0
- mindsdb/integrations/handlers/postgres_handler/icon.svg +23 -0
- mindsdb/integrations/handlers/postgres_handler/postgres_handler.py +396 -0
- mindsdb/integrations/handlers/postgres_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/postgres_handler/tests/test_postgres_handler.py +172 -0
- mindsdb/integrations/handlers/pycaret_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/pycaret_handler/__init__.py +22 -0
- mindsdb/integrations/handlers/pycaret_handler/icon.png +0 -0
- mindsdb/integrations/handlers/pycaret_handler/pycaret_handler.py +116 -0
- mindsdb/integrations/handlers/pycaret_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/pycaret_handler/test/__init__.py +0 -0
- mindsdb/integrations/handlers/pycaret_handler/test/test_pycaret.py +242 -0
- mindsdb/integrations/handlers/pypi_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/pypi_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/pypi_handler/api.py +152 -0
- mindsdb/integrations/handlers/pypi_handler/icon.svg +123 -0
- mindsdb/integrations/handlers/pypi_handler/pypi_handler.py +73 -0
- mindsdb/integrations/handlers/pypi_handler/pypi_tables.py +263 -0
- mindsdb/integrations/handlers/qdrant_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/qdrant_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/qdrant_handler/connection_args.py +75 -0
- mindsdb/integrations/handlers/qdrant_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/qdrant_handler/qdrant_handler.py +402 -0
- mindsdb/integrations/handlers/qdrant_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/questdb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/questdb_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/questdb_handler/icon.svg +25 -0
- mindsdb/integrations/handlers/questdb_handler/questdb_handler.py +72 -0
- mindsdb/integrations/handlers/questdb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/questdb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/questdb_handler/tests/test_questdb_handler.py +35 -0
- mindsdb/integrations/handlers/quickbooks_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/quickbooks_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/quickbooks_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/quickbooks_handler/quickbooks_handler.py +97 -0
- mindsdb/integrations/handlers/quickbooks_handler/quickbooks_table.py +374 -0
- mindsdb/integrations/handlers/quickbooks_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/rag_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/rag_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/rag_handler/exceptions.py +26 -0
- mindsdb/integrations/handlers/rag_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/rag_handler/ingest.py +185 -0
- mindsdb/integrations/handlers/rag_handler/rag.py +147 -0
- mindsdb/integrations/handlers/rag_handler/rag_handler.py +144 -0
- mindsdb/integrations/handlers/rag_handler/requirements.txt +6 -0
- mindsdb/integrations/handlers/rag_handler/settings.py +479 -0
- mindsdb/integrations/handlers/ray_serve_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/ray_serve_handler/__init__.py +18 -0
- mindsdb/integrations/handlers/ray_serve_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/ray_serve_handler/ray_serve_handler.py +66 -0
- mindsdb/integrations/handlers/reddit_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/reddit_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/reddit_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/reddit_handler/reddit_handler.py +106 -0
- mindsdb/integrations/handlers/reddit_handler/reddit_tables.py +195 -0
- mindsdb/integrations/handlers/reddit_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/redshift_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/redshift_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/redshift_handler/connection_args.py +58 -0
- mindsdb/integrations/handlers/redshift_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/redshift_handler/redshift_handler.py +69 -0
- mindsdb/integrations/handlers/redshift_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/redshift_handler/tests/test_redshift_handler.py +154 -0
- mindsdb/integrations/handlers/replicate_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/replicate_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/replicate_handler/assets/Arjuna.png +0 -0
- mindsdb/integrations/handlers/replicate_handler/assets/groot.png +0 -0
- mindsdb/integrations/handlers/replicate_handler/assets/warrior.png +0 -0
- mindsdb/integrations/handlers/replicate_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/replicate_handler/replicate_handler.py +162 -0
- mindsdb/integrations/handlers/replicate_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/rocket_chat_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/rocket_chat_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/rocket_chat_handler/icon.svg +6 -0
- mindsdb/integrations/handlers/rocket_chat_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/rocket_chat_handler/rocket_chat_handler.py +153 -0
- mindsdb/integrations/handlers/rocket_chat_handler/rocket_chat_tables.py +201 -0
- mindsdb/integrations/handlers/rockset_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/rockset_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/rockset_handler/connection_args.py +45 -0
- mindsdb/integrations/handlers/rockset_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/rockset_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/rockset_handler/rockset_handler.py +11 -0
- mindsdb/integrations/handlers/rockset_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/rockset_handler/tests/test.png +0 -0
- mindsdb/integrations/handlers/rockset_handler/tests/test2.png +0 -0
- mindsdb/integrations/handlers/rockset_handler/tests/test_rockset_handler.py +32 -0
- mindsdb/integrations/handlers/s3_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/s3_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/s3_handler/connection_args.py +47 -0
- mindsdb/integrations/handlers/s3_handler/icon.svg +15 -0
- mindsdb/integrations/handlers/s3_handler/s3_handler.py +454 -0
- mindsdb/integrations/handlers/s3_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/s3_handler/tests/test_s3_handler.py +37 -0
- mindsdb/integrations/handlers/salesforce_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/salesforce_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/salesforce_handler/connection_args.py +39 -0
- mindsdb/integrations/handlers/salesforce_handler/icon.svg +1 -0
- mindsdb/integrations/handlers/salesforce_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/salesforce_handler/salesforce_handler.py +180 -0
- mindsdb/integrations/handlers/salesforce_handler/salesforce_tables.py +129 -0
- mindsdb/integrations/handlers/sap_erp_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/sap_erp_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/sap_erp_handler/api.py +79 -0
- mindsdb/integrations/handlers/sap_erp_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/sap_erp_handler/sap_erp_handler.py +161 -0
- mindsdb/integrations/handlers/sap_erp_handler/sap_erp_tables.py +1928 -0
- mindsdb/integrations/handlers/sap_erp_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/scylla_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/scylla_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/scylla_handler/connection_args.py +50 -0
- mindsdb/integrations/handlers/scylla_handler/icon.svg +17 -0
- mindsdb/integrations/handlers/scylla_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/scylla_handler/scylla_handler.py +205 -0
- mindsdb/integrations/handlers/scylla_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/scylla_handler/tests/test_scylla_handler.py +38 -0
- mindsdb/integrations/handlers/sendinblue_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/sendinblue_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/sendinblue_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/sendinblue_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/sendinblue_handler/sendinblue_handler.py +94 -0
- mindsdb/integrations/handlers/sendinblue_handler/sendinblue_tables.py +276 -0
- mindsdb/integrations/handlers/sentence_transformers_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/sentence_transformers_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/sentence_transformers_handler/icon.svg +21 -0
- mindsdb/integrations/handlers/sentence_transformers_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/sentence_transformers_handler/sentence_transformers_handler.py +75 -0
- mindsdb/integrations/handlers/sentence_transformers_handler/settings.py +12 -0
- mindsdb/integrations/handlers/serpstack_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/serpstack_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/serpstack_handler/icon.svg +86 -0
- mindsdb/integrations/handlers/serpstack_handler/serpstack_handler.py +123 -0
- mindsdb/integrations/handlers/serpstack_handler/serpstack_tables.py +260 -0
- mindsdb/integrations/handlers/sharepoint_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/sharepoint_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/sharepoint_handler/icon.svg +23 -0
- mindsdb/integrations/handlers/sharepoint_handler/sharepoint_api.py +579 -0
- mindsdb/integrations/handlers/sharepoint_handler/sharepoint_handler.py +147 -0
- mindsdb/integrations/handlers/sharepoint_handler/sharepoint_tables.py +581 -0
- mindsdb/integrations/handlers/sharepoint_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/sharepoint_handler/tests/test_sharepoint_handler.py +53 -0
- mindsdb/integrations/handlers/sharepoint_handler/utils.py +163 -0
- mindsdb/integrations/handlers/sheets_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/sheets_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/sheets_handler/connection_args.py +20 -0
- mindsdb/integrations/handlers/sheets_handler/icon.svg +55 -0
- mindsdb/integrations/handlers/sheets_handler/sheets_handler.py +176 -0
- mindsdb/integrations/handlers/sheets_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/sheets_handler/tests/test_sheets_handler.py +33 -0
- mindsdb/integrations/handlers/shopify_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/shopify_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/shopify_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/shopify_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/shopify_handler/shopify_handler.py +143 -0
- mindsdb/integrations/handlers/shopify_handler/shopify_tables.py +1083 -0
- mindsdb/integrations/handlers/singlestore_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/singlestore_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/singlestore_handler/icon.svg +16 -0
- mindsdb/integrations/handlers/singlestore_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/singlestore_handler/singlestore_handler.py +12 -0
- mindsdb/integrations/handlers/singlestore_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/singlestore_handler/tests/test_singlestore_handler.py +42 -0
- mindsdb/integrations/handlers/slack_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/slack_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/slack_handler/connection_args.py +26 -0
- mindsdb/integrations/handlers/slack_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/slack_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/slack_handler/slack_handler.py +339 -0
- mindsdb/integrations/handlers/slack_handler/slack_tables.py +718 -0
- mindsdb/integrations/handlers/slack_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/slack_handler/tests/test_slack.py +27 -0
- mindsdb/integrations/handlers/snowflake_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/snowflake_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/snowflake_handler/connection_args.py +63 -0
- mindsdb/integrations/handlers/snowflake_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/snowflake_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/snowflake_handler/snowflake_handler.py +280 -0
- mindsdb/integrations/handlers/snowflake_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/snowflake_handler/tests/test_snowflake_handler.py +230 -0
- mindsdb/integrations/handlers/solace_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/solace_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/solace_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/solace_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/solace_handler/solace_handler.py +169 -0
- mindsdb/integrations/handlers/solr_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/solr_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/solr_handler/connection_args.py +46 -0
- mindsdb/integrations/handlers/solr_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/solr_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/solr_handler/solr_handler.py +176 -0
- mindsdb/integrations/handlers/solr_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/solr_handler/tests/test_solr_handler.py +38 -0
- mindsdb/integrations/handlers/spacy_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/spacy_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/spacy_handler/icon.svg +3 -0
- mindsdb/integrations/handlers/spacy_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/spacy_handler/spacy_handler.py +194 -0
- mindsdb/integrations/handlers/sqlany_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/sqlany_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/sqlany_handler/connection_args.py +46 -0
- mindsdb/integrations/handlers/sqlany_handler/icon.svg +13 -0
- mindsdb/integrations/handlers/sqlany_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/sqlany_handler/sqlany_handler.py +179 -0
- mindsdb/integrations/handlers/sqlite_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/sqlite_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/sqlite_handler/connection_args.py +16 -0
- mindsdb/integrations/handlers/sqlite_handler/icon.svg +12 -0
- mindsdb/integrations/handlers/sqlite_handler/sqlite_handler.py +184 -0
- mindsdb/integrations/handlers/sqlite_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/sqlite_handler/tests/test_sqlite_handler.py +32 -0
- mindsdb/integrations/handlers/sqreamdb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/sqreamdb_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/sqreamdb_handler/connection_args.py +48 -0
- mindsdb/integrations/handlers/sqreamdb_handler/icon.svg +21 -0
- mindsdb/integrations/handlers/sqreamdb_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/sqreamdb_handler/sqreamdb_handler.py +154 -0
- mindsdb/integrations/handlers/sqreamdb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/sqreamdb_handler/tests/test_sqreamdb_handler.py +45 -0
- mindsdb/integrations/handlers/stabilityai_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/stabilityai_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/stabilityai_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/stabilityai_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/stabilityai_handler/stabilityai.py +186 -0
- mindsdb/integrations/handlers/stabilityai_handler/stabilityai_handler.py +172 -0
- mindsdb/integrations/handlers/starrocks_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/starrocks_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/starrocks_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/starrocks_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/starrocks_handler/starrocks_handler.py +48 -0
- mindsdb/integrations/handlers/starrocks_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/starrocks_handler/tests/test_starrocks_handler.py +56 -0
- mindsdb/integrations/handlers/statsforecast_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/statsforecast_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/statsforecast_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/statsforecast_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/statsforecast_handler/requirements_extra.txt +1 -0
- mindsdb/integrations/handlers/statsforecast_handler/statsforecast_handler.py +192 -0
- mindsdb/integrations/handlers/strapi_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/strapi_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/strapi_handler/icon.svg +7 -0
- mindsdb/integrations/handlers/strapi_handler/strapi_handler.py +153 -0
- mindsdb/integrations/handlers/strapi_handler/strapi_tables.py +131 -0
- mindsdb/integrations/handlers/strapi_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/strapi_handler/tests/test_strapi_handler.py +51 -0
- mindsdb/integrations/handlers/strava_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/strava_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/strava_handler/icon.svg +12 -0
- mindsdb/integrations/handlers/strava_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/strava_handler/strava_handler.py +113 -0
- mindsdb/integrations/handlers/strava_handler/strava_tables.py +247 -0
- mindsdb/integrations/handlers/stripe_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/stripe_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/stripe_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/stripe_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/stripe_handler/stripe_handler.py +102 -0
- mindsdb/integrations/handlers/stripe_handler/stripe_tables.py +508 -0
- mindsdb/integrations/handlers/supabase_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/supabase_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/supabase_handler/icon.svg +15 -0
- mindsdb/integrations/handlers/supabase_handler/supabase_handler.py +11 -0
- mindsdb/integrations/handlers/supabase_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/supabase_handler/tests/test_supabase_handler.py +46 -0
- mindsdb/integrations/handlers/surrealdb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/surrealdb_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/surrealdb_handler/connection_args.py +52 -0
- mindsdb/integrations/handlers/surrealdb_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/surrealdb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/surrealdb_handler/surrealdb_handler.py +196 -0
- mindsdb/integrations/handlers/surrealdb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/surrealdb_handler/tests/test_surrealdb_handler.py +57 -0
- mindsdb/integrations/handlers/surrealdb_handler/utils/__init__.py +0 -0
- mindsdb/integrations/handlers/surrealdb_handler/utils/surreal_get_info.py +20 -0
- mindsdb/integrations/handlers/symbl_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/symbl_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/symbl_handler/connection_args.py +25 -0
- mindsdb/integrations/handlers/symbl_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/symbl_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/symbl_handler/symbl_handler.py +106 -0
- mindsdb/integrations/handlers/symbl_handler/symbl_tables.py +648 -0
- mindsdb/integrations/handlers/tdengine_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/tdengine_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/tdengine_handler/connection_args.py +36 -0
- mindsdb/integrations/handlers/tdengine_handler/icon.svg +59 -0
- mindsdb/integrations/handlers/tdengine_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/tdengine_handler/tdengine_handler.py +146 -0
- mindsdb/integrations/handlers/tdengine_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/tdengine_handler/tests/test_tdengine_handler.py +48 -0
- mindsdb/integrations/handlers/teradata_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/teradata_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/teradata_handler/connection_args.py +39 -0
- mindsdb/integrations/handlers/teradata_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/teradata_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/teradata_handler/teradata_handler.py +245 -0
- mindsdb/integrations/handlers/tidb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/tidb_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/tidb_handler/connection_args.py +36 -0
- mindsdb/integrations/handlers/tidb_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/tidb_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/tidb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/tidb_handler/tests/test_tidb_handler.py +45 -0
- mindsdb/integrations/handlers/tidb_handler/tidb_handler.py +11 -0
- mindsdb/integrations/handlers/timegpt_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/timegpt_handler/__init__.py +18 -0
- mindsdb/integrations/handlers/timegpt_handler/icon.svg +5 -0
- mindsdb/integrations/handlers/timegpt_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/timegpt_handler/timegpt_handler.py +205 -0
- mindsdb/integrations/handlers/timescaledb_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/timescaledb_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/timescaledb_handler/icon.svg +9 -0
- mindsdb/integrations/handlers/timescaledb_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/timescaledb_handler/tests/test_timescaledb_handler.py +47 -0
- mindsdb/integrations/handlers/timescaledb_handler/timescaledb_handler.py +46 -0
- mindsdb/integrations/handlers/tpot_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/tpot_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/tpot_handler/icon.png +0 -0
- mindsdb/integrations/handlers/tpot_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/tpot_handler/tpot_handler.py +80 -0
- mindsdb/integrations/handlers/trino_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/trino_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/trino_handler/icon.svg +23 -0
- mindsdb/integrations/handlers/trino_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/trino_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/trino_handler/tests/test_trino_handler.py +48 -0
- mindsdb/integrations/handlers/trino_handler/trino_config_provider.py +12 -0
- mindsdb/integrations/handlers/trino_handler/trino_handler.py +182 -0
- mindsdb/integrations/handlers/tripadvisor_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/tripadvisor_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/tripadvisor_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/tripadvisor_handler/tripadvisor_api.py +215 -0
- mindsdb/integrations/handlers/tripadvisor_handler/tripadvisor_handler.py +275 -0
- mindsdb/integrations/handlers/tripadvisor_handler/tripadvisor_table.py +477 -0
- mindsdb/integrations/handlers/twelve_labs_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/twelve_labs_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/twelve_labs_handler/icon.svg +7 -0
- mindsdb/integrations/handlers/twelve_labs_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/twelve_labs_handler/settings.py +271 -0
- mindsdb/integrations/handlers/twelve_labs_handler/twelve_labs_api_client.py +567 -0
- mindsdb/integrations/handlers/twelve_labs_handler/twelve_labs_handler.py +285 -0
- mindsdb/integrations/handlers/twilio_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/twilio_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/twilio_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/twilio_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/twilio_handler/twilio_handler.py +385 -0
- mindsdb/integrations/handlers/twitter_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/twitter_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/twitter_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/twitter_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/twitter_handler/twitter_handler.py +471 -0
- mindsdb/integrations/handlers/unify_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/unify_handler/__init__.py +22 -0
- mindsdb/integrations/handlers/unify_handler/creation_args.py +14 -0
- mindsdb/integrations/handlers/unify_handler/icon.svg +25 -0
- mindsdb/integrations/handlers/unify_handler/model_using_args.py +5 -0
- mindsdb/integrations/handlers/unify_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/unify_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/unify_handler/tests/test_unify_handler.py +60 -0
- mindsdb/integrations/handlers/unify_handler/unify_handler.py +67 -0
- mindsdb/integrations/handlers/vertex_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/vertex_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/vertex_handler/icon.png +0 -0
- mindsdb/integrations/handlers/vertex_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/vertex_handler/vertex_client.py +95 -0
- mindsdb/integrations/handlers/vertex_handler/vertex_handler.py +87 -0
- mindsdb/integrations/handlers/vertica_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/vertica_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/vertica_handler/connection_args.py +41 -0
- mindsdb/integrations/handlers/vertica_handler/icon.svg +8 -0
- mindsdb/integrations/handlers/vertica_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/vertica_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/vertica_handler/tests/test_vertica_handler.py +53 -0
- mindsdb/integrations/handlers/vertica_handler/vertica_handler.py +160 -0
- mindsdb/integrations/handlers/vitess_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/vitess_handler/__init__.py +20 -0
- mindsdb/integrations/handlers/vitess_handler/icon.svg +23 -0
- mindsdb/integrations/handlers/vitess_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/vitess_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/vitess_handler/tests/test_vitess_handler.py +56 -0
- mindsdb/integrations/handlers/vitess_handler/vitess_handler.py +48 -0
- mindsdb/integrations/handlers/weaviate_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/weaviate_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/weaviate_handler/connection_args.py +29 -0
- mindsdb/integrations/handlers/weaviate_handler/icon.svg +197 -0
- mindsdb/integrations/handlers/weaviate_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/weaviate_handler/weaviate_handler.py +652 -0
- mindsdb/integrations/handlers/web_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/web_handler/__init__.py +24 -0
- mindsdb/integrations/handlers/web_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/web_handler/requirements.txt +3 -0
- mindsdb/integrations/handlers/web_handler/urlcrawl_helpers.py +343 -0
- mindsdb/integrations/handlers/web_handler/web_handler.py +91 -0
- mindsdb/integrations/handlers/webz_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/webz_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/webz_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/webz_handler/requirements.txt +3 -0
- mindsdb/integrations/handlers/webz_handler/webz_handler.py +175 -0
- mindsdb/integrations/handlers/webz_handler/webz_tables.py +218 -0
- mindsdb/integrations/handlers/whatsapp_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/whatsapp_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/whatsapp_handler/icon.svg +19 -0
- mindsdb/integrations/handlers/whatsapp_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/whatsapp_handler/whatsapp_handler.py +420 -0
- mindsdb/integrations/handlers/writer_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/writer_handler/__init__.py +30 -0
- mindsdb/integrations/handlers/writer_handler/evaluate.py +362 -0
- mindsdb/integrations/handlers/writer_handler/icon.svg +10 -0
- mindsdb/integrations/handlers/writer_handler/ingest.py +11 -0
- mindsdb/integrations/handlers/writer_handler/rag.py +14 -0
- mindsdb/integrations/handlers/writer_handler/requirements.txt +4 -0
- mindsdb/integrations/handlers/writer_handler/settings.py +86 -0
- mindsdb/integrations/handlers/writer_handler/writer_handler.py +188 -0
- mindsdb/integrations/handlers/xata_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/xata_handler/__init__.py +29 -0
- mindsdb/integrations/handlers/xata_handler/connection_args.py +35 -0
- mindsdb/integrations/handlers/xata_handler/icon.svg +29 -0
- mindsdb/integrations/handlers/xata_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/xata_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/xata_handler/xata_handler.py +347 -0
- mindsdb/integrations/handlers/youtube_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/youtube_handler/__init__.py +27 -0
- mindsdb/integrations/handlers/youtube_handler/icon.svg +11 -0
- mindsdb/integrations/handlers/youtube_handler/requirements.txt +2 -0
- mindsdb/integrations/handlers/youtube_handler/youtube_handler.py +164 -0
- mindsdb/integrations/handlers/youtube_handler/youtube_tables.py +448 -0
- mindsdb/integrations/handlers/yugabyte_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/yugabyte_handler/__init__.py +19 -0
- mindsdb/integrations/handlers/yugabyte_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/yugabyte_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/yugabyte_handler/tests/test_yugabyte_handler.py +49 -0
- mindsdb/integrations/handlers/yugabyte_handler/yugabyte_handler.py +60 -0
- mindsdb/integrations/handlers/zendesk_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/zendesk_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/zendesk_handler/connection_args.py +33 -0
- mindsdb/integrations/handlers/zendesk_handler/icon.svg +1 -0
- mindsdb/integrations/handlers/zendesk_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/zendesk_handler/zendesk_handler.py +89 -0
- mindsdb/integrations/handlers/zendesk_handler/zendesk_tables.py +463 -0
- mindsdb/integrations/handlers/zipcodebase_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/zipcodebase_handler/__init__.py +28 -0
- mindsdb/integrations/handlers/zipcodebase_handler/connection_args.py +18 -0
- mindsdb/integrations/handlers/zipcodebase_handler/icon.svg +4 -0
- mindsdb/integrations/handlers/zipcodebase_handler/tests/__init__.py +0 -0
- mindsdb/integrations/handlers/zipcodebase_handler/zipcodebase.py +67 -0
- mindsdb/integrations/handlers/zipcodebase_handler/zipcodebase_handler.py +107 -0
- mindsdb/integrations/handlers/zipcodebase_handler/zipcodebase_tables.py +499 -0
- mindsdb/integrations/handlers/zotero_handler/__about__.py +9 -0
- mindsdb/integrations/handlers/zotero_handler/__init__.py +21 -0
- mindsdb/integrations/handlers/zotero_handler/icon.svg +102 -0
- mindsdb/integrations/handlers/zotero_handler/requirements.txt +1 -0
- mindsdb/integrations/handlers/zotero_handler/zotero_handler.py +109 -0
- mindsdb/integrations/handlers/zotero_handler/zotero_tables.py +157 -0
- mindsdb/integrations/libs/__init__.py +3 -0
- mindsdb/integrations/libs/api_handler.py +436 -0
- mindsdb/integrations/libs/api_handler_exceptions.py +18 -0
- mindsdb/integrations/libs/base.py +355 -0
- mindsdb/integrations/libs/const.py +23 -0
- mindsdb/integrations/libs/llm/__init__.py +0 -0
- mindsdb/integrations/libs/llm/config.py +106 -0
- mindsdb/integrations/libs/llm/utils.py +603 -0
- mindsdb/integrations/libs/ml_exec_base.py +453 -0
- mindsdb/integrations/libs/ml_handler_process/__init__.py +8 -0
- mindsdb/integrations/libs/ml_handler_process/create_engine_process.py +28 -0
- mindsdb/integrations/libs/ml_handler_process/create_validation_process.py +14 -0
- mindsdb/integrations/libs/ml_handler_process/describe_process.py +117 -0
- mindsdb/integrations/libs/ml_handler_process/func_call_process.py +26 -0
- mindsdb/integrations/libs/ml_handler_process/handlers_cacher.py +28 -0
- mindsdb/integrations/libs/ml_handler_process/learn_process.py +156 -0
- mindsdb/integrations/libs/ml_handler_process/predict_process.py +35 -0
- mindsdb/integrations/libs/ml_handler_process/update_engine_process.py +28 -0
- mindsdb/integrations/libs/ml_handler_process/update_process.py +27 -0
- mindsdb/integrations/libs/process_cache.py +430 -0
- mindsdb/integrations/libs/realtime_chat_handler.py +33 -0
- mindsdb/integrations/libs/response.py +95 -0
- mindsdb/integrations/libs/storage_handler.py +88 -0
- mindsdb/integrations/libs/vectordatabase_handler.py +534 -0
- mindsdb/integrations/utilities/__init__.py +0 -0
- mindsdb/integrations/utilities/datasets/__init__.py +0 -0
- mindsdb/integrations/utilities/datasets/dataset.py +73 -0
- mindsdb/integrations/utilities/datasets/question_answering/fda_style_qa.csv +21 -0
- mindsdb/integrations/utilities/datasets/question_answering/squad_v2_val_100_sample.csv +106 -0
- mindsdb/integrations/utilities/date_utils.py +79 -0
- mindsdb/integrations/utilities/handler_utils.py +70 -0
- mindsdb/integrations/utilities/handlers/__init__.py +0 -0
- mindsdb/integrations/utilities/handlers/api_utilities/__init__.py +1 -0
- mindsdb/integrations/utilities/handlers/api_utilities/microsoft/__init__.py +1 -0
- mindsdb/integrations/utilities/handlers/api_utilities/microsoft/ms_graph_api_utilities.py +138 -0
- mindsdb/integrations/utilities/handlers/auth_utilities/__init__.py +2 -0
- mindsdb/integrations/utilities/handlers/auth_utilities/exceptions.py +11 -0
- mindsdb/integrations/utilities/handlers/auth_utilities/google/__init__.py +2 -0
- mindsdb/integrations/utilities/handlers/auth_utilities/google/google_service_account_oauth_utilities.py +59 -0
- mindsdb/integrations/utilities/handlers/auth_utilities/google/google_user_oauth_utilities.py +108 -0
- mindsdb/integrations/utilities/handlers/auth_utilities/microsoft/__init__.py +1 -0
- mindsdb/integrations/utilities/handlers/auth_utilities/microsoft/ms_graph_api_auth_utilities.py +128 -0
- mindsdb/integrations/utilities/handlers/query_utilities/__init__.py +4 -0
- mindsdb/integrations/utilities/handlers/query_utilities/base_query_utilities.py +63 -0
- mindsdb/integrations/utilities/handlers/query_utilities/delete_query_utilities.py +44 -0
- mindsdb/integrations/utilities/handlers/query_utilities/exceptions.py +17 -0
- mindsdb/integrations/utilities/handlers/query_utilities/insert_query_utilities.py +71 -0
- mindsdb/integrations/utilities/handlers/query_utilities/select_query_utilities.py +134 -0
- mindsdb/integrations/utilities/handlers/query_utilities/update_query_utilities.py +67 -0
- mindsdb/integrations/utilities/handlers/validation_utilities/__init__.py +1 -0
- mindsdb/integrations/utilities/handlers/validation_utilities/parameter_validation_utilities.py +18 -0
- mindsdb/integrations/utilities/install.py +134 -0
- mindsdb/integrations/utilities/query_traversal.py +239 -0
- mindsdb/integrations/utilities/rag/__init__.py +0 -0
- mindsdb/integrations/utilities/rag/chains/__init__.py +0 -0
- mindsdb/integrations/utilities/rag/chains/map_reduce_summarizer_chain.py +218 -0
- mindsdb/integrations/utilities/rag/config_loader.py +77 -0
- mindsdb/integrations/utilities/rag/loaders/__init__.py +0 -0
- mindsdb/integrations/utilities/rag/loaders/file_loader.py +44 -0
- mindsdb/integrations/utilities/rag/loaders/vector_store_loader/MDBVectorStore.py +54 -0
- mindsdb/integrations/utilities/rag/loaders/vector_store_loader/__init__.py +0 -0
- mindsdb/integrations/utilities/rag/loaders/vector_store_loader/pgvector.py +84 -0
- mindsdb/integrations/utilities/rag/loaders/vector_store_loader/vector_store_loader.py +60 -0
- mindsdb/integrations/utilities/rag/pipelines/__init__.py +0 -0
- mindsdb/integrations/utilities/rag/pipelines/rag.py +253 -0
- mindsdb/integrations/utilities/rag/rag_pipeline_builder.py +83 -0
- mindsdb/integrations/utilities/rag/rerankers/__init__.py +0 -0
- mindsdb/integrations/utilities/rag/rerankers/reranker_compressor.py +156 -0
- mindsdb/integrations/utilities/rag/retrievers/__init__.py +0 -0
- mindsdb/integrations/utilities/rag/retrievers/auto_retriever.py +117 -0
- mindsdb/integrations/utilities/rag/retrievers/base.py +10 -0
- mindsdb/integrations/utilities/rag/retrievers/multi_vector_retriever.py +101 -0
- mindsdb/integrations/utilities/rag/retrievers/sql_retriever.py +149 -0
- mindsdb/integrations/utilities/rag/settings.py +511 -0
- mindsdb/integrations/utilities/rag/splitters/__init__.py +0 -0
- mindsdb/integrations/utilities/rag/splitters/file_splitter.py +132 -0
- mindsdb/integrations/utilities/rag/utils.py +52 -0
- mindsdb/integrations/utilities/rag/vector_store.py +99 -0
- mindsdb/integrations/utilities/sql_utils.py +224 -0
- mindsdb/integrations/utilities/test_utils.py +30 -0
- mindsdb/integrations/utilities/time_series_utils.py +191 -0
- mindsdb/integrations/utilities/utils.py +32 -0
- mindsdb/interfaces/__init__.py +1 -0
- mindsdb/interfaces/agents/__init__.py +0 -0
- mindsdb/interfaces/agents/agents_controller.py +435 -0
- mindsdb/interfaces/agents/callback_handlers.py +130 -0
- mindsdb/interfaces/agents/constants.py +179 -0
- mindsdb/interfaces/agents/langchain_agent.py +676 -0
- mindsdb/interfaces/agents/langfuse_callback_handler.py +163 -0
- mindsdb/interfaces/agents/mindsdb_chat_model.py +196 -0
- mindsdb/interfaces/agents/mindsdb_database_agent.py +54 -0
- mindsdb/interfaces/agents/safe_output_parser.py +51 -0
- mindsdb/interfaces/chatbot/__init__.py +1 -0
- mindsdb/interfaces/chatbot/chatbot_controller.py +409 -0
- mindsdb/interfaces/chatbot/chatbot_executor.py +226 -0
- mindsdb/interfaces/chatbot/chatbot_task.py +174 -0
- mindsdb/interfaces/chatbot/memory.py +223 -0
- mindsdb/interfaces/chatbot/model_executor.py +107 -0
- mindsdb/interfaces/chatbot/polling.py +233 -0
- mindsdb/interfaces/chatbot/types.py +38 -0
- mindsdb/interfaces/database/__init__.py +0 -0
- mindsdb/interfaces/database/database.py +122 -0
- mindsdb/interfaces/database/integrations.py +931 -0
- mindsdb/interfaces/database/log.py +297 -0
- mindsdb/interfaces/database/projects.py +397 -0
- mindsdb/interfaces/database/views.py +139 -0
- mindsdb/interfaces/file/__init__.py +0 -0
- mindsdb/interfaces/file/file_controller.py +146 -0
- mindsdb/interfaces/functions/__init__.py +0 -0
- mindsdb/interfaces/functions/controller.py +207 -0
- mindsdb/interfaces/jobs/__init__.py +0 -0
- mindsdb/interfaces/jobs/jobs_controller.py +549 -0
- mindsdb/interfaces/jobs/scheduler.py +143 -0
- mindsdb/interfaces/knowledge_base/__init__.py +0 -0
- mindsdb/interfaces/knowledge_base/controller.py +899 -0
- mindsdb/interfaces/knowledge_base/preprocessing/__init__.py +0 -0
- mindsdb/interfaces/knowledge_base/preprocessing/constants.py +13 -0
- mindsdb/interfaces/knowledge_base/preprocessing/document_loader.py +176 -0
- mindsdb/interfaces/knowledge_base/preprocessing/document_preprocessor.py +401 -0
- mindsdb/interfaces/knowledge_base/preprocessing/models.py +108 -0
- mindsdb/interfaces/model/__init__.py +0 -0
- mindsdb/interfaces/model/functions.py +155 -0
- mindsdb/interfaces/model/model_controller.py +488 -0
- mindsdb/interfaces/query_context/__init__.py +0 -0
- mindsdb/interfaces/query_context/context_controller.py +289 -0
- mindsdb/interfaces/query_context/last_query.py +266 -0
- mindsdb/interfaces/skills/__init__.py +1 -0
- mindsdb/interfaces/skills/custom/__init__.py +0 -0
- mindsdb/interfaces/skills/custom/text2sql/__init__.py +0 -0
- mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_tool.py +37 -0
- mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_toolkit.py +88 -0
- mindsdb/interfaces/skills/retrieval_tool.py +110 -0
- mindsdb/interfaces/skills/skill_tool.py +255 -0
- mindsdb/interfaces/skills/skills_controller.py +175 -0
- mindsdb/interfaces/skills/sql_agent.py +256 -0
- mindsdb/interfaces/storage/__init__.py +1 -0
- mindsdb/interfaces/storage/db.py +597 -0
- mindsdb/interfaces/storage/fs.py +631 -0
- mindsdb/interfaces/storage/json.py +97 -0
- mindsdb/interfaces/storage/model_fs.py +282 -0
- mindsdb/interfaces/tabs/__init__.py +0 -0
- mindsdb/interfaces/tabs/tabs_controller.py +291 -0
- mindsdb/interfaces/tasks/__init__.py +0 -0
- mindsdb/interfaces/tasks/task.py +16 -0
- mindsdb/interfaces/tasks/task_monitor.py +150 -0
- mindsdb/interfaces/tasks/task_thread.py +55 -0
- mindsdb/interfaces/triggers/__init__.py +0 -0
- mindsdb/interfaces/triggers/trigger_task.py +95 -0
- mindsdb/interfaces/triggers/triggers_controller.py +167 -0
- mindsdb/metrics/__init__.py +0 -0
- mindsdb/metrics/metrics.py +50 -0
- mindsdb/metrics/server.py +26 -0
- mindsdb/migrations/__init__.py +0 -0
- mindsdb/migrations/alembic.ini +65 -0
- mindsdb/migrations/env.py +87 -0
- mindsdb/migrations/migrate.py +53 -0
- mindsdb/migrations/versions/2021-11-30_17c3d2384711_init.py +178 -0
- mindsdb/migrations/versions/2022-01-26_47f97b83cee4_views.py +38 -0
- mindsdb/migrations/versions/2022-02-09_27c5aca9e47e_db_files.py +256 -0
- mindsdb/migrations/versions/2022-05-25_d74c189b87e6_predictor_integration.py +156 -0
- mindsdb/migrations/versions/2022-07-08_999bceb904df_integration_args.py +106 -0
- mindsdb/migrations/versions/2022-07-15_b5b53e0ea7f8_training_data_rows_columns_count.py +29 -0
- mindsdb/migrations/versions/2022-07-22_6e834843e7e9_training_time.py +33 -0
- mindsdb/migrations/versions/2022-08-19_976f15a37e6a_predictors_versioning.py +42 -0
- mindsdb/migrations/versions/2022-08-25_6a54ba55872e_view_integration.py +36 -0
- mindsdb/migrations/versions/2022-08-29_473e8f239481_straighten.py +81 -0
- mindsdb/migrations/versions/2022-09-06_96d5fef10caa_data_integration_id.py +69 -0
- mindsdb/migrations/versions/2022-09-08_87b2df2b83e1_predictor_status.py +74 -0
- mindsdb/migrations/versions/2022-09-19_3d5e70105df7_content_storage.py +59 -0
- mindsdb/migrations/versions/2022-09-29_cada7d2be947_json_storage.py +90 -0
- mindsdb/migrations/versions/2022-10-14_43c52d23845a_projects.py +115 -0
- mindsdb/migrations/versions/2022-11-07_1e60096fc817_predictor_version.py +66 -0
- mindsdb/migrations/versions/2022-11-11_d429095b570f_data_integration_id.py +106 -0
- mindsdb/migrations/versions/2022-12-26_459218b0844c_fix_unique_constraint.py +34 -0
- mindsdb/migrations/versions/2023-02-02_b6d0a47294ac_jobs.py +56 -0
- mindsdb/migrations/versions/2023-02-17_ee63d868fa84_predictor_integration_null.py +42 -0
- mindsdb/migrations/versions/2023-02-25_3154382dab17_training_progress.py +36 -0
- mindsdb/migrations/versions/2023-02-27_ef04cdbe51ed_jobs_user_class.py +33 -0
- mindsdb/migrations/versions/2023-04-11_b8be148dbc85_jobs_history_query.py +35 -0
- mindsdb/migrations/versions/2023-05-24_6d748f2c7b0b_remove_streams.py +46 -0
- mindsdb/migrations/versions/2023-05-31_aaecd7012a78_chatbot.py +41 -0
- mindsdb/migrations/versions/2023-06-16_9d6271bb2c38_update_chat_bots_table.py +28 -0
- mindsdb/migrations/versions/2023-06-19_b5bf593ba659_create_chat_bots_history_table.py +35 -0
- mindsdb/migrations/versions/2023-06-27_607709e1615b_update_project_names.py +60 -0
- mindsdb/migrations/versions/2023-07-13_a57506731839_triggers.py +54 -0
- mindsdb/migrations/versions/2023-07-19_ad04ee0bd385_chatbot_to_task.py +38 -0
- mindsdb/migrations/versions/2023-08-29_b0382f5be48d_predictor_hostname.py +26 -0
- mindsdb/migrations/versions/2023-08-31_4c26ad04eeaa_add_skills_table.py +32 -0
- mindsdb/migrations/versions/2023-09-06_d44ab65a6a35_add_agents_table.py +35 -0
- mindsdb/migrations/versions/2023-09-06_e187961e844a_add_agent_skills_table.py +29 -0
- mindsdb/migrations/versions/2023-09-18_011e6f2dd9c2_backfill_agent_id.py +82 -0
- mindsdb/migrations/versions/2023-09-18_f16d4ab03091_add_agent_id.py +28 -0
- mindsdb/migrations/versions/2023-09-20_309db3d07cf4_add_knowledge_base.py +54 -0
- mindsdb/migrations/versions/2023-10-03_6cb02dfd7f61_query_context.py +38 -0
- mindsdb/migrations/versions/2023-11-01_c67822e96833_jobs_active.py +33 -0
- mindsdb/migrations/versions/2023-12-25_4b3c9d63e89c_predictor_index.py +44 -0
- mindsdb/migrations/versions/2024-02-02_5a5c49313e52_job_condition.py +32 -0
- mindsdb/migrations/versions/2024-02-12_9461892bd889_llm_log.py +44 -0
- mindsdb/migrations/versions/2024-04-25_2958416fbe75_drop_semaphor.py +36 -0
- mindsdb/migrations/versions/2024-06-06_cbedc4968d5d_store_llm_data.py +34 -0
- mindsdb/migrations/versions/2024-07-09_bfc6f44f5bc9_agent_model_optional.py +50 -0
- mindsdb/migrations/versions/2024-07-19_45eb2eb61f70_add_provider_to_agent.py +47 -0
- mindsdb/migrations/versions/2024-08-12_8e17ff6b75e9_agents_deleted_at.py +42 -0
- mindsdb/migrations/versions/2024-10-07_6c57ed39a82b_added_webhook_token_to_chat_bots.py +27 -0
- mindsdb/migrations/versions/2024-11-15_9d559f68d535_add_llm_log_columns.py +41 -0
- mindsdb/migrations/versions/2024-11-19_0f89b523f346_agent_skills_parameters.py +28 -0
- mindsdb/migrations/versions/2024-11-28_a8a3fac369e7_llm_log_json_in_out.py +103 -0
- mindsdb/migrations/versions/2024-11-29_f6dc924079fa_predictor_training_metadata.py +44 -0
- mindsdb/migrations/versions/__init__.py +0 -0
- mindsdb/utilities/__init__.py +0 -0
- mindsdb/utilities/auth.py +73 -0
- mindsdb/utilities/cache.py +282 -0
- mindsdb/utilities/config.py +530 -0
- mindsdb/utilities/context.py +57 -0
- mindsdb/utilities/context_executor.py +59 -0
- mindsdb/utilities/exception.py +29 -0
- mindsdb/utilities/fs.py +153 -0
- mindsdb/utilities/functions.py +197 -0
- mindsdb/utilities/hooks/__init__.py +34 -0
- mindsdb/utilities/hooks/profiling.py +74 -0
- mindsdb/utilities/json_encoder.py +33 -0
- mindsdb/utilities/log.py +97 -0
- mindsdb/utilities/log_controller.py +39 -0
- mindsdb/utilities/ml_task_queue/__init__.py +57 -0
- mindsdb/utilities/ml_task_queue/base.py +14 -0
- mindsdb/utilities/ml_task_queue/const.py +26 -0
- mindsdb/utilities/ml_task_queue/consumer.py +252 -0
- mindsdb/utilities/ml_task_queue/producer.py +81 -0
- mindsdb/utilities/ml_task_queue/task.py +82 -0
- mindsdb/utilities/ml_task_queue/utils.py +124 -0
- mindsdb/utilities/otel.py +72 -0
- mindsdb/utilities/profiler/__init__.py +19 -0
- mindsdb/utilities/profiler/profiler.py +144 -0
- mindsdb/utilities/ps.py +78 -0
- mindsdb/utilities/render/__init__.py +0 -0
- mindsdb/utilities/render/sqlalchemy_render.py +831 -0
- mindsdb/utilities/security.py +54 -0
- mindsdb/utilities/sentry.py +46 -0
- mindsdb/utilities/telemetry.py +44 -0
- mindsdb/utilities/wizards.py +49 -0
- MindsDB-1.2.9.dist-info/LICENSE +0 -21
- MindsDB-1.2.9.dist-info/METADATA +0 -111
- MindsDB-1.2.9.dist-info/RECORD +0 -55
- mindsdb/config/__init__.py +0 -32
- mindsdb/config/helpers.py +0 -21
- mindsdb/external_libs/stats.py +0 -61
- mindsdb/libs/__init__.py +0 -6
- mindsdb/libs/backends/lightwood.py +0 -113
- mindsdb/libs/backends/ludwig.py +0 -507
- mindsdb/libs/constants/mindsdb.py +0 -81
- mindsdb/libs/controllers/predictor.py +0 -592
- mindsdb/libs/controllers/transaction.py +0 -254
- mindsdb/libs/data_sources/file_ds.py +0 -196
- mindsdb/libs/data_types/data_source.py +0 -59
- mindsdb/libs/data_types/mindsdb_logger.py +0 -127
- mindsdb/libs/data_types/probability_evaluation.py +0 -56
- mindsdb/libs/data_types/transaction_data.py +0 -15
- mindsdb/libs/data_types/transaction_output_data.py +0 -29
- mindsdb/libs/data_types/transaction_output_row.py +0 -35
- mindsdb/libs/helpers/explain_prediction.py +0 -114
- mindsdb/libs/helpers/file_helpers.py +0 -66
- mindsdb/libs/helpers/general_helpers.py +0 -276
- mindsdb/libs/helpers/multi_data_source.py +0 -28
- mindsdb/libs/helpers/parser.py +0 -161
- mindsdb/libs/helpers/probabilistic_validator.py +0 -198
- mindsdb/libs/helpers/sqlite_helpers.py +0 -33
- mindsdb/libs/helpers/text_helpers.py +0 -79
- mindsdb/libs/helpers/train_helpers.py +0 -4
- mindsdb/libs/phases/base_module.py +0 -62
- mindsdb/libs/phases/data_extractor/data_extractor.py +0 -233
- mindsdb/libs/phases/data_transformer/data_transformer.py +0 -103
- mindsdb/libs/phases/model_analyzer/helpers/column_evaluator.py +0 -120
- mindsdb/libs/phases/model_analyzer/model_analyzer.py +0 -119
- mindsdb/libs/phases/model_interface/model_interface.py +0 -33
- mindsdb/libs/phases/stats_generator/scores.py +0 -377
- mindsdb/libs/phases/stats_generator/stats_generator.py +0 -694
- mindsdb/scraps.py +0 -133
- {MindsDB-1.2.9.dist-info → MindsDB-24.12.4.0.dist-info}/top_level.txt +0 -0
- /mindsdb/{external_libs → api}/__init__.py +0 -0
- /mindsdb/{libs/backends → api/common}/__init__.py +0 -0
- /mindsdb/{libs/constants → api/executor/data_types}/__init__.py +0 -0
- /mindsdb/{libs/controllers → api/executor/datahub/classes}/__init__.py +0 -0
- /mindsdb/{libs/data_sources → api/executor/sql_query}/__init__.py +0 -0
- /mindsdb/{libs/data_types → api/executor/utilities}/__init__.py +0 -0
- /mindsdb/{libs/helpers → api/http}/__init__.py +0 -0
- /mindsdb/{libs/phases → api/http/namespaces}/__init__.py +0 -0
- /mindsdb/{libs/phases/data_extractor → api/http/namespaces/configs}/__init__.py +0 -0
- /mindsdb/{libs/phases/data_transformer → api/mongo}/__init__.py +0 -0
- /mindsdb/{libs/phases/model_analyzer → api/mongo/utilities}/__init__.py +0 -0
- /mindsdb/{libs/phases/model_analyzer/helpers → api/mysql}/__init__.py +0 -0
- /mindsdb/{libs/phases/model_interface → api/mysql/mysql_proxy}/__init__.py +0 -0
- /mindsdb/{libs/phases/stats_generator → api/mysql/mysql_proxy/classes}/__init__.py +0 -0
|
@@ -0,0 +1,931 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
import base64
|
|
4
|
+
import shutil
|
|
5
|
+
import ast
|
|
6
|
+
import time
|
|
7
|
+
import tempfile
|
|
8
|
+
import importlib
|
|
9
|
+
import threading
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
from copy import deepcopy
|
|
12
|
+
from typing import Optional
|
|
13
|
+
from textwrap import dedent
|
|
14
|
+
from collections import OrderedDict
|
|
15
|
+
import inspect
|
|
16
|
+
|
|
17
|
+
from sqlalchemy import func
|
|
18
|
+
|
|
19
|
+
from mindsdb.interfaces.storage import db
|
|
20
|
+
from mindsdb.utilities.config import Config
|
|
21
|
+
from mindsdb.utilities.exception import EntityNotExistsError
|
|
22
|
+
from mindsdb.interfaces.storage.fs import FsStore, FileStorage, RESOURCE_GROUP
|
|
23
|
+
from mindsdb.interfaces.storage.model_fs import HandlerStorage
|
|
24
|
+
from mindsdb.interfaces.file.file_controller import FileController
|
|
25
|
+
from mindsdb.integrations.libs.base import DatabaseHandler
|
|
26
|
+
from mindsdb.integrations.libs.base import BaseMLEngine
|
|
27
|
+
from mindsdb.integrations.libs.api_handler import APIHandler
|
|
28
|
+
from mindsdb.integrations.libs.const import HANDLER_CONNECTION_ARG_TYPE as ARG_TYPE, HANDLER_TYPE
|
|
29
|
+
from mindsdb.interfaces.model.functions import get_model_records
|
|
30
|
+
from mindsdb.utilities.context import context as ctx
|
|
31
|
+
from mindsdb.utilities import log
|
|
32
|
+
from mindsdb.integrations.libs.ml_exec_base import BaseMLEngineExec
|
|
33
|
+
from mindsdb.integrations.libs.base import BaseHandler
|
|
34
|
+
import mindsdb.utilities.profiler as profiler
|
|
35
|
+
|
|
36
|
+
logger = log.getLogger(__name__)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class HandlersCache:
|
|
40
|
+
""" Cache for data handlers that keep connections opened during ttl time from handler last use
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
def __init__(self, ttl: int = 60):
|
|
44
|
+
""" init cache
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
ttl (int): time to live (in seconds) for record in cache
|
|
48
|
+
"""
|
|
49
|
+
self.ttl = ttl
|
|
50
|
+
self.handlers = {}
|
|
51
|
+
self._lock = threading.RLock()
|
|
52
|
+
self._stop_event = threading.Event()
|
|
53
|
+
self.cleaner_thread = None
|
|
54
|
+
|
|
55
|
+
def __del__(self):
|
|
56
|
+
self._stop_clean()
|
|
57
|
+
|
|
58
|
+
def _start_clean(self) -> None:
|
|
59
|
+
""" start worker that close connections after ttl expired
|
|
60
|
+
"""
|
|
61
|
+
if (
|
|
62
|
+
isinstance(self.cleaner_thread, threading.Thread)
|
|
63
|
+
and self.cleaner_thread.is_alive()
|
|
64
|
+
):
|
|
65
|
+
return
|
|
66
|
+
self._stop_event.clear()
|
|
67
|
+
self.cleaner_thread = threading.Thread(target=self._clean)
|
|
68
|
+
self.cleaner_thread.daemon = True
|
|
69
|
+
self.cleaner_thread.start()
|
|
70
|
+
|
|
71
|
+
def _stop_clean(self) -> None:
|
|
72
|
+
""" stop clean worker
|
|
73
|
+
"""
|
|
74
|
+
self._stop_event.set()
|
|
75
|
+
|
|
76
|
+
def set(self, handler: DatabaseHandler):
|
|
77
|
+
""" add (or replace) handler in cache
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
handler (DatabaseHandler)
|
|
81
|
+
"""
|
|
82
|
+
with self._lock:
|
|
83
|
+
try:
|
|
84
|
+
# If the handler is defined to be thread safe, set 0 as the last element of the key, otherwise set the thrad ID.
|
|
85
|
+
key = (handler.name, ctx.company_id, 0 if getattr(handler, 'thread_safe', False) else threading.get_native_id())
|
|
86
|
+
handler.connect()
|
|
87
|
+
self.handlers[key] = {
|
|
88
|
+
'handler': handler,
|
|
89
|
+
'expired_at': time.time() + self.ttl
|
|
90
|
+
}
|
|
91
|
+
except Exception:
|
|
92
|
+
pass
|
|
93
|
+
self._start_clean()
|
|
94
|
+
|
|
95
|
+
def get(self, name: str) -> Optional[DatabaseHandler]:
|
|
96
|
+
""" get handler from cache by name
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
name (str): handler name
|
|
100
|
+
|
|
101
|
+
Returns:
|
|
102
|
+
DatabaseHandler
|
|
103
|
+
"""
|
|
104
|
+
with self._lock:
|
|
105
|
+
# If the handler is not thread safe, the thread ID will be assigned to the last element of the key.
|
|
106
|
+
key = (name, ctx.company_id, threading.get_native_id())
|
|
107
|
+
if key not in self.handlers:
|
|
108
|
+
# If the handler is thread safe, a 0 will be assigned to the last element of the key.
|
|
109
|
+
key = (name, ctx.company_id, 0)
|
|
110
|
+
if (
|
|
111
|
+
key not in self.handlers
|
|
112
|
+
or self.handlers[key]['expired_at'] < time.time()
|
|
113
|
+
):
|
|
114
|
+
return None
|
|
115
|
+
self.handlers[key]['expired_at'] = time.time() + self.ttl
|
|
116
|
+
return self.handlers[key]['handler']
|
|
117
|
+
|
|
118
|
+
def delete(self, name: str) -> None:
|
|
119
|
+
""" delete handler from cache
|
|
120
|
+
|
|
121
|
+
Args:
|
|
122
|
+
name (str): handler name
|
|
123
|
+
"""
|
|
124
|
+
with self._lock:
|
|
125
|
+
key = (name, ctx.company_id, threading.get_native_id())
|
|
126
|
+
if key in self.handlers:
|
|
127
|
+
try:
|
|
128
|
+
self.handlers[key].disconnect()
|
|
129
|
+
except Exception:
|
|
130
|
+
pass
|
|
131
|
+
del self.handlers[key]
|
|
132
|
+
if len(self.handlers) == 0:
|
|
133
|
+
self._stop_clean()
|
|
134
|
+
|
|
135
|
+
def _clean(self) -> None:
|
|
136
|
+
""" worker that delete from cache handlers that was not in use for ttl
|
|
137
|
+
"""
|
|
138
|
+
while self._stop_event.wait(timeout=3) is False:
|
|
139
|
+
with self._lock:
|
|
140
|
+
for key in list(self.handlers.keys()):
|
|
141
|
+
if (
|
|
142
|
+
self.handlers[key]['expired_at'] < time.time()
|
|
143
|
+
and sys.getrefcount(self.handlers[key]) == 2 # returned ref count is always 1 higher
|
|
144
|
+
):
|
|
145
|
+
try:
|
|
146
|
+
self.handlers[key].disconnect()
|
|
147
|
+
except Exception:
|
|
148
|
+
pass
|
|
149
|
+
del self.handlers[key]
|
|
150
|
+
if len(self.handlers) == 0:
|
|
151
|
+
self._stop_event.set()
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class IntegrationController:
|
|
155
|
+
@staticmethod
|
|
156
|
+
def _is_not_empty_str(s):
|
|
157
|
+
return isinstance(s, str) and len(s) > 0
|
|
158
|
+
|
|
159
|
+
def __init__(self):
|
|
160
|
+
self._import_lock = threading.Lock()
|
|
161
|
+
self._load_handler_modules()
|
|
162
|
+
self.handlers_cache = HandlersCache()
|
|
163
|
+
|
|
164
|
+
def _add_integration_record(self, name, engine, connection_args):
|
|
165
|
+
integration_record = db.Integration(
|
|
166
|
+
name=name,
|
|
167
|
+
engine=engine,
|
|
168
|
+
data=connection_args or {},
|
|
169
|
+
company_id=ctx.company_id
|
|
170
|
+
)
|
|
171
|
+
db.session.add(integration_record)
|
|
172
|
+
db.session.commit()
|
|
173
|
+
return integration_record.id
|
|
174
|
+
|
|
175
|
+
def add(self, name, engine, connection_args):
|
|
176
|
+
|
|
177
|
+
logger.debug(
|
|
178
|
+
"%s: add method calling name=%s, engine=%s, connection_args=%s, company_id=%s",
|
|
179
|
+
self.__class__.__name__, name, engine, connection_args, ctx.company_id
|
|
180
|
+
)
|
|
181
|
+
handler_meta = self.get_handler_meta(engine)
|
|
182
|
+
|
|
183
|
+
accept_connection_args = handler_meta.get('connection_args')
|
|
184
|
+
logger.debug("%s: accept_connection_args - %s", self.__class__.__name__, accept_connection_args)
|
|
185
|
+
|
|
186
|
+
files_dir = None
|
|
187
|
+
if accept_connection_args is not None and connection_args is not None:
|
|
188
|
+
for arg_name, arg_value in connection_args.items():
|
|
189
|
+
if (
|
|
190
|
+
arg_name in accept_connection_args
|
|
191
|
+
and accept_connection_args[arg_name]['type'] == ARG_TYPE.PATH
|
|
192
|
+
):
|
|
193
|
+
if files_dir is None:
|
|
194
|
+
files_dir = tempfile.mkdtemp(prefix='mindsdb_files_')
|
|
195
|
+
shutil.copy(arg_value, files_dir)
|
|
196
|
+
connection_args[arg_name] = Path(arg_value).name
|
|
197
|
+
|
|
198
|
+
integration_id = self._add_integration_record(name, engine, connection_args)
|
|
199
|
+
|
|
200
|
+
if files_dir is not None:
|
|
201
|
+
store = FileStorage(
|
|
202
|
+
resource_group=RESOURCE_GROUP.INTEGRATION,
|
|
203
|
+
resource_id=integration_id,
|
|
204
|
+
sync=False
|
|
205
|
+
)
|
|
206
|
+
store.add(files_dir, '')
|
|
207
|
+
store.push()
|
|
208
|
+
|
|
209
|
+
if handler_meta.get('type') == HANDLER_TYPE.ML:
|
|
210
|
+
ml_handler = self.get_ml_handler(name)
|
|
211
|
+
ml_handler.create_engine(connection_args, integration_id)
|
|
212
|
+
|
|
213
|
+
return integration_id
|
|
214
|
+
|
|
215
|
+
def modify(self, name, data):
|
|
216
|
+
self.handlers_cache.delete(name)
|
|
217
|
+
integration_record = self._get_integration_record(name)
|
|
218
|
+
old_data = deepcopy(integration_record.data)
|
|
219
|
+
for k in old_data:
|
|
220
|
+
if k not in data:
|
|
221
|
+
data[k] = old_data[k]
|
|
222
|
+
|
|
223
|
+
integration_record.data = data
|
|
224
|
+
db.session.commit()
|
|
225
|
+
|
|
226
|
+
def delete(self, name):
|
|
227
|
+
if name in ('files', 'lightwood'):
|
|
228
|
+
raise Exception('Unable to drop: is system database')
|
|
229
|
+
|
|
230
|
+
self.handlers_cache.delete(name)
|
|
231
|
+
|
|
232
|
+
# check permanent integration
|
|
233
|
+
if name in self.handler_modules:
|
|
234
|
+
handler = self.handler_modules[name]
|
|
235
|
+
|
|
236
|
+
if getattr(handler, 'permanent', False) is True:
|
|
237
|
+
raise Exception('Unable to drop: is permanent integration')
|
|
238
|
+
|
|
239
|
+
integration_record = self._get_integration_record(name)
|
|
240
|
+
|
|
241
|
+
# if this is ml engine
|
|
242
|
+
engine_models = get_model_records(ml_handler_name=name, deleted_at=None)
|
|
243
|
+
active_models = [m.name for m in engine_models if m.deleted_at is None]
|
|
244
|
+
if len(active_models) > 0:
|
|
245
|
+
raise Exception(f'Unable to drop ml engine with active models: {active_models}')
|
|
246
|
+
|
|
247
|
+
# check linked KBs
|
|
248
|
+
kb = db.KnowledgeBase.query.filter_by(vector_database_id=integration_record.id).first()
|
|
249
|
+
if kb is not None:
|
|
250
|
+
raise Exception(f'Unable to drop, integration is used by knowledge base: {kb.name}')
|
|
251
|
+
|
|
252
|
+
# check linked predictors
|
|
253
|
+
models = get_model_records()
|
|
254
|
+
for model in models:
|
|
255
|
+
if (
|
|
256
|
+
model.data_integration_ref is not None
|
|
257
|
+
and model.data_integration_ref.get('type') == 'integration'
|
|
258
|
+
and isinstance(model.data_integration_ref.get('id'), int)
|
|
259
|
+
and model.data_integration_ref['id'] == integration_record.id
|
|
260
|
+
):
|
|
261
|
+
model.data_integration_ref = None
|
|
262
|
+
|
|
263
|
+
# unlink deleted models
|
|
264
|
+
for model in engine_models:
|
|
265
|
+
if model.deleted_at is not None:
|
|
266
|
+
model.integration_id = None
|
|
267
|
+
|
|
268
|
+
db.session.delete(integration_record)
|
|
269
|
+
db.session.commit()
|
|
270
|
+
|
|
271
|
+
def _get_integration_record_data(self, integration_record, show_secrets=True):
|
|
272
|
+
if (
|
|
273
|
+
integration_record is None
|
|
274
|
+
or integration_record.data is None
|
|
275
|
+
or isinstance(integration_record.data, dict) is False
|
|
276
|
+
):
|
|
277
|
+
return None
|
|
278
|
+
data = deepcopy(integration_record.data)
|
|
279
|
+
|
|
280
|
+
bundle_path = data.get('secure_connect_bundle')
|
|
281
|
+
mysql_ssl_ca = data.get('ssl_ca')
|
|
282
|
+
mysql_ssl_cert = data.get('ssl_cert')
|
|
283
|
+
mysql_ssl_key = data.get('ssl_key')
|
|
284
|
+
if (
|
|
285
|
+
data.get('type') in ('mysql', 'mariadb')
|
|
286
|
+
and (
|
|
287
|
+
self._is_not_empty_str(mysql_ssl_ca)
|
|
288
|
+
or self._is_not_empty_str(mysql_ssl_cert)
|
|
289
|
+
or self._is_not_empty_str(mysql_ssl_key)
|
|
290
|
+
)
|
|
291
|
+
or data.get('type') in ('cassandra', 'scylla')
|
|
292
|
+
and bundle_path is not None
|
|
293
|
+
):
|
|
294
|
+
fs_store = FsStore()
|
|
295
|
+
integrations_dir = Config()['paths']['integrations']
|
|
296
|
+
folder_name = f'integration_files_{integration_record.company_id}_{integration_record.id}'
|
|
297
|
+
fs_store.get(
|
|
298
|
+
folder_name,
|
|
299
|
+
base_dir=integrations_dir
|
|
300
|
+
)
|
|
301
|
+
|
|
302
|
+
handler_meta = self.get_handler_metadata(integration_record.engine)
|
|
303
|
+
integration_type = None
|
|
304
|
+
if isinstance(handler_meta, dict):
|
|
305
|
+
# in other cases, the handler directory is likely not exist.
|
|
306
|
+
integration_type = handler_meta.get('type')
|
|
307
|
+
|
|
308
|
+
if show_secrets is False and handler_meta is not None:
|
|
309
|
+
connection_args = handler_meta.get('connection_args', None)
|
|
310
|
+
if isinstance(connection_args, dict):
|
|
311
|
+
if integration_type == HANDLER_TYPE.DATA:
|
|
312
|
+
for key, value in connection_args.items():
|
|
313
|
+
if key in data and value.get('secret', False) is True:
|
|
314
|
+
data[key] = '******'
|
|
315
|
+
elif integration_type == HANDLER_TYPE.ML:
|
|
316
|
+
creation_args = connection_args.get('creation_args')
|
|
317
|
+
if isinstance(creation_args, dict):
|
|
318
|
+
for key, value in creation_args.items():
|
|
319
|
+
if key in data and value.get('secret', False) is True:
|
|
320
|
+
data[key] = '******'
|
|
321
|
+
else:
|
|
322
|
+
raise ValueError(f'Unexpected handler type: {integration_type}')
|
|
323
|
+
else:
|
|
324
|
+
# region obsolete, del in future
|
|
325
|
+
if 'password' in data:
|
|
326
|
+
data['password'] = None
|
|
327
|
+
if (
|
|
328
|
+
data.get('type') == 'redis'
|
|
329
|
+
and isinstance(data.get('connection'), dict)
|
|
330
|
+
and 'password' in data['connection']
|
|
331
|
+
):
|
|
332
|
+
data['connection'] = None
|
|
333
|
+
# endregion
|
|
334
|
+
|
|
335
|
+
class_type, permanent = None, False
|
|
336
|
+
if handler_meta is not None:
|
|
337
|
+
class_type = handler_meta.get('class_type')
|
|
338
|
+
permanent = handler_meta.get('permanent', False)
|
|
339
|
+
|
|
340
|
+
return {
|
|
341
|
+
'id': integration_record.id,
|
|
342
|
+
'name': integration_record.name,
|
|
343
|
+
'type': integration_type,
|
|
344
|
+
'class_type': class_type,
|
|
345
|
+
'engine': integration_record.engine,
|
|
346
|
+
'permanent': permanent,
|
|
347
|
+
'date_last_update': deepcopy(integration_record.updated_at), # to del ?
|
|
348
|
+
'connection_data': data
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
def get_by_id(self, integration_id, show_secrets=True):
|
|
352
|
+
integration_record = (
|
|
353
|
+
db.session.query(db.Integration)
|
|
354
|
+
.filter_by(company_id=ctx.company_id, id=integration_id)
|
|
355
|
+
.first()
|
|
356
|
+
)
|
|
357
|
+
return self._get_integration_record_data(integration_record, show_secrets)
|
|
358
|
+
|
|
359
|
+
def get(self, name, show_secrets=True, case_sensitive=False):
|
|
360
|
+
try:
|
|
361
|
+
integration_record = self._get_integration_record(name, case_sensitive)
|
|
362
|
+
except EntityNotExistsError:
|
|
363
|
+
return None
|
|
364
|
+
return self._get_integration_record_data(integration_record, show_secrets)
|
|
365
|
+
|
|
366
|
+
@staticmethod
|
|
367
|
+
def _get_integration_record(name: str, case_sensitive: bool = False) -> db.Integration:
|
|
368
|
+
"""Get integration record by name
|
|
369
|
+
|
|
370
|
+
Args:
|
|
371
|
+
name (str): name of the integration
|
|
372
|
+
case_sensitive (bool): should search be case sensitive or not
|
|
373
|
+
|
|
374
|
+
Retruns:
|
|
375
|
+
db.Integration
|
|
376
|
+
"""
|
|
377
|
+
if case_sensitive:
|
|
378
|
+
integration_records = db.session.query(db.Integration).filter_by(
|
|
379
|
+
company_id=ctx.company_id,
|
|
380
|
+
name=name
|
|
381
|
+
).all()
|
|
382
|
+
if len(integration_records) > 1:
|
|
383
|
+
raise Exception(f"There is {len(integration_records)} integrations with name '{name}'")
|
|
384
|
+
if len(integration_records) == 0:
|
|
385
|
+
raise EntityNotExistsError(f"There is no integration with name '{name}'")
|
|
386
|
+
integration_record = integration_records[0]
|
|
387
|
+
else:
|
|
388
|
+
integration_record = db.session.query(db.Integration).filter(
|
|
389
|
+
(db.Integration.company_id == ctx.company_id)
|
|
390
|
+
& (func.lower(db.Integration.name) == func.lower(name))
|
|
391
|
+
).first()
|
|
392
|
+
if integration_record is None:
|
|
393
|
+
raise EntityNotExistsError(f"There is no integration with name '{name}'")
|
|
394
|
+
|
|
395
|
+
return integration_record
|
|
396
|
+
|
|
397
|
+
def get_all(self, show_secrets=True):
|
|
398
|
+
integration_records = db.session.query(db.Integration).filter_by(company_id=ctx.company_id).all()
|
|
399
|
+
integration_dict = {}
|
|
400
|
+
for record in integration_records:
|
|
401
|
+
if record is None or record.data is None:
|
|
402
|
+
continue
|
|
403
|
+
integration_dict[record.name] = self._get_integration_record_data(record, show_secrets)
|
|
404
|
+
return integration_dict
|
|
405
|
+
|
|
406
|
+
def _make_handler_args(self, name: str, handler_type: str, connection_data: dict, integration_id: int = None,
|
|
407
|
+
file_storage: FileStorage = None, handler_storage: HandlerStorage = None):
|
|
408
|
+
handler_args = dict(
|
|
409
|
+
name=name,
|
|
410
|
+
integration_id=integration_id,
|
|
411
|
+
connection_data=connection_data,
|
|
412
|
+
file_storage=file_storage,
|
|
413
|
+
handler_storage=handler_storage
|
|
414
|
+
)
|
|
415
|
+
|
|
416
|
+
if handler_type == 'files':
|
|
417
|
+
handler_args['file_controller'] = FileController()
|
|
418
|
+
elif self.handler_modules.get(handler_type, False).type == HANDLER_TYPE.ML:
|
|
419
|
+
handler_args['handler_controller'] = self
|
|
420
|
+
handler_args['company_id'] = ctx.company_id
|
|
421
|
+
|
|
422
|
+
return handler_args
|
|
423
|
+
|
|
424
|
+
def create_tmp_handler(self, name: str, engine: str, connection_args: dict) -> dict:
|
|
425
|
+
"""Create temporary handler, mostly for testing connections
|
|
426
|
+
|
|
427
|
+
Args:
|
|
428
|
+
name (str): Integration name
|
|
429
|
+
engine (str): Integration engine name
|
|
430
|
+
connection_args (dict): Connection arguments
|
|
431
|
+
|
|
432
|
+
Returns:
|
|
433
|
+
HandlerClass: Handler class instance
|
|
434
|
+
"""
|
|
435
|
+
integration_id = int(time.time() * 10000)
|
|
436
|
+
|
|
437
|
+
file_storage = FileStorage(
|
|
438
|
+
resource_group=RESOURCE_GROUP.INTEGRATION,
|
|
439
|
+
resource_id=integration_id,
|
|
440
|
+
root_dir='tmp',
|
|
441
|
+
sync=False
|
|
442
|
+
)
|
|
443
|
+
handler_storage = HandlerStorage(integration_id, root_dir='tmp', is_temporal=True)
|
|
444
|
+
|
|
445
|
+
handler_meta = self.get_handler_meta(engine)
|
|
446
|
+
if handler_meta is None:
|
|
447
|
+
raise ImportError(f"Handler '{engine}' does not exist")
|
|
448
|
+
if handler_meta["import"]["success"] is False:
|
|
449
|
+
raise ImportError(f"Handler '{engine}' cannot be imported: {handler_meta['import']['error_message']}")
|
|
450
|
+
HandlerClass = self.handler_modules[engine].Handler
|
|
451
|
+
|
|
452
|
+
handler_args = self._make_handler_args(
|
|
453
|
+
name=name,
|
|
454
|
+
handler_type=engine,
|
|
455
|
+
connection_data=connection_args,
|
|
456
|
+
integration_id=integration_id,
|
|
457
|
+
file_storage=file_storage,
|
|
458
|
+
handler_storage=handler_storage,
|
|
459
|
+
)
|
|
460
|
+
handler = HandlerClass(**handler_args)
|
|
461
|
+
return handler
|
|
462
|
+
|
|
463
|
+
def copy_integration_storage(self, integration_id_from, integration_id_to):
|
|
464
|
+
storage_from = HandlerStorage(integration_id_from)
|
|
465
|
+
root_path = ''
|
|
466
|
+
|
|
467
|
+
if storage_from.is_empty():
|
|
468
|
+
return None
|
|
469
|
+
folder_from = storage_from.folder_get(root_path)
|
|
470
|
+
|
|
471
|
+
storage_to = HandlerStorage(integration_id_to)
|
|
472
|
+
folder_to = storage_to.folder_get(root_path)
|
|
473
|
+
|
|
474
|
+
shutil.copytree(folder_from, folder_to, dirs_exist_ok=True)
|
|
475
|
+
storage_to.folder_sync(root_path)
|
|
476
|
+
|
|
477
|
+
def get_ml_handler(self, name: str, case_sensitive: bool = False) -> BaseMLEngine:
|
|
478
|
+
"""Get ML handler by name
|
|
479
|
+
Args:
|
|
480
|
+
name (str): name of the handler
|
|
481
|
+
case_sensitive (bool): should case be taken into account when searching by name
|
|
482
|
+
|
|
483
|
+
Returns:
|
|
484
|
+
BaseMLEngine
|
|
485
|
+
"""
|
|
486
|
+
integration_record = self._get_integration_record(name, case_sensitive)
|
|
487
|
+
integration_engine = integration_record.engine
|
|
488
|
+
|
|
489
|
+
integration_meta = self.get_handler_meta(integration_engine)
|
|
490
|
+
if integration_meta is None:
|
|
491
|
+
raise Exception(f"Handler '{name}' does not exists")
|
|
492
|
+
|
|
493
|
+
if integration_meta.get('type') != HANDLER_TYPE.ML:
|
|
494
|
+
raise Exception(f"Handler '{name}' must be ML type")
|
|
495
|
+
|
|
496
|
+
logger.info(
|
|
497
|
+
f"{self.__class__.__name__}.get_handler: create a ML client "
|
|
498
|
+
+ f"{integration_record.name}/{integration_record.id}"
|
|
499
|
+
)
|
|
500
|
+
handler = BaseMLEngineExec(
|
|
501
|
+
name=integration_record.name,
|
|
502
|
+
integration_id=integration_record.id,
|
|
503
|
+
handler_module=self.handler_modules[integration_engine]
|
|
504
|
+
)
|
|
505
|
+
|
|
506
|
+
return handler
|
|
507
|
+
|
|
508
|
+
@profiler.profile()
|
|
509
|
+
def get_data_handler(self, name: str, case_sensitive: bool = False, connect=True) -> BaseHandler:
|
|
510
|
+
"""Get DATA handler (DB or API) by name
|
|
511
|
+
|
|
512
|
+
Args:
|
|
513
|
+
name (str): name of the handler
|
|
514
|
+
case_sensitive (bool): should case be taken into account when searching by name
|
|
515
|
+
|
|
516
|
+
Returns:
|
|
517
|
+
BaseHandler: data handler
|
|
518
|
+
"""
|
|
519
|
+
handler = self.handlers_cache.get(name)
|
|
520
|
+
if handler is not None:
|
|
521
|
+
return handler
|
|
522
|
+
|
|
523
|
+
integration_record = self._get_integration_record(name, case_sensitive)
|
|
524
|
+
integration_engine = integration_record.engine
|
|
525
|
+
|
|
526
|
+
integration_meta = self.get_handler_meta(integration_engine)
|
|
527
|
+
|
|
528
|
+
if integration_meta is None:
|
|
529
|
+
raise Exception(f"Handler '{name}' does not exist")
|
|
530
|
+
|
|
531
|
+
if integration_meta.get('type') != HANDLER_TYPE.DATA:
|
|
532
|
+
raise Exception(f"Handler '{name}' must be DATA type")
|
|
533
|
+
|
|
534
|
+
integration_data = self._get_integration_record_data(integration_record, True)
|
|
535
|
+
if integration_data is None:
|
|
536
|
+
raise Exception(f"Can't find integration_record for handler '{name}'")
|
|
537
|
+
connection_data = integration_data.get('connection_data', {})
|
|
538
|
+
logger.debug(
|
|
539
|
+
"%s.get_handler: connection_data=%s, engine=%s",
|
|
540
|
+
self.__class__.__name__,
|
|
541
|
+
connection_data, integration_engine
|
|
542
|
+
)
|
|
543
|
+
|
|
544
|
+
if integration_meta["import"]["success"] is False:
|
|
545
|
+
msg = dedent(f'''\
|
|
546
|
+
Handler '{integration_engine}' cannot be used. Reason is:
|
|
547
|
+
{integration_meta['import']['error_message']}
|
|
548
|
+
''')
|
|
549
|
+
is_cloud = Config().get('cloud', False)
|
|
550
|
+
if is_cloud is False:
|
|
551
|
+
msg += dedent(f'''
|
|
552
|
+
|
|
553
|
+
If error is related to missing dependencies, then try to run command in shell and restart mindsdb:
|
|
554
|
+
pip install mindsdb[{integration_engine}]
|
|
555
|
+
''')
|
|
556
|
+
logger.debug(msg)
|
|
557
|
+
raise Exception(msg)
|
|
558
|
+
|
|
559
|
+
connection_args = integration_meta.get('connection_args')
|
|
560
|
+
logger.debug("%s.get_handler: connection args - %s", self.__class__.__name__, connection_args)
|
|
561
|
+
|
|
562
|
+
file_storage = FileStorage(
|
|
563
|
+
resource_group=RESOURCE_GROUP.INTEGRATION,
|
|
564
|
+
resource_id=integration_record.id,
|
|
565
|
+
sync=True,
|
|
566
|
+
)
|
|
567
|
+
handler_storage = HandlerStorage(integration_record.id)
|
|
568
|
+
|
|
569
|
+
if isinstance(connection_args, (dict, OrderedDict)):
|
|
570
|
+
files_to_get = {
|
|
571
|
+
arg_name: arg_value for arg_name, arg_value in connection_data.items()
|
|
572
|
+
if arg_name in connection_args and connection_args.get(arg_name)['type'] == ARG_TYPE.PATH
|
|
573
|
+
}
|
|
574
|
+
if len(files_to_get) > 0:
|
|
575
|
+
|
|
576
|
+
for file_name, file_path in files_to_get.items():
|
|
577
|
+
connection_data[file_name] = file_storage.get_path(file_path)
|
|
578
|
+
|
|
579
|
+
handler_ars = self._make_handler_args(
|
|
580
|
+
name=name,
|
|
581
|
+
handler_type=integration_engine,
|
|
582
|
+
connection_data=connection_data,
|
|
583
|
+
integration_id=integration_data['id'],
|
|
584
|
+
file_storage=file_storage,
|
|
585
|
+
handler_storage=handler_storage
|
|
586
|
+
)
|
|
587
|
+
|
|
588
|
+
HandlerClass = self.handler_modules[integration_engine].Handler
|
|
589
|
+
handler = HandlerClass(**handler_ars)
|
|
590
|
+
if connect:
|
|
591
|
+
self.handlers_cache.set(handler)
|
|
592
|
+
|
|
593
|
+
return handler
|
|
594
|
+
|
|
595
|
+
def reload_handler_module(self, handler_name):
|
|
596
|
+
importlib.reload(self.handler_modules[handler_name])
|
|
597
|
+
try:
|
|
598
|
+
handler_meta = self._get_handler_meta(handler_name)
|
|
599
|
+
except Exception as e:
|
|
600
|
+
handler_meta = self.handlers_import_status[handler_name]
|
|
601
|
+
handler_meta['import']['success'] = False
|
|
602
|
+
handler_meta['import']['error_message'] = str(e)
|
|
603
|
+
|
|
604
|
+
self.handlers_import_status[handler_name] = handler_meta
|
|
605
|
+
|
|
606
|
+
def _read_dependencies(self, path):
|
|
607
|
+
dependencies = []
|
|
608
|
+
requirements_txt = Path(path).joinpath('requirements.txt')
|
|
609
|
+
if requirements_txt.is_file():
|
|
610
|
+
with open(str(requirements_txt), 'rt') as f:
|
|
611
|
+
dependencies = [x.strip(' \t\n') for x in f.readlines()]
|
|
612
|
+
dependencies = [x for x in dependencies if len(x) > 0]
|
|
613
|
+
return dependencies
|
|
614
|
+
|
|
615
|
+
def _get_handler_meta(self, handler_name):
|
|
616
|
+
|
|
617
|
+
module = self.handler_modules[handler_name]
|
|
618
|
+
|
|
619
|
+
handler_dir = Path(module.__path__[0])
|
|
620
|
+
handler_folder_name = handler_dir.name
|
|
621
|
+
|
|
622
|
+
import_error = getattr(module, 'import_error', None)
|
|
623
|
+
handler_meta = self.handlers_import_status[handler_name]
|
|
624
|
+
handler_meta['import']['success'] = import_error is None
|
|
625
|
+
handler_meta['version'] = module.version
|
|
626
|
+
handler_meta['thread_safe'] = getattr(module, 'thread_safe', False)
|
|
627
|
+
|
|
628
|
+
if import_error is not None:
|
|
629
|
+
handler_meta['import']['error_message'] = str(import_error)
|
|
630
|
+
|
|
631
|
+
handler_type = getattr(module, 'type', None)
|
|
632
|
+
handler_class = None
|
|
633
|
+
if hasattr(module, 'Handler') and inspect.isclass(module.Handler):
|
|
634
|
+
handler_class = module.Handler
|
|
635
|
+
if issubclass(handler_class, BaseMLEngine):
|
|
636
|
+
handler_meta['class_type'] = 'ml'
|
|
637
|
+
elif issubclass(handler_class, DatabaseHandler):
|
|
638
|
+
handler_meta['class_type'] = 'sql'
|
|
639
|
+
if issubclass(handler_class, APIHandler):
|
|
640
|
+
handler_meta['class_type'] = 'api'
|
|
641
|
+
|
|
642
|
+
if handler_type == HANDLER_TYPE.ML:
|
|
643
|
+
# for ml engines, patch the connection_args from the argument probing
|
|
644
|
+
if handler_class:
|
|
645
|
+
try:
|
|
646
|
+
prediction_args = handler_class.prediction_args()
|
|
647
|
+
creation_args = getattr(module, 'creation_args', handler_class.creation_args())
|
|
648
|
+
connection_args = {
|
|
649
|
+
"prediction": prediction_args,
|
|
650
|
+
"creation_args": creation_args
|
|
651
|
+
}
|
|
652
|
+
setattr(module, 'connection_args', connection_args)
|
|
653
|
+
logger.debug("Patched connection_args for %s", handler_folder_name)
|
|
654
|
+
except Exception as e:
|
|
655
|
+
# do nothing
|
|
656
|
+
logger.debug("Failed to patch connection_args for %s, reason: %s", handler_folder_name, str(e))
|
|
657
|
+
|
|
658
|
+
module_attrs = [attr for attr in [
|
|
659
|
+
'connection_args_example',
|
|
660
|
+
'connection_args',
|
|
661
|
+
'description',
|
|
662
|
+
'type',
|
|
663
|
+
'title'
|
|
664
|
+
] if hasattr(module, attr)]
|
|
665
|
+
|
|
666
|
+
for attr in module_attrs:
|
|
667
|
+
handler_meta[attr] = getattr(module, attr)
|
|
668
|
+
|
|
669
|
+
# endregion
|
|
670
|
+
if hasattr(module, 'permanent'):
|
|
671
|
+
handler_meta['permanent'] = module.permanent
|
|
672
|
+
else:
|
|
673
|
+
if handler_meta.get('name') in ('files', 'views', 'lightwood'):
|
|
674
|
+
handler_meta['permanent'] = True
|
|
675
|
+
else:
|
|
676
|
+
handler_meta['permanent'] = False
|
|
677
|
+
|
|
678
|
+
return handler_meta
|
|
679
|
+
|
|
680
|
+
def _get_handler_icon(self, handler_dir, icon_path):
|
|
681
|
+
icon = {}
|
|
682
|
+
try:
|
|
683
|
+
icon_path = handler_dir.joinpath(icon_path)
|
|
684
|
+
icon_type = icon_path.name[icon_path.name.rfind('.') + 1:].lower()
|
|
685
|
+
|
|
686
|
+
if icon_type == 'svg':
|
|
687
|
+
with open(str(icon_path), 'rt') as f:
|
|
688
|
+
icon['data'] = f.read()
|
|
689
|
+
else:
|
|
690
|
+
with open(str(icon_path), 'rb') as f:
|
|
691
|
+
icon['data'] = base64.b64encode(f.read()).decode('utf-8')
|
|
692
|
+
|
|
693
|
+
icon['name'] = icon_path.name
|
|
694
|
+
icon['type'] = icon_type
|
|
695
|
+
|
|
696
|
+
except Exception as e:
|
|
697
|
+
logger.error(f'Error reading icon for {handler_dir}, {e}!')
|
|
698
|
+
return icon
|
|
699
|
+
|
|
700
|
+
def _load_handler_modules(self):
|
|
701
|
+
mindsdb_path = Path(importlib.util.find_spec('mindsdb').origin).parent
|
|
702
|
+
handlers_path = mindsdb_path.joinpath('integrations/handlers')
|
|
703
|
+
|
|
704
|
+
# edge case: running from tests directory, find_spec finds the base folder instead of actual package
|
|
705
|
+
if not os.path.isdir(handlers_path):
|
|
706
|
+
mindsdb_path = Path(importlib.util.find_spec('mindsdb').origin).parent.joinpath('mindsdb')
|
|
707
|
+
handlers_path = mindsdb_path.joinpath('integrations/handlers')
|
|
708
|
+
|
|
709
|
+
self.handler_modules = {}
|
|
710
|
+
self.handlers_import_status = {}
|
|
711
|
+
for handler_dir in handlers_path.iterdir():
|
|
712
|
+
if handler_dir.is_dir() is False or handler_dir.name.startswith('__'):
|
|
713
|
+
continue
|
|
714
|
+
|
|
715
|
+
handler_info = self._get_handler_info(handler_dir)
|
|
716
|
+
if 'name' not in handler_info:
|
|
717
|
+
continue
|
|
718
|
+
handler_name = handler_info['name']
|
|
719
|
+
dependencies = self._read_dependencies(handler_dir)
|
|
720
|
+
handler_meta = {
|
|
721
|
+
'path': handler_dir,
|
|
722
|
+
'import': {
|
|
723
|
+
'success': None,
|
|
724
|
+
'error_message': None,
|
|
725
|
+
'folder': handler_dir.name,
|
|
726
|
+
'dependencies': dependencies,
|
|
727
|
+
},
|
|
728
|
+
'name': handler_name,
|
|
729
|
+
'permanent': handler_info.get('permanent', False),
|
|
730
|
+
'connection_args': handler_info.get('connection_args', None),
|
|
731
|
+
'class_type': handler_info.get('class_type', None),
|
|
732
|
+
'type': handler_info.get('type')
|
|
733
|
+
}
|
|
734
|
+
if 'icon_path' in handler_info:
|
|
735
|
+
icon = self._get_handler_icon(handler_dir, handler_info['icon_path'])
|
|
736
|
+
if icon:
|
|
737
|
+
handler_meta['icon'] = icon
|
|
738
|
+
self.handlers_import_status[handler_name] = handler_meta
|
|
739
|
+
|
|
740
|
+
def _get_connection_args(self, args_file: Path, param_name: str) -> dict:
|
|
741
|
+
"""
|
|
742
|
+
Extract connection args dict from connection args file of a handler
|
|
743
|
+
|
|
744
|
+
:param args_file: path to file with connection args
|
|
745
|
+
:param param_name: the name of variable which contains connection args
|
|
746
|
+
:return: extracted connection arguments
|
|
747
|
+
"""
|
|
748
|
+
|
|
749
|
+
code = ast.parse(args_file.read_text())
|
|
750
|
+
|
|
751
|
+
args = {}
|
|
752
|
+
for item in code.body:
|
|
753
|
+
if not isinstance(item, ast.Assign):
|
|
754
|
+
continue
|
|
755
|
+
if not item.targets[0].id == param_name:
|
|
756
|
+
continue
|
|
757
|
+
if hasattr(item.value, 'keywords'):
|
|
758
|
+
for keyword in item.value.keywords:
|
|
759
|
+
name = keyword.arg
|
|
760
|
+
params = keyword.value
|
|
761
|
+
if isinstance(params, ast.Dict):
|
|
762
|
+
# get dict value
|
|
763
|
+
info = {}
|
|
764
|
+
for i, k in enumerate(params.keys):
|
|
765
|
+
if not isinstance(k, ast.Constant):
|
|
766
|
+
continue
|
|
767
|
+
v = params.values[i]
|
|
768
|
+
if isinstance(v, ast.Constant):
|
|
769
|
+
v = v.value
|
|
770
|
+
elif isinstance(v, ast.Attribute):
|
|
771
|
+
# assume it is ARG_TYPE
|
|
772
|
+
v = getattr(ARG_TYPE, v.attr, None)
|
|
773
|
+
else:
|
|
774
|
+
v = None
|
|
775
|
+
info[k.value] = v
|
|
776
|
+
args[name] = info
|
|
777
|
+
return args
|
|
778
|
+
|
|
779
|
+
def _get_base_class_type(self, code, handler_dir: Path) -> Optional[str]:
|
|
780
|
+
"""
|
|
781
|
+
Find base class of data handler: sql or api
|
|
782
|
+
It tries to find import inside try-except of init file
|
|
783
|
+
They parsed this import in order to find base class of data handler
|
|
784
|
+
|
|
785
|
+
:param code: parsed code of __init__ file of a handler
|
|
786
|
+
:param handler_dir: folder of a handler
|
|
787
|
+
:return: base class type
|
|
788
|
+
"""
|
|
789
|
+
|
|
790
|
+
module_file = None
|
|
791
|
+
for block in code.body:
|
|
792
|
+
if not isinstance(block, ast.Try):
|
|
793
|
+
continue
|
|
794
|
+
for item in block.body:
|
|
795
|
+
if isinstance(item, ast.ImportFrom):
|
|
796
|
+
module_file = item.module
|
|
797
|
+
break
|
|
798
|
+
if module_file is None:
|
|
799
|
+
return
|
|
800
|
+
|
|
801
|
+
path = handler_dir / f'{module_file}.py'
|
|
802
|
+
|
|
803
|
+
if not path.exists():
|
|
804
|
+
return
|
|
805
|
+
code = ast.parse(path.read_text())
|
|
806
|
+
# find base class of handler.
|
|
807
|
+
# TODO trace inheritance (is used only for sql handler)
|
|
808
|
+
for item in code.body:
|
|
809
|
+
if isinstance(item, ast.ClassDef):
|
|
810
|
+
bases = [base.id for base in item.bases]
|
|
811
|
+
if 'APIHandler' in bases:
|
|
812
|
+
return 'api'
|
|
813
|
+
return 'sql'
|
|
814
|
+
|
|
815
|
+
def _get_handler_info(self, handler_dir: Path) -> dict:
|
|
816
|
+
"""
|
|
817
|
+
Get handler info without importing it
|
|
818
|
+
:param handler_dir: folder of handler
|
|
819
|
+
:return: Extracted params:
|
|
820
|
+
- defined constants in init file
|
|
821
|
+
- connection arguments
|
|
822
|
+
"""
|
|
823
|
+
|
|
824
|
+
init_file = handler_dir / '__init__.py'
|
|
825
|
+
if not init_file.exists():
|
|
826
|
+
return {}
|
|
827
|
+
code = ast.parse(init_file.read_text())
|
|
828
|
+
|
|
829
|
+
info = {}
|
|
830
|
+
for item in code.body:
|
|
831
|
+
if not isinstance(item, ast.Assign):
|
|
832
|
+
continue
|
|
833
|
+
if isinstance(item.targets[0], ast.Name):
|
|
834
|
+
name = item.targets[0].id
|
|
835
|
+
if isinstance(item.value, ast.Constant):
|
|
836
|
+
info[name] = item.value.value
|
|
837
|
+
if isinstance(item.value, ast.Attribute) and name == 'type':
|
|
838
|
+
if item.value.attr == 'ML':
|
|
839
|
+
info[name] = HANDLER_TYPE.ML
|
|
840
|
+
info['class_type'] = 'ml'
|
|
841
|
+
else:
|
|
842
|
+
info[name] = HANDLER_TYPE.DATA
|
|
843
|
+
info['class_type'] = self._get_base_class_type(code, handler_dir) or 'sql'
|
|
844
|
+
|
|
845
|
+
# connection args
|
|
846
|
+
if info['type'] == HANDLER_TYPE.ML:
|
|
847
|
+
args_file = handler_dir / 'creation_args.py'
|
|
848
|
+
if args_file.exists():
|
|
849
|
+
info['connection_args'] = {
|
|
850
|
+
"prediction": {},
|
|
851
|
+
"creation_args": self._get_connection_args(args_file, 'creation_args')
|
|
852
|
+
}
|
|
853
|
+
else:
|
|
854
|
+
args_file = handler_dir / 'connection_args.py'
|
|
855
|
+
if args_file.exists():
|
|
856
|
+
info['connection_args'] = self._get_connection_args(args_file, 'connection_args')
|
|
857
|
+
|
|
858
|
+
return info
|
|
859
|
+
|
|
860
|
+
def import_handler(self, handler_name: str, base_import: str = None):
|
|
861
|
+
with self._import_lock:
|
|
862
|
+
handler_meta = self.handlers_import_status[handler_name]
|
|
863
|
+
handler_dir = handler_meta['path']
|
|
864
|
+
|
|
865
|
+
handler_folder_name = str(handler_dir.name)
|
|
866
|
+
if base_import is None:
|
|
867
|
+
base_import = 'mindsdb.integrations.handlers.'
|
|
868
|
+
|
|
869
|
+
try:
|
|
870
|
+
handler_module = importlib.import_module(f'{base_import}{handler_folder_name}')
|
|
871
|
+
self.handler_modules[handler_name] = handler_module
|
|
872
|
+
handler_meta = self._get_handler_meta(handler_name)
|
|
873
|
+
except Exception as e:
|
|
874
|
+
handler_meta['import']['success'] = False
|
|
875
|
+
handler_meta['import']['error_message'] = str(e)
|
|
876
|
+
|
|
877
|
+
self.handlers_import_status[handler_meta['name']] = handler_meta
|
|
878
|
+
return handler_meta
|
|
879
|
+
|
|
880
|
+
def get_handlers_import_status(self):
|
|
881
|
+
# tries to import all not imported yet
|
|
882
|
+
|
|
883
|
+
result = {}
|
|
884
|
+
for handler_name in list(self.handlers_import_status.keys()):
|
|
885
|
+
handler_meta = self.get_handler_meta(handler_name)
|
|
886
|
+
result[handler_name] = handler_meta
|
|
887
|
+
|
|
888
|
+
return result
|
|
889
|
+
|
|
890
|
+
def get_handlers_metadata(self):
|
|
891
|
+
return self.handlers_import_status
|
|
892
|
+
|
|
893
|
+
def get_handler_metadata(self, handler_name):
|
|
894
|
+
# returns metadata
|
|
895
|
+
return self.handlers_import_status.get(handler_name)
|
|
896
|
+
|
|
897
|
+
def get_handler_meta(self, handler_name):
|
|
898
|
+
# returns metadata and tries to import it
|
|
899
|
+
handler_meta = self.handlers_import_status.get(handler_name)
|
|
900
|
+
if handler_meta is None:
|
|
901
|
+
return
|
|
902
|
+
if handler_meta["import"]["success"] is None:
|
|
903
|
+
handler_meta = self.import_handler(handler_name)
|
|
904
|
+
return handler_meta
|
|
905
|
+
|
|
906
|
+
def get_handler_module(self, handler_name):
|
|
907
|
+
handler_meta = self.get_handler_meta(handler_name)
|
|
908
|
+
if handler_meta is None:
|
|
909
|
+
return
|
|
910
|
+
if handler_meta["import"]["success"]:
|
|
911
|
+
return self.handler_modules[handler_name]
|
|
912
|
+
|
|
913
|
+
def create_permanent_integrations(self):
|
|
914
|
+
for (
|
|
915
|
+
integration_name,
|
|
916
|
+
handler,
|
|
917
|
+
) in self.get_handlers_metadata().items():
|
|
918
|
+
if handler.get("permanent"):
|
|
919
|
+
integration_meta = integration_controller.get(name=integration_name)
|
|
920
|
+
if integration_meta is None:
|
|
921
|
+
integration_record = db.Integration(
|
|
922
|
+
name=integration_name,
|
|
923
|
+
data={},
|
|
924
|
+
engine=integration_name,
|
|
925
|
+
company_id=None,
|
|
926
|
+
)
|
|
927
|
+
db.session.add(integration_record)
|
|
928
|
+
db.session.commit()
|
|
929
|
+
|
|
930
|
+
|
|
931
|
+
integration_controller = IntegrationController()
|