hotdata 0.10.0__tar.gz → 0.12.0__tar.gz
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.
- {hotdata-0.10.0 → hotdata-0.12.0}/PKG-INFO +33 -4
- {hotdata-0.10.0 → hotdata-0.12.0}/README.md +31 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/__init__.py +28 -46
- hotdata-0.12.0/hotdata/_useragent.py +52 -0
- hotdata-0.12.0/hotdata/_workspace.py +84 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/__init__.py +0 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/connections_api.py +66 -567
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/database_context_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/databases_api.py +1091 -192
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/embedding_providers_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/indexes_api.py +31 -28
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/information_schema_api.py +7 -4
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/jobs_api.py +19 -16
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/query_api.py +6 -5
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/query_runs_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/results_api.py +13 -4
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/saved_queries_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/uploads_api.py +10 -10
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/usage_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api/workspaces_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api_client.py +17 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/arrow.py +10 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/configuration.py +15 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/exceptions.py +1 -1
- hotdata-0.12.0/hotdata/loads.py +273 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/__init__.py +7 -20
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/add_managed_schema_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/add_managed_table_decl.py +9 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/add_managed_table_request.py +9 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/api_error_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/api_error_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/async_query_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/attach_database_catalog_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/batch_create_upload_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/batch_create_upload_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/boolean_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/bulk_create_databases_request.py +6 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/bulk_create_databases_result.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/categorical_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/category_value_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_definition.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_profile_detail_one_of.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_profile_detail_one_of1.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_profile_detail_one_of2.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_profile_detail_one_of3.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_profile_detail_one_of4.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_profile_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/column_type_spec.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/connection_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_connection_request.py +7 -5
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_connection_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_database_request.py +10 -4
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_database_response.py +22 -4
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_embedding_provider_request.py +6 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_embedding_provider_response.py +1 -1
- hotdata-0.12.0/hotdata/models/create_index_request.py +189 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_saved_query_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_upload_request.py +7 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_workspace_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/create_workspace_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/database_attachment_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/database_batch_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/database_context_entry.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/database_count_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/database_default_schema_decl.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/database_default_table_decl.py +9 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/database_detail_response.py +14 -3
- hotdata-0.12.0/hotdata/models/database_lineage_response.py +114 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/database_summary.py +13 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/delete_database_batch_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/discovery_status.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/embedding_provider_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/error.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/execute_saved_query_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/finalize_upload_part.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/finalize_upload_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/finalize_upload_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/fork_database_request.py +14 -3
- hotdata-0.12.0/hotdata/models/forked_from_info.py +117 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/get_connection_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/get_database_context_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/get_result_response.py +10 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/index_entry_response.py +13 -4
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/index_info_response.py +34 -5
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/index_status.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/information_schema_response.py +6 -6
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/job_result.py +13 -41
- hotdata-0.12.0/hotdata/models/job_status.py +41 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/job_status_response.py +2 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/job_type.py +3 -3
- hotdata-0.12.0/hotdata/models/lineage_ancestor_info.py +119 -0
- hotdata-0.12.0/hotdata/models/lineage_fork_info.py +119 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_connections_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_database_contexts_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_databases_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_embedding_providers_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_indexes_page_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_indexes_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_jobs_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_query_runs_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_results_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_saved_queries_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_saved_query_versions_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/list_workspaces_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/load_managed_table_request.py +7 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/load_managed_table_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/managed_schema_response.py +1 -1
- hotdata-0.10.0/hotdata/models/table_refresh_result.py → hotdata-0.12.0/hotdata/models/managed_table_constant_per_key_response.py +14 -27
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/managed_table_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/mint_upload_parts_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/mint_upload_parts_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/minted_upload_part_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/numeric_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/query_request.py +14 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/query_response.py +2 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/query_run_info.py +2 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/result_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/results_format_query.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/saved_query_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/saved_query_summary.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/saved_query_version_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/submit_job_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/table_info.py +6 -4
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/table_partition_key.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/table_profile_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/table_sort_key.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/temporal_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/text_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/update_embedding_provider_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/update_embedding_provider_response.py +1 -1
- hotdata-0.12.0/hotdata/models/update_managed_table_request.py +92 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/update_saved_query_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/upload_session_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/upsert_database_context_request.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/upsert_database_context_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/workspace_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/workspace_list_item.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/models/workspace_usage_response.py +3 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/query.py +57 -6
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/rest.py +21 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata.egg-info/PKG-INFO +33 -4
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata.egg-info/SOURCES.txt +21 -45
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata.egg-info/requires.txt +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/pyproject.toml +2 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_add_managed_schema_request.py +2 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_add_managed_table_decl.py +2 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_add_managed_table_request.py +2 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_api_error_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_api_error_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_async_query_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_attach_database_catalog_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_batch_create_upload_request.py +3 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_batch_create_upload_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_boolean_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_bulk_create_databases_request.py +2 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_bulk_create_databases_result.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_categorical_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_category_value_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_definition.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_profile_detail_one_of.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_profile_detail_one_of1.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_profile_detail_one_of2.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_profile_detail_one_of3.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_profile_detail_one_of4.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_profile_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_column_type_spec.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_connection_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_connections_api.py +4 -18
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_connection_request.py +3 -4
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_connection_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_database_request.py +3 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_database_response.py +8 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_embedding_provider_request.py +2 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_embedding_provider_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_index_request.py +6 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_saved_query_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_upload_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_workspace_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_create_workspace_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_database_attachment_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_database_batch_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_database_context_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_database_context_entry.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_database_count_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_database_default_schema_decl.py +2 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_database_default_table_decl.py +2 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_database_detail_response.py +7 -1
- hotdata-0.12.0/test/test_database_lineage_response.py +95 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_database_summary.py +7 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_databases_api.py +22 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_delete_database_batch_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_discovery_status.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_embedding_provider_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_embedding_providers_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_error.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_execute_saved_query_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_finalize_upload_part.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_finalize_upload_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_finalize_upload_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_fork_database_request.py +2 -1
- hotdata-0.12.0/test/test_forked_from_info.py +57 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_get_connection_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_get_database_context_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_get_result_response.py +3 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_index_entry_response.py +5 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_index_info_response.py +6 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_index_status.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_indexes_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_information_schema_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_information_schema_response.py +7 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_job_result.py +11 -29
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_job_status.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_job_status_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_job_type.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_jobs_api.py +1 -1
- hotdata-0.12.0/test/test_lineage_ancestor_info.py +59 -0
- hotdata-0.12.0/test/test_lineage_fork_info.py +59 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_connections_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_database_contexts_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_databases_response.py +3 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_embedding_providers_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_indexes_page_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_indexes_response.py +11 -3
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_jobs_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_query_runs_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_results_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_saved_queries_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_saved_query_versions_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_list_workspaces_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_load_managed_table_request.py +2 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_load_managed_table_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_managed_schema_response.py +1 -1
- hotdata-0.12.0/test/test_managed_table_constant_per_key_response.py +63 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_managed_table_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_mint_upload_parts_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_mint_upload_parts_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_minted_upload_part_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_numeric_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_query_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_query_request.py +3 -2
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_query_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_query_run_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_query_runs_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_result_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_results_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_results_format_query.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_saved_queries_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_saved_query_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_saved_query_summary.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_saved_query_version_info.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_submit_job_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_table_info.py +7 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_table_partition_key.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_table_profile_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_table_sort_key.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_temporal_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_text_profile_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_update_embedding_provider_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_update_embedding_provider_response.py +1 -1
- hotdata-0.12.0/test/test_update_managed_table_request.py +52 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_update_saved_query_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_upload_session_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_uploads_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_upsert_database_context_request.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_upsert_database_context_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_usage_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_workspace_detail.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_workspace_list_item.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_workspace_usage_response.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_workspaces_api.py +1 -1
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_arrow.py +4 -0
- hotdata-0.12.0/tests/test_config_env.py +104 -0
- hotdata-0.12.0/tests/test_loads.py +254 -0
- hotdata-0.12.0/tests/test_model_extra_forbid.py +110 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_query.py +58 -1
- hotdata-0.12.0/tests/test_request_defaults.py +191 -0
- hotdata-0.12.0/tests/test_workspace_guard.py +160 -0
- hotdata-0.10.0/hotdata/api/connection_types_api.py +0 -551
- hotdata-0.10.0/hotdata/api/refresh_api.py +0 -324
- hotdata-0.10.0/hotdata/api/secrets_api.py +0 -1385
- hotdata-0.10.0/hotdata/models/connection_health_response.py +0 -100
- hotdata-0.10.0/hotdata/models/connection_refresh_result.py +0 -117
- hotdata-0.10.0/hotdata/models/connection_schema_error.py +0 -90
- hotdata-0.10.0/hotdata/models/connection_type_detail.py +0 -104
- hotdata-0.10.0/hotdata/models/connection_type_summary.py +0 -90
- hotdata-0.10.0/hotdata/models/create_index_request.py +0 -147
- hotdata-0.10.0/hotdata/models/create_secret_request.py +0 -90
- hotdata-0.10.0/hotdata/models/create_secret_response.py +0 -93
- hotdata-0.10.0/hotdata/models/get_secret_response.py +0 -93
- hotdata-0.10.0/hotdata/models/job_status.py +0 -41
- hotdata-0.10.0/hotdata/models/list_connection_types_response.py +0 -96
- hotdata-0.10.0/hotdata/models/list_secrets_response.py +0 -96
- hotdata-0.10.0/hotdata/models/refresh_request.py +0 -121
- hotdata-0.10.0/hotdata/models/refresh_response.py +0 -152
- hotdata-0.10.0/hotdata/models/refresh_warning.py +0 -102
- hotdata-0.10.0/hotdata/models/schema_refresh_result.py +0 -107
- hotdata-0.10.0/hotdata/models/secret_metadata_response.py +0 -93
- hotdata-0.10.0/hotdata/models/table_refresh_error.py +0 -92
- hotdata-0.10.0/hotdata/models/update_secret_request.py +0 -88
- hotdata-0.10.0/hotdata/models/update_secret_response.py +0 -91
- hotdata-0.10.0/test/test_connection_health_response.py +0 -58
- hotdata-0.10.0/test/test_connection_refresh_result.py +0 -73
- hotdata-0.10.0/test/test_connection_schema_error.py +0 -55
- hotdata-0.10.0/test/test_connection_type_detail.py +0 -57
- hotdata-0.10.0/test/test_connection_type_summary.py +0 -55
- hotdata-0.10.0/test/test_connection_types_api.py +0 -46
- hotdata-0.10.0/test/test_create_secret_request.py +0 -55
- hotdata-0.10.0/test/test_create_secret_response.py +0 -57
- hotdata-0.10.0/test/test_get_secret_response.py +0 -57
- hotdata-0.10.0/test/test_list_connection_types_response.py +0 -61
- hotdata-0.10.0/test/test_list_secrets_response.py +0 -63
- hotdata-0.10.0/test/test_refresh_api.py +0 -39
- hotdata-0.10.0/test/test_refresh_request.py +0 -58
- hotdata-0.10.0/test/test_refresh_response.py +0 -89
- hotdata-0.10.0/test/test_refresh_warning.py +0 -55
- hotdata-0.10.0/test/test_schema_refresh_result.py +0 -66
- hotdata-0.10.0/test/test_secret_metadata_response.py +0 -57
- hotdata-0.10.0/test/test_secrets_api.py +0 -67
- hotdata-0.10.0/test/test_table_refresh_error.py +0 -57
- hotdata-0.10.0/test/test_table_refresh_result.py +0 -67
- hotdata-0.10.0/test/test_update_secret_request.py +0 -53
- hotdata-0.10.0/test/test_update_secret_response.py +0 -55
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/_retry.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/_upload_watchdog.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/api_response.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/py.typed +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata/uploads.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata.egg-info/dependency_links.txt +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/hotdata.egg-info/top_level.txt +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/setup.cfg +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/test/test_api_client_close.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_api_token_auth.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_config_auth_surface.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_retry.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_update_changelog.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_upload_codex_fixes.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_upload_multipart_resilient.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_upload_parity_fixes.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_upload_resilient.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_upload_retry_policy.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_upload_watchdog.py +0 -0
- {hotdata-0.10.0 → hotdata-0.12.0}/tests/test_uploads.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hotdata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.0
|
|
4
4
|
Summary: Hotdata API
|
|
5
5
|
Author-email: Hotdata <developers@hotdata.dev>
|
|
6
6
|
License: MIT
|
|
@@ -9,7 +9,7 @@ Project-URL: Repository, https://github.com/hotdata-dev/sdk-python
|
|
|
9
9
|
Keywords: hotdata,api-client,data-platform
|
|
10
10
|
Requires-Python: >=3.10
|
|
11
11
|
Description-Content-Type: text/markdown
|
|
12
|
-
Requires-Dist: urllib3<3.0.0,>=2.
|
|
12
|
+
Requires-Dist: urllib3<3.0.0,>=2.8.0
|
|
13
13
|
Requires-Dist: python-dateutil>=2.8.2
|
|
14
14
|
Requires-Dist: pydantic>=2.4.0
|
|
15
15
|
Requires-Dist: typing-extensions>=4.7.1
|
|
@@ -18,7 +18,7 @@ Requires-Dist: pyarrow>=14.0.1; extra == "arrow"
|
|
|
18
18
|
|
|
19
19
|
# hotdata
|
|
20
20
|
|
|
21
|
-
Official Python client for the [Hotdata](https://www.hotdata.dev) HTTP API: workspaces, connections,
|
|
21
|
+
Official Python client for the [Hotdata](https://www.hotdata.dev) HTTP API: workspaces, connections, instant databases, SQL queries, results, uploads, indexes, jobs, embedding providers, and database context.
|
|
22
22
|
|
|
23
23
|
## Requirements
|
|
24
24
|
|
|
@@ -55,7 +55,17 @@ configuration = hotdata.Configuration(
|
|
|
55
55
|
)
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
Each of these can come from the environment instead, the same variables the
|
|
59
|
+
CLI uses: `HOTDATA_API_KEY`, `HOTDATA_WORKSPACE` and `HOTDATA_API_URL` fill in
|
|
60
|
+
`api_key`, `workspace_id` and `host` when the argument is not passed. An
|
|
61
|
+
explicit argument always wins.
|
|
62
|
+
|
|
63
|
+
`host` defaults to `https://api.hotdata.dev`. Override it (or set
|
|
64
|
+
`HOTDATA_API_URL`) if you target another environment.
|
|
65
|
+
|
|
66
|
+
Almost every call is workspace-scoped. If no workspace id is configured, the
|
|
67
|
+
SDK raises `hotdata.MissingWorkspaceError` before sending the request rather
|
|
68
|
+
than letting the server answer with an unexplained 404.
|
|
59
69
|
|
|
60
70
|
## Usage
|
|
61
71
|
|
|
@@ -78,6 +88,25 @@ with hotdata.ApiClient(configuration) as api_client:
|
|
|
78
88
|
|
|
79
89
|
Each `Api` class groups endpoints by resource. Construct the client, then call the typed methods you need.
|
|
80
90
|
|
|
91
|
+
## Loading tables
|
|
92
|
+
|
|
93
|
+
Loads are serialised per table on the server. `hotdata.DatabasesApi` and
|
|
94
|
+
`hotdata.ConnectionsApi` retry a load that hits a table another load still
|
|
95
|
+
holds (HTTP 409, error code `RESOURCE_LOCKED`), honouring the server's
|
|
96
|
+
`Retry-After`, for up to 60s by default:
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
from hotdata import DatabasesApi, LoadRetryPolicy, TableLockedError
|
|
100
|
+
|
|
101
|
+
databases = DatabasesApi(api_client, load_retry=LoadRetryPolicy(deadline_s=120))
|
|
102
|
+
try:
|
|
103
|
+
databases.load_database_table(db_id, "public", "events", request)
|
|
104
|
+
except TableLockedError as e:
|
|
105
|
+
print(f"gave up after {e.attempts} attempts: {e.reason}")
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Other 409s (`CONFLICT`, `IDEMPOTENCY_KEY_CONFLICT`) are raised immediately.
|
|
109
|
+
|
|
81
110
|
## Arrow results
|
|
82
111
|
|
|
83
112
|
Query results can be fetched as an [Apache Arrow](https://arrow.apache.org/) IPC stream instead of JSON, which is faster and far more memory-efficient for large result sets. Install the optional extra:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# hotdata
|
|
2
2
|
|
|
3
|
-
Official Python client for the [Hotdata](https://www.hotdata.dev) HTTP API: workspaces, connections,
|
|
3
|
+
Official Python client for the [Hotdata](https://www.hotdata.dev) HTTP API: workspaces, connections, instant databases, SQL queries, results, uploads, indexes, jobs, embedding providers, and database context.
|
|
4
4
|
|
|
5
5
|
## Requirements
|
|
6
6
|
|
|
@@ -37,7 +37,17 @@ configuration = hotdata.Configuration(
|
|
|
37
37
|
)
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
Each of these can come from the environment instead, the same variables the
|
|
41
|
+
CLI uses: `HOTDATA_API_KEY`, `HOTDATA_WORKSPACE` and `HOTDATA_API_URL` fill in
|
|
42
|
+
`api_key`, `workspace_id` and `host` when the argument is not passed. An
|
|
43
|
+
explicit argument always wins.
|
|
44
|
+
|
|
45
|
+
`host` defaults to `https://api.hotdata.dev`. Override it (or set
|
|
46
|
+
`HOTDATA_API_URL`) if you target another environment.
|
|
47
|
+
|
|
48
|
+
Almost every call is workspace-scoped. If no workspace id is configured, the
|
|
49
|
+
SDK raises `hotdata.MissingWorkspaceError` before sending the request rather
|
|
50
|
+
than letting the server answer with an unexplained 404.
|
|
41
51
|
|
|
42
52
|
## Usage
|
|
43
53
|
|
|
@@ -60,6 +70,25 @@ with hotdata.ApiClient(configuration) as api_client:
|
|
|
60
70
|
|
|
61
71
|
Each `Api` class groups endpoints by resource. Construct the client, then call the typed methods you need.
|
|
62
72
|
|
|
73
|
+
## Loading tables
|
|
74
|
+
|
|
75
|
+
Loads are serialised per table on the server. `hotdata.DatabasesApi` and
|
|
76
|
+
`hotdata.ConnectionsApi` retry a load that hits a table another load still
|
|
77
|
+
holds (HTTP 409, error code `RESOURCE_LOCKED`), honouring the server's
|
|
78
|
+
`Retry-After`, for up to 60s by default:
|
|
79
|
+
|
|
80
|
+
```python
|
|
81
|
+
from hotdata import DatabasesApi, LoadRetryPolicy, TableLockedError
|
|
82
|
+
|
|
83
|
+
databases = DatabasesApi(api_client, load_retry=LoadRetryPolicy(deadline_s=120))
|
|
84
|
+
try:
|
|
85
|
+
databases.load_database_table(db_id, "public", "events", request)
|
|
86
|
+
except TableLockedError as e:
|
|
87
|
+
print(f"gave up after {e.attempts} attempts: {e.reason}")
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Other 409s (`CONFLICT`, `IDEMPOTENCY_KEY_CONFLICT`) are raised immediately.
|
|
91
|
+
|
|
63
92
|
## Arrow results
|
|
64
93
|
|
|
65
94
|
Query results can be fetched as an [Apache Arrow](https://arrow.apache.org/) IPC stream instead of JSON, which is faster and far more memory-efficient for large result sets. Install the optional extra:
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"""
|
|
6
6
|
Hotdata API
|
|
7
7
|
|
|
8
|
-
Powerful data platform API for
|
|
8
|
+
Powerful data platform API for instant databases, queries, and analytics.
|
|
9
9
|
|
|
10
10
|
The version of the OpenAPI document: 1.0.0
|
|
11
11
|
Contact: developers@hotdata.dev
|
|
@@ -24,7 +24,6 @@ except PackageNotFoundError: # running from a source checkout without install
|
|
|
24
24
|
|
|
25
25
|
# Define package exports
|
|
26
26
|
__all__ = [
|
|
27
|
-
"ConnectionTypesApi",
|
|
28
27
|
"ConnectionsApi",
|
|
29
28
|
"DatabaseContextApi",
|
|
30
29
|
"DatabasesApi",
|
|
@@ -34,10 +33,8 @@ __all__ = [
|
|
|
34
33
|
"JobsApi",
|
|
35
34
|
"QueryApi",
|
|
36
35
|
"QueryRunsApi",
|
|
37
|
-
"RefreshApi",
|
|
38
36
|
"ResultsApi",
|
|
39
37
|
"SavedQueriesApi",
|
|
40
|
-
"SecretsApi",
|
|
41
38
|
"UploadsApi",
|
|
42
39
|
"UsageApi",
|
|
43
40
|
"WorkspacesApi",
|
|
@@ -74,12 +71,7 @@ __all__ = [
|
|
|
74
71
|
"ColumnProfileDetailOneOf4",
|
|
75
72
|
"ColumnProfileInfo",
|
|
76
73
|
"ColumnTypeSpec",
|
|
77
|
-
"ConnectionHealthResponse",
|
|
78
74
|
"ConnectionInfo",
|
|
79
|
-
"ConnectionRefreshResult",
|
|
80
|
-
"ConnectionSchemaError",
|
|
81
|
-
"ConnectionTypeDetail",
|
|
82
|
-
"ConnectionTypeSummary",
|
|
83
75
|
"CreateConnectionRequest",
|
|
84
76
|
"CreateConnectionResponse",
|
|
85
77
|
"CreateDatabaseRequest",
|
|
@@ -88,8 +80,6 @@ __all__ = [
|
|
|
88
80
|
"CreateEmbeddingProviderResponse",
|
|
89
81
|
"CreateIndexRequest",
|
|
90
82
|
"CreateSavedQueryRequest",
|
|
91
|
-
"CreateSecretRequest",
|
|
92
|
-
"CreateSecretResponse",
|
|
93
83
|
"CreateUploadRequest",
|
|
94
84
|
"CreateWorkspaceRequest",
|
|
95
85
|
"CreateWorkspaceResponse",
|
|
@@ -100,6 +90,7 @@ __all__ = [
|
|
|
100
90
|
"DatabaseDefaultSchemaDecl",
|
|
101
91
|
"DatabaseDefaultTableDecl",
|
|
102
92
|
"DatabaseDetailResponse",
|
|
93
|
+
"DatabaseLineageResponse",
|
|
103
94
|
"DatabaseSummary",
|
|
104
95
|
"DeleteDatabaseBatchResponse",
|
|
105
96
|
"DiscoveryStatus",
|
|
@@ -110,10 +101,10 @@ __all__ = [
|
|
|
110
101
|
"FinalizeUploadRequest",
|
|
111
102
|
"FinalizeUploadResponse",
|
|
112
103
|
"ForkDatabaseRequest",
|
|
104
|
+
"ForkedFromInfo",
|
|
113
105
|
"GetConnectionResponse",
|
|
114
106
|
"GetDatabaseContextResponse",
|
|
115
107
|
"GetResultResponse",
|
|
116
|
-
"GetSecretResponse",
|
|
117
108
|
"IndexEntryResponse",
|
|
118
109
|
"IndexInfoResponse",
|
|
119
110
|
"IndexStatus",
|
|
@@ -122,7 +113,8 @@ __all__ = [
|
|
|
122
113
|
"JobStatus",
|
|
123
114
|
"JobStatusResponse",
|
|
124
115
|
"JobType",
|
|
125
|
-
"
|
|
116
|
+
"LineageAncestorInfo",
|
|
117
|
+
"LineageForkInfo",
|
|
126
118
|
"ListConnectionsResponse",
|
|
127
119
|
"ListDatabaseContextsResponse",
|
|
128
120
|
"ListDatabasesResponse",
|
|
@@ -134,11 +126,11 @@ __all__ = [
|
|
|
134
126
|
"ListResultsResponse",
|
|
135
127
|
"ListSavedQueriesResponse",
|
|
136
128
|
"ListSavedQueryVersionsResponse",
|
|
137
|
-
"ListSecretsResponse",
|
|
138
129
|
"ListWorkspacesResponse",
|
|
139
130
|
"LoadManagedTableRequest",
|
|
140
131
|
"LoadManagedTableResponse",
|
|
141
132
|
"ManagedSchemaResponse",
|
|
133
|
+
"ManagedTableConstantPerKeyResponse",
|
|
142
134
|
"ManagedTableResponse",
|
|
143
135
|
"MintUploadPartsRequest",
|
|
144
136
|
"MintUploadPartsResponse",
|
|
@@ -147,30 +139,22 @@ __all__ = [
|
|
|
147
139
|
"QueryRequest",
|
|
148
140
|
"QueryResponse",
|
|
149
141
|
"QueryRunInfo",
|
|
150
|
-
"RefreshRequest",
|
|
151
|
-
"RefreshResponse",
|
|
152
|
-
"RefreshWarning",
|
|
153
142
|
"ResultInfo",
|
|
154
143
|
"ResultsFormatQuery",
|
|
155
144
|
"SavedQueryDetail",
|
|
156
145
|
"SavedQuerySummary",
|
|
157
146
|
"SavedQueryVersionInfo",
|
|
158
|
-
"SchemaRefreshResult",
|
|
159
|
-
"SecretMetadataResponse",
|
|
160
147
|
"SubmitJobResponse",
|
|
161
148
|
"TableInfo",
|
|
162
149
|
"TablePartitionKey",
|
|
163
150
|
"TableProfileResponse",
|
|
164
|
-
"TableRefreshError",
|
|
165
|
-
"TableRefreshResult",
|
|
166
151
|
"TableSortKey",
|
|
167
152
|
"TemporalProfileDetail",
|
|
168
153
|
"TextProfileDetail",
|
|
169
154
|
"UpdateEmbeddingProviderRequest",
|
|
170
155
|
"UpdateEmbeddingProviderResponse",
|
|
156
|
+
"UpdateManagedTableRequest",
|
|
171
157
|
"UpdateSavedQueryRequest",
|
|
172
|
-
"UpdateSecretRequest",
|
|
173
|
-
"UpdateSecretResponse",
|
|
174
158
|
"UploadSessionResponse",
|
|
175
159
|
"UpsertDatabaseContextRequest",
|
|
176
160
|
"UpsertDatabaseContextResponse",
|
|
@@ -180,7 +164,6 @@ __all__ = [
|
|
|
180
164
|
]
|
|
181
165
|
|
|
182
166
|
# import apis into sdk package
|
|
183
|
-
from hotdata.api.connection_types_api import ConnectionTypesApi as ConnectionTypesApi
|
|
184
167
|
from hotdata.api.connections_api import ConnectionsApi as ConnectionsApi
|
|
185
168
|
from hotdata.api.database_context_api import DatabaseContextApi as DatabaseContextApi
|
|
186
169
|
from hotdata.api.databases_api import DatabasesApi as DatabasesApi
|
|
@@ -190,10 +173,8 @@ from hotdata.api.information_schema_api import InformationSchemaApi as Informati
|
|
|
190
173
|
from hotdata.api.jobs_api import JobsApi as JobsApi
|
|
191
174
|
from hotdata.api.query_api import QueryApi as QueryApi
|
|
192
175
|
from hotdata.api.query_runs_api import QueryRunsApi as QueryRunsApi
|
|
193
|
-
from hotdata.api.refresh_api import RefreshApi as RefreshApi
|
|
194
176
|
from hotdata.api.results_api import ResultsApi as ResultsApi
|
|
195
177
|
from hotdata.api.saved_queries_api import SavedQueriesApi as SavedQueriesApi
|
|
196
|
-
from hotdata.api.secrets_api import SecretsApi as SecretsApi
|
|
197
178
|
from hotdata.api.uploads_api import UploadsApi as UploadsApi
|
|
198
179
|
from hotdata.api.usage_api import UsageApi as UsageApi
|
|
199
180
|
from hotdata.api.workspaces_api import WorkspacesApi as WorkspacesApi
|
|
@@ -234,12 +215,7 @@ from hotdata.models.column_profile_detail_one_of3 import ColumnProfileDetailOneO
|
|
|
234
215
|
from hotdata.models.column_profile_detail_one_of4 import ColumnProfileDetailOneOf4 as ColumnProfileDetailOneOf4
|
|
235
216
|
from hotdata.models.column_profile_info import ColumnProfileInfo as ColumnProfileInfo
|
|
236
217
|
from hotdata.models.column_type_spec import ColumnTypeSpec as ColumnTypeSpec
|
|
237
|
-
from hotdata.models.connection_health_response import ConnectionHealthResponse as ConnectionHealthResponse
|
|
238
218
|
from hotdata.models.connection_info import ConnectionInfo as ConnectionInfo
|
|
239
|
-
from hotdata.models.connection_refresh_result import ConnectionRefreshResult as ConnectionRefreshResult
|
|
240
|
-
from hotdata.models.connection_schema_error import ConnectionSchemaError as ConnectionSchemaError
|
|
241
|
-
from hotdata.models.connection_type_detail import ConnectionTypeDetail as ConnectionTypeDetail
|
|
242
|
-
from hotdata.models.connection_type_summary import ConnectionTypeSummary as ConnectionTypeSummary
|
|
243
219
|
from hotdata.models.create_connection_request import CreateConnectionRequest as CreateConnectionRequest
|
|
244
220
|
from hotdata.models.create_connection_response import CreateConnectionResponse as CreateConnectionResponse
|
|
245
221
|
from hotdata.models.create_database_request import CreateDatabaseRequest as CreateDatabaseRequest
|
|
@@ -248,8 +224,6 @@ from hotdata.models.create_embedding_provider_request import CreateEmbeddingProv
|
|
|
248
224
|
from hotdata.models.create_embedding_provider_response import CreateEmbeddingProviderResponse as CreateEmbeddingProviderResponse
|
|
249
225
|
from hotdata.models.create_index_request import CreateIndexRequest as CreateIndexRequest
|
|
250
226
|
from hotdata.models.create_saved_query_request import CreateSavedQueryRequest as CreateSavedQueryRequest
|
|
251
|
-
from hotdata.models.create_secret_request import CreateSecretRequest as CreateSecretRequest
|
|
252
|
-
from hotdata.models.create_secret_response import CreateSecretResponse as CreateSecretResponse
|
|
253
227
|
from hotdata.models.create_upload_request import CreateUploadRequest as CreateUploadRequest
|
|
254
228
|
from hotdata.models.create_workspace_request import CreateWorkspaceRequest as CreateWorkspaceRequest
|
|
255
229
|
from hotdata.models.create_workspace_response import CreateWorkspaceResponse as CreateWorkspaceResponse
|
|
@@ -260,6 +234,7 @@ from hotdata.models.database_count_response import DatabaseCountResponse as Data
|
|
|
260
234
|
from hotdata.models.database_default_schema_decl import DatabaseDefaultSchemaDecl as DatabaseDefaultSchemaDecl
|
|
261
235
|
from hotdata.models.database_default_table_decl import DatabaseDefaultTableDecl as DatabaseDefaultTableDecl
|
|
262
236
|
from hotdata.models.database_detail_response import DatabaseDetailResponse as DatabaseDetailResponse
|
|
237
|
+
from hotdata.models.database_lineage_response import DatabaseLineageResponse as DatabaseLineageResponse
|
|
263
238
|
from hotdata.models.database_summary import DatabaseSummary as DatabaseSummary
|
|
264
239
|
from hotdata.models.delete_database_batch_response import DeleteDatabaseBatchResponse as DeleteDatabaseBatchResponse
|
|
265
240
|
from hotdata.models.discovery_status import DiscoveryStatus as DiscoveryStatus
|
|
@@ -270,10 +245,10 @@ from hotdata.models.finalize_upload_part import FinalizeUploadPart as FinalizeUp
|
|
|
270
245
|
from hotdata.models.finalize_upload_request import FinalizeUploadRequest as FinalizeUploadRequest
|
|
271
246
|
from hotdata.models.finalize_upload_response import FinalizeUploadResponse as FinalizeUploadResponse
|
|
272
247
|
from hotdata.models.fork_database_request import ForkDatabaseRequest as ForkDatabaseRequest
|
|
248
|
+
from hotdata.models.forked_from_info import ForkedFromInfo as ForkedFromInfo
|
|
273
249
|
from hotdata.models.get_connection_response import GetConnectionResponse as GetConnectionResponse
|
|
274
250
|
from hotdata.models.get_database_context_response import GetDatabaseContextResponse as GetDatabaseContextResponse
|
|
275
251
|
from hotdata.models.get_result_response import GetResultResponse as GetResultResponse
|
|
276
|
-
from hotdata.models.get_secret_response import GetSecretResponse as GetSecretResponse
|
|
277
252
|
from hotdata.models.index_entry_response import IndexEntryResponse as IndexEntryResponse
|
|
278
253
|
from hotdata.models.index_info_response import IndexInfoResponse as IndexInfoResponse
|
|
279
254
|
from hotdata.models.index_status import IndexStatus as IndexStatus
|
|
@@ -282,7 +257,8 @@ from hotdata.models.job_result import JobResult as JobResult
|
|
|
282
257
|
from hotdata.models.job_status import JobStatus as JobStatus
|
|
283
258
|
from hotdata.models.job_status_response import JobStatusResponse as JobStatusResponse
|
|
284
259
|
from hotdata.models.job_type import JobType as JobType
|
|
285
|
-
from hotdata.models.
|
|
260
|
+
from hotdata.models.lineage_ancestor_info import LineageAncestorInfo as LineageAncestorInfo
|
|
261
|
+
from hotdata.models.lineage_fork_info import LineageForkInfo as LineageForkInfo
|
|
286
262
|
from hotdata.models.list_connections_response import ListConnectionsResponse as ListConnectionsResponse
|
|
287
263
|
from hotdata.models.list_database_contexts_response import ListDatabaseContextsResponse as ListDatabaseContextsResponse
|
|
288
264
|
from hotdata.models.list_databases_response import ListDatabasesResponse as ListDatabasesResponse
|
|
@@ -294,11 +270,11 @@ from hotdata.models.list_query_runs_response import ListQueryRunsResponse as Lis
|
|
|
294
270
|
from hotdata.models.list_results_response import ListResultsResponse as ListResultsResponse
|
|
295
271
|
from hotdata.models.list_saved_queries_response import ListSavedQueriesResponse as ListSavedQueriesResponse
|
|
296
272
|
from hotdata.models.list_saved_query_versions_response import ListSavedQueryVersionsResponse as ListSavedQueryVersionsResponse
|
|
297
|
-
from hotdata.models.list_secrets_response import ListSecretsResponse as ListSecretsResponse
|
|
298
273
|
from hotdata.models.list_workspaces_response import ListWorkspacesResponse as ListWorkspacesResponse
|
|
299
274
|
from hotdata.models.load_managed_table_request import LoadManagedTableRequest as LoadManagedTableRequest
|
|
300
275
|
from hotdata.models.load_managed_table_response import LoadManagedTableResponse as LoadManagedTableResponse
|
|
301
276
|
from hotdata.models.managed_schema_response import ManagedSchemaResponse as ManagedSchemaResponse
|
|
277
|
+
from hotdata.models.managed_table_constant_per_key_response import ManagedTableConstantPerKeyResponse as ManagedTableConstantPerKeyResponse
|
|
302
278
|
from hotdata.models.managed_table_response import ManagedTableResponse as ManagedTableResponse
|
|
303
279
|
from hotdata.models.mint_upload_parts_request import MintUploadPartsRequest as MintUploadPartsRequest
|
|
304
280
|
from hotdata.models.mint_upload_parts_response import MintUploadPartsResponse as MintUploadPartsResponse
|
|
@@ -307,30 +283,22 @@ from hotdata.models.numeric_profile_detail import NumericProfileDetail as Numeri
|
|
|
307
283
|
from hotdata.models.query_request import QueryRequest as QueryRequest
|
|
308
284
|
from hotdata.models.query_response import QueryResponse as QueryResponse
|
|
309
285
|
from hotdata.models.query_run_info import QueryRunInfo as QueryRunInfo
|
|
310
|
-
from hotdata.models.refresh_request import RefreshRequest as RefreshRequest
|
|
311
|
-
from hotdata.models.refresh_response import RefreshResponse as RefreshResponse
|
|
312
|
-
from hotdata.models.refresh_warning import RefreshWarning as RefreshWarning
|
|
313
286
|
from hotdata.models.result_info import ResultInfo as ResultInfo
|
|
314
287
|
from hotdata.models.results_format_query import ResultsFormatQuery as ResultsFormatQuery
|
|
315
288
|
from hotdata.models.saved_query_detail import SavedQueryDetail as SavedQueryDetail
|
|
316
289
|
from hotdata.models.saved_query_summary import SavedQuerySummary as SavedQuerySummary
|
|
317
290
|
from hotdata.models.saved_query_version_info import SavedQueryVersionInfo as SavedQueryVersionInfo
|
|
318
|
-
from hotdata.models.schema_refresh_result import SchemaRefreshResult as SchemaRefreshResult
|
|
319
|
-
from hotdata.models.secret_metadata_response import SecretMetadataResponse as SecretMetadataResponse
|
|
320
291
|
from hotdata.models.submit_job_response import SubmitJobResponse as SubmitJobResponse
|
|
321
292
|
from hotdata.models.table_info import TableInfo as TableInfo
|
|
322
293
|
from hotdata.models.table_partition_key import TablePartitionKey as TablePartitionKey
|
|
323
294
|
from hotdata.models.table_profile_response import TableProfileResponse as TableProfileResponse
|
|
324
|
-
from hotdata.models.table_refresh_error import TableRefreshError as TableRefreshError
|
|
325
|
-
from hotdata.models.table_refresh_result import TableRefreshResult as TableRefreshResult
|
|
326
295
|
from hotdata.models.table_sort_key import TableSortKey as TableSortKey
|
|
327
296
|
from hotdata.models.temporal_profile_detail import TemporalProfileDetail as TemporalProfileDetail
|
|
328
297
|
from hotdata.models.text_profile_detail import TextProfileDetail as TextProfileDetail
|
|
329
298
|
from hotdata.models.update_embedding_provider_request import UpdateEmbeddingProviderRequest as UpdateEmbeddingProviderRequest
|
|
330
299
|
from hotdata.models.update_embedding_provider_response import UpdateEmbeddingProviderResponse as UpdateEmbeddingProviderResponse
|
|
300
|
+
from hotdata.models.update_managed_table_request import UpdateManagedTableRequest as UpdateManagedTableRequest
|
|
331
301
|
from hotdata.models.update_saved_query_request import UpdateSavedQueryRequest as UpdateSavedQueryRequest
|
|
332
|
-
from hotdata.models.update_secret_request import UpdateSecretRequest as UpdateSecretRequest
|
|
333
|
-
from hotdata.models.update_secret_response import UpdateSecretResponse as UpdateSecretResponse
|
|
334
302
|
from hotdata.models.upload_session_response import UploadSessionResponse as UploadSessionResponse
|
|
335
303
|
from hotdata.models.upsert_database_context_request import UpsertDatabaseContextRequest as UpsertDatabaseContextRequest
|
|
336
304
|
from hotdata.models.upsert_database_context_response import UpsertDatabaseContextResponse as UpsertDatabaseContextResponse
|
|
@@ -344,10 +312,21 @@ from hotdata.models.workspace_usage_response import WorkspaceUsageResponse as Wo
|
|
|
344
312
|
# hotdata.query.QueryApi adds 429 retry + truncation auto-follow;
|
|
345
313
|
# hotdata.arrow.ResultsApi adds Arrow IPC result fetch;
|
|
346
314
|
# hotdata.uploads.UploadsApi adds transparent presigned direct-to-storage
|
|
347
|
-
# uploads.
|
|
315
|
+
# uploads; hotdata.loads.DatabasesApi / ConnectionsApi retry table loads
|
|
316
|
+
# while another load holds the table (409 RESOURCE_LOCKED). The raw
|
|
317
|
+
# generated classes remain importable from hotdata.api.*.
|
|
348
318
|
from hotdata.query import QueryApi as QueryApi # noqa: E402,F811
|
|
349
319
|
from hotdata.arrow import ResultsApi as ResultsApi # noqa: E402,F811
|
|
350
320
|
from hotdata.uploads import UploadsApi as UploadsApi # noqa: E402,F811
|
|
321
|
+
from hotdata.loads import DatabasesApi as DatabasesApi # noqa: E402,F811
|
|
322
|
+
from hotdata.loads import ConnectionsApi as ConnectionsApi # noqa: E402,F811
|
|
323
|
+
from hotdata.loads import ( # noqa: E402,F401
|
|
324
|
+
LoadRetryPolicy as LoadRetryPolicy,
|
|
325
|
+
TableLockedError as TableLockedError,
|
|
326
|
+
)
|
|
327
|
+
# Raised client-side (scripts/patch_workspace_guard.py) when a workspace-
|
|
328
|
+
# scoped call has no workspace id configured.
|
|
329
|
+
from hotdata._workspace import MissingWorkspaceError as MissingWorkspaceError # noqa: E402,F401
|
|
351
330
|
# The upload error hierarchy + option/helper types, so `from hotdata import
|
|
352
331
|
# UploadError` / `StorageError` / ... works (they otherwise live only under
|
|
353
332
|
# hotdata.uploads and are invisible to autocomplete on `hotdata.`).
|
|
@@ -382,4 +361,7 @@ __all__ += [ # noqa: F405
|
|
|
382
361
|
"UploadProgress",
|
|
383
362
|
"UploadSource",
|
|
384
363
|
"tqdm_progress",
|
|
364
|
+
"LoadRetryPolicy",
|
|
365
|
+
"TableLockedError",
|
|
366
|
+
"MissingWorkspaceError",
|
|
385
367
|
]
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""The SDK's default ``User-Agent``.
|
|
2
|
+
|
|
3
|
+
The generator's default is ``OpenAPI-Generator/1.0.0/python``, which identifies
|
|
4
|
+
neither the SDK nor its version — server-side telemetry cannot tell a hotdata
|
|
5
|
+
client from any other generated client, let alone one release from another.
|
|
6
|
+
|
|
7
|
+
openapi-generator *does* expose an ``httpUserAgent`` property for this, but it
|
|
8
|
+
bakes a literal string in at **generation** time. Regeneration is driven by
|
|
9
|
+
OpenAPI spec changes, not by releases, so a baked version string reports
|
|
10
|
+
whatever the version happened to be at the last regen — it would go stale
|
|
11
|
+
silently and misattribute traffic, which is worse than the generic default. The
|
|
12
|
+
version is therefore resolved at import time from installed package metadata,
|
|
13
|
+
the same source :mod:`hotdata.__init__` uses for ``__version__``.
|
|
14
|
+
|
|
15
|
+
This lives outside the generated modules (see ``.openapi-generator-ignore``) so
|
|
16
|
+
a regeneration cannot overwrite it; ``scripts/patch_request_defaults.py`` only
|
|
17
|
+
has to re-point ``ApiClient`` at the constant.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
from __future__ import annotations
|
|
21
|
+
|
|
22
|
+
import importlib.metadata
|
|
23
|
+
import platform
|
|
24
|
+
|
|
25
|
+
import urllib3
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _default_user_agent() -> str:
|
|
29
|
+
"""``hotdata-python/<version> (Python/<py>; urllib3/<urllib3>)``.
|
|
30
|
+
|
|
31
|
+
The runtime versions ride along because the transport stack is where
|
|
32
|
+
client-side failures usually originate: knowing which urllib3 a bug report
|
|
33
|
+
came from is the difference between reproducing a problem and guessing.
|
|
34
|
+
"""
|
|
35
|
+
try:
|
|
36
|
+
sdk_version = importlib.metadata.version("hotdata")
|
|
37
|
+
except importlib.metadata.PackageNotFoundError:
|
|
38
|
+
# Running from a source checkout without an install.
|
|
39
|
+
sdk_version = "0.0.0+unknown"
|
|
40
|
+
return (
|
|
41
|
+
f"hotdata-python/{sdk_version} "
|
|
42
|
+
f"(Python/{platform.python_version()}; urllib3/{urllib3.__version__})"
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
#: Sent as ``User-Agent`` on every request. ``ApiClient.user_agent`` still
|
|
47
|
+
#: overrides it per client, which is the supported way for an application to
|
|
48
|
+
#: identify itself.
|
|
49
|
+
USER_AGENT = _default_user_agent()
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
__all__ = ["USER_AGENT", "_default_user_agent"]
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"""Fail fast when a workspace-scoped request has no workspace to go to.
|
|
2
|
+
|
|
3
|
+
Most operations are scoped to a workspace through the ``X-Workspace-Id``
|
|
4
|
+
header (the ``WorkspaceId`` security scheme). The generated client simply
|
|
5
|
+
skips a scheme that has no configured value, so a ``Configuration`` built
|
|
6
|
+
without ``workspace_id`` sends the request anyway and the server answers with
|
|
7
|
+
a bare 404 that says nothing about what was missing.
|
|
8
|
+
|
|
9
|
+
:func:`ensure_workspace` runs before the request is sent (wired into
|
|
10
|
+
``ApiClient.update_params_for_auth`` by ``scripts/patch_workspace_guard.py``)
|
|
11
|
+
and raises :class:`MissingWorkspaceError` naming the constructor argument and
|
|
12
|
+
the environment variable. Operations whose security does not list
|
|
13
|
+
``WorkspaceId`` (workspace management itself) are unaffected, as are calls
|
|
14
|
+
that supply the header explicitly or override auth per request.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
from typing import Any, Iterable, Mapping, Optional
|
|
20
|
+
|
|
21
|
+
from hotdata.exceptions import ApiValueError
|
|
22
|
+
|
|
23
|
+
WORKSPACE_SCHEME = "WorkspaceId"
|
|
24
|
+
WORKSPACE_HEADER = "X-Workspace-Id"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class MissingWorkspaceError(ApiValueError):
|
|
28
|
+
"""Raised before sending a workspace-scoped request when no workspace id
|
|
29
|
+
is configured.
|
|
30
|
+
|
|
31
|
+
Pass ``workspace_id=`` to :class:`hotdata.Configuration`, set the
|
|
32
|
+
``HOTDATA_WORKSPACE`` environment variable, or send the ``X-Workspace-Id``
|
|
33
|
+
header explicitly for the call.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
def __init__(self, resource_path: str, method: str) -> None:
|
|
37
|
+
self.resource_path = resource_path
|
|
38
|
+
self.method = method
|
|
39
|
+
super().__init__(
|
|
40
|
+
f"{method} {resource_path} is scoped to a workspace but no workspace id "
|
|
41
|
+
"is configured. Pass workspace_id=... to hotdata.Configuration(...), "
|
|
42
|
+
"set the HOTDATA_WORKSPACE environment variable, or send the "
|
|
43
|
+
f"{WORKSPACE_HEADER} header explicitly (_headers=...)."
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def ensure_workspace(
|
|
48
|
+
configuration: Any,
|
|
49
|
+
auth_settings: Optional[Iterable[str]],
|
|
50
|
+
headers: Optional[Mapping[str, Any]],
|
|
51
|
+
resource_path: str,
|
|
52
|
+
method: str,
|
|
53
|
+
request_auth: Optional[Mapping[str, Any]] = None,
|
|
54
|
+
) -> None:
|
|
55
|
+
"""Raise :class:`MissingWorkspaceError` if the operation needs a workspace
|
|
56
|
+
id and none would be sent.
|
|
57
|
+
|
|
58
|
+
:param configuration: The client's :class:`hotdata.Configuration`.
|
|
59
|
+
:param auth_settings: The operation's security scheme names.
|
|
60
|
+
:param headers: Header params already assembled for the request.
|
|
61
|
+
:param request_auth: A per-request auth override; when given the
|
|
62
|
+
configuration is bypassed entirely, so the check is skipped.
|
|
63
|
+
"""
|
|
64
|
+
if request_auth:
|
|
65
|
+
return
|
|
66
|
+
if not auth_settings or WORKSPACE_SCHEME not in auth_settings:
|
|
67
|
+
return
|
|
68
|
+
if headers and any(
|
|
69
|
+
str(name).lower() == WORKSPACE_HEADER.lower() for name in headers
|
|
70
|
+
):
|
|
71
|
+
return
|
|
72
|
+
settings = configuration.auth_settings()
|
|
73
|
+
scheme = settings.get(WORKSPACE_SCHEME) if settings else None
|
|
74
|
+
if scheme and scheme.get("value"):
|
|
75
|
+
return
|
|
76
|
+
raise MissingWorkspaceError(resource_path, method)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
__all__ = [
|
|
80
|
+
"WORKSPACE_HEADER",
|
|
81
|
+
"WORKSPACE_SCHEME",
|
|
82
|
+
"MissingWorkspaceError",
|
|
83
|
+
"ensure_workspace",
|
|
84
|
+
]
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# flake8: noqa
|
|
2
2
|
|
|
3
3
|
# import apis into api package
|
|
4
|
-
from hotdata.api.connection_types_api import ConnectionTypesApi
|
|
5
4
|
from hotdata.api.connections_api import ConnectionsApi
|
|
6
5
|
from hotdata.api.database_context_api import DatabaseContextApi
|
|
7
6
|
from hotdata.api.databases_api import DatabasesApi
|
|
@@ -11,10 +10,8 @@ from hotdata.api.information_schema_api import InformationSchemaApi
|
|
|
11
10
|
from hotdata.api.jobs_api import JobsApi
|
|
12
11
|
from hotdata.api.query_api import QueryApi
|
|
13
12
|
from hotdata.api.query_runs_api import QueryRunsApi
|
|
14
|
-
from hotdata.api.refresh_api import RefreshApi
|
|
15
13
|
from hotdata.api.results_api import ResultsApi
|
|
16
14
|
from hotdata.api.saved_queries_api import SavedQueriesApi
|
|
17
|
-
from hotdata.api.secrets_api import SecretsApi
|
|
18
15
|
from hotdata.api.uploads_api import UploadsApi
|
|
19
16
|
from hotdata.api.usage_api import UsageApi
|
|
20
17
|
from hotdata.api.workspaces_api import WorkspacesApi
|