antfly-sdk 0.0.2.dev2__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.
- antfly/.gitignore +23 -0
- antfly/README.md +124 -0
- antfly/__init__.py +20 -0
- antfly/client.py +260 -0
- antfly/client_generated/__init__.py +8 -0
- antfly/client_generated/api/__init__.py +1 -0
- antfly/client_generated/api/api_key/__init__.py +1 -0
- antfly/client_generated/api/api_key/create_api_key.py +209 -0
- antfly/client_generated/api/api_key/delete_api_key.py +182 -0
- antfly/client_generated/api/api_key/list_api_keys.py +182 -0
- antfly/client_generated/api/cluster_management/__init__.py +1 -0
- antfly/client_generated/api/cluster_management/backup.py +259 -0
- antfly/client_generated/api/cluster_management/delete_secret.py +177 -0
- antfly/client_generated/api/cluster_management/get_cluster.py +147 -0
- antfly/client_generated/api/cluster_management/get_status.py +145 -0
- antfly/client_generated/api/cluster_management/list_backups.py +187 -0
- antfly/client_generated/api/cluster_management/list_secrets.py +147 -0
- antfly/client_generated/api/cluster_management/put_secret.py +200 -0
- antfly/client_generated/api/cluster_management/restore.py +215 -0
- antfly/client_generated/api/data_operations/__init__.py +1 -0
- antfly/client_generated/api/data_operations/abort_transaction_session.py +176 -0
- antfly/client_generated/api/data_operations/backup_table.py +192 -0
- antfly/client_generated/api/data_operations/batch_write.py +318 -0
- antfly/client_generated/api/data_operations/begin_transaction.py +172 -0
- antfly/client_generated/api/data_operations/cleanup_transaction_sessions.py +171 -0
- antfly/client_generated/api/data_operations/commit_transaction.py +289 -0
- antfly/client_generated/api/data_operations/commit_transaction_session.py +234 -0
- antfly/client_generated/api/data_operations/create_transaction_savepoint.py +176 -0
- antfly/client_generated/api/data_operations/get_transaction_session.py +176 -0
- antfly/client_generated/api/data_operations/linear_merge.py +338 -0
- antfly/client_generated/api/data_operations/list_transaction_sessions.py +134 -0
- antfly/client_generated/api/data_operations/lookup_key.py +206 -0
- antfly/client_generated/api/data_operations/multi_batch_write.py +248 -0
- antfly/client_generated/api/data_operations/restore_table.py +187 -0
- antfly/client_generated/api/data_operations/rollback_transaction_savepoint.py +190 -0
- antfly/client_generated/api/data_operations/stage_transaction_delete.py +197 -0
- antfly/client_generated/api/data_operations/stage_transaction_read.py +198 -0
- antfly/client_generated/api/data_operations/stage_transaction_session.py +233 -0
- antfly/client_generated/api/data_operations/stage_transaction_write.py +197 -0
- antfly/client_generated/api/default/__init__.py +1 -0
- antfly/client_generated/api/default/chat_completions.py +193 -0
- antfly/client_generated/api/default/chunk_text.py +243 -0
- antfly/client_generated/api/default/create_embedding.py +204 -0
- antfly/client_generated/api/default/extract.py +201 -0
- antfly/client_generated/api/default/generate_content.py +257 -0
- antfly/client_generated/api/default/generate_embeddings.py +204 -0
- antfly/client_generated/api/default/list_models.py +327 -0
- antfly/client_generated/api/default/read_images.py +281 -0
- antfly/client_generated/api/default/rerank_multimodal_prompts.py +204 -0
- antfly/client_generated/api/default/rerank_prompts.py +289 -0
- antfly/client_generated/api/default/rewrite_text.py +241 -0
- antfly/client_generated/api/default/transcribe_audio.py +329 -0
- antfly/client_generated/api/index_management/__init__.py +1 -0
- antfly/client_generated/api/index_management/create_index.py +209 -0
- antfly/client_generated/api/index_management/drop_index.py +174 -0
- antfly/client_generated/api/index_management/get_index.py +176 -0
- antfly/client_generated/api/index_management/list_indexes.py +171 -0
- antfly/client_generated/api/permission/__init__.py +1 -0
- antfly/client_generated/api/permission/add_permission_to_user.py +198 -0
- antfly/client_generated/api/permission/get_user_permissions.py +184 -0
- antfly/client_generated/api/permission/remove_permission_from_user.py +215 -0
- antfly/client_generated/api/query_operations/__init__.py +1 -0
- antfly/client_generated/api/query_operations/evaluate.py +211 -0
- antfly/client_generated/api/query_operations/query_builder_agent.py +202 -0
- antfly/client_generated/api/role/__init__.py +1 -0
- antfly/client_generated/api/role/add_role_to_user.py +198 -0
- antfly/client_generated/api/role/list_auth_subjects.py +147 -0
- antfly/client_generated/api/role/list_user_roles.py +169 -0
- antfly/client_generated/api/role/remove_role_from_user.py +194 -0
- antfly/client_generated/api/row_filter/__init__.py +1 -0
- antfly/client_generated/api/row_filter/get_row_filter.py +186 -0
- antfly/client_generated/api/row_filter/get_subject_row_filter.py +186 -0
- antfly/client_generated/api/row_filter/list_row_filters.py +179 -0
- antfly/client_generated/api/row_filter/list_subject_row_filters.py +174 -0
- antfly/client_generated/api/row_filter/remove_row_filter.py +182 -0
- antfly/client_generated/api/row_filter/remove_subject_row_filter.py +182 -0
- antfly/client_generated/api/row_filter/set_row_filter.py +216 -0
- antfly/client_generated/api/row_filter/set_subject_row_filter.py +207 -0
- antfly/client_generated/api/table_management/__init__.py +1 -0
- antfly/client_generated/api/table_management/drop_table.py +160 -0
- antfly/client_generated/api/table_management/get_table.py +151 -0
- antfly/client_generated/api/table_management/list_tables.py +176 -0
- antfly/client_generated/api/table_management/update_schema.py +182 -0
- antfly/client_generated/api/user/__init__.py +1 -0
- antfly/client_generated/api/user/create_user.py +196 -0
- antfly/client_generated/api/user/delete_user.py +173 -0
- antfly/client_generated/api/user/get_current_user.py +147 -0
- antfly/client_generated/api/user/get_user_by_name.py +175 -0
- antfly/client_generated/api/user/list_users.py +157 -0
- antfly/client_generated/api/user/update_user_password.py +198 -0
- antfly/client_generated/client.py +268 -0
- antfly/client_generated/errors.py +16 -0
- antfly/client_generated/models/__init__.py +1087 -0
- antfly/client_generated/models/agent_decision.py +81 -0
- antfly/client_generated/models/agent_question.py +120 -0
- antfly/client_generated/models/agent_question_kind.py +12 -0
- antfly/client_generated/models/agent_status.py +12 -0
- antfly/client_generated/models/agent_step.py +155 -0
- antfly/client_generated/models/agent_step_details.py +47 -0
- antfly/client_generated/models/agent_step_kind.py +13 -0
- antfly/client_generated/models/agent_step_status.py +10 -0
- antfly/client_generated/models/aggregation_bucket.py +156 -0
- antfly/client_generated/models/aggregation_bucket_sub_aggregations.py +60 -0
- antfly/client_generated/models/aggregation_date_range.py +81 -0
- antfly/client_generated/models/aggregation_range.py +81 -0
- antfly/client_generated/models/aggregation_result.py +160 -0
- antfly/client_generated/models/aggregation_type.py +23 -0
- antfly/client_generated/models/algebraic_aggregation_join.py +96 -0
- antfly/client_generated/models/algebraic_aggregation_join_kind.py +11 -0
- antfly/client_generated/models/algebraic_index_config.py +64 -0
- antfly/client_generated/models/algebraic_index_stats.py +329 -0
- antfly/client_generated/models/algebraic_index_stats_index_type.py +8 -0
- antfly/client_generated/models/algebraic_index_stats_planner_last_decision.py +9 -0
- antfly/client_generated/models/analyses.py +70 -0
- antfly/client_generated/models/analyses_result.py +74 -0
- antfly/client_generated/models/answer_agent_result.py +159 -0
- antfly/client_generated/models/answer_agent_steps.py +136 -0
- antfly/client_generated/models/antfly_chunker_config.py +149 -0
- antfly/client_generated/models/antfly_embedder_config.py +90 -0
- antfly/client_generated/models/antfly_generator_config.py +119 -0
- antfly/client_generated/models/antfly_reranker_config.py +77 -0
- antfly/client_generated/models/antfly_type.py +19 -0
- antfly/client_generated/models/antfly_type_2.py +19 -0
- antfly/client_generated/models/anthropic_generator_config.py +119 -0
- antfly/client_generated/models/api_key.py +202 -0
- antfly/client_generated/models/api_key_row_filter_type_0.py +50 -0
- antfly/client_generated/models/api_key_with_secret.py +220 -0
- antfly/client_generated/models/audio_chunk_options.py +72 -0
- antfly/client_generated/models/auth_subject.py +72 -0
- antfly/client_generated/models/auth_subject_kind.py +11 -0
- antfly/client_generated/models/backup_info.py +115 -0
- antfly/client_generated/models/backup_info_format.py +9 -0
- antfly/client_generated/models/backup_list_response.py +75 -0
- antfly/client_generated/models/backup_request.py +101 -0
- antfly/client_generated/models/backup_request_format.py +9 -0
- antfly/client_generated/models/backup_table_response_201.py +61 -0
- antfly/client_generated/models/batch_request.py +195 -0
- antfly/client_generated/models/batch_request_inserts.py +71 -0
- antfly/client_generated/models/batch_request_inserts_additional_property.py +47 -0
- antfly/client_generated/models/batch_response.py +79 -0
- antfly/client_generated/models/bedrock_embedder_config.py +139 -0
- antfly/client_generated/models/bedrock_generator_config.py +109 -0
- antfly/client_generated/models/bing_search_config.py +159 -0
- antfly/client_generated/models/bing_search_config_freshness.py +10 -0
- antfly/client_generated/models/bool_field_query.py +93 -0
- antfly/client_generated/models/boolean_query.py +534 -0
- antfly/client_generated/models/brave_search_config.py +169 -0
- antfly/client_generated/models/brave_search_config_freshness.py +11 -0
- antfly/client_generated/models/calendar_interval.py +14 -0
- antfly/client_generated/models/chain_condition.py +11 -0
- antfly/client_generated/models/chain_link.py +110 -0
- antfly/client_generated/models/chat_message.py +208 -0
- antfly/client_generated/models/chat_message_role.py +11 -0
- antfly/client_generated/models/chat_tool_name.py +16 -0
- antfly/client_generated/models/chat_tools_config.py +157 -0
- antfly/client_generated/models/chunk_options.py +111 -0
- antfly/client_generated/models/chunker_config.py +103 -0
- antfly/client_generated/models/chunker_config_full_text_index.py +51 -0
- antfly/client_generated/models/chunker_provider.py +9 -0
- antfly/client_generated/models/classification_step_config.py +169 -0
- antfly/client_generated/models/classification_transformation_result.py +158 -0
- antfly/client_generated/models/cluster_backup_request.py +113 -0
- antfly/client_generated/models/cluster_backup_request_format.py +9 -0
- antfly/client_generated/models/cluster_backup_response.py +93 -0
- antfly/client_generated/models/cluster_backup_response_status.py +10 -0
- antfly/client_generated/models/cluster_data_group_status.py +209 -0
- antfly/client_generated/models/cluster_data_node_status.py +197 -0
- antfly/client_generated/models/cluster_data_range_status.py +200 -0
- antfly/client_generated/models/cluster_data_replica_status.py +98 -0
- antfly/client_generated/models/cluster_data_status.py +149 -0
- antfly/client_generated/models/cluster_health.py +12 -0
- antfly/client_generated/models/cluster_restore_request.py +107 -0
- antfly/client_generated/models/cluster_restore_request_restore_mode.py +10 -0
- antfly/client_generated/models/cluster_restore_response.py +85 -0
- antfly/client_generated/models/cluster_restore_response_status.py +10 -0
- antfly/client_generated/models/cluster_status.py +114 -0
- antfly/client_generated/models/cluster_topology.py +124 -0
- antfly/client_generated/models/cohere_embedder_config.py +119 -0
- antfly/client_generated/models/cohere_embedder_config_input_type.py +11 -0
- antfly/client_generated/models/cohere_embedder_config_truncate.py +10 -0
- antfly/client_generated/models/cohere_generator_config.py +127 -0
- antfly/client_generated/models/cohere_reranker_config.py +102 -0
- antfly/client_generated/models/confidence_step_config.py +119 -0
- antfly/client_generated/models/conjunction_query.py +492 -0
- antfly/client_generated/models/create_api_key_request.py +156 -0
- antfly/client_generated/models/create_api_key_request_row_filter_type_0.py +50 -0
- antfly/client_generated/models/create_user_request.py +153 -0
- antfly/client_generated/models/create_user_request_metadata_type_0.py +52 -0
- antfly/client_generated/models/credentials.py +102 -0
- antfly/client_generated/models/date_range_string_query.py +165 -0
- antfly/client_generated/models/disjunction_query.py +501 -0
- antfly/client_generated/models/distance_metric.py +10 -0
- antfly/client_generated/models/distance_range.py +81 -0
- antfly/client_generated/models/distance_unit.py +12 -0
- antfly/client_generated/models/doc_id_query.py +84 -0
- antfly/client_generated/models/document_schema.py +85 -0
- antfly/client_generated/models/document_schema_schema.py +50 -0
- antfly/client_generated/models/duck_duck_go_search_config.py +143 -0
- antfly/client_generated/models/dynamic_template.py +141 -0
- antfly/client_generated/models/dynamic_template_match_mapping_type.py +12 -0
- antfly/client_generated/models/edge.py +144 -0
- antfly/client_generated/models/edge_direction.py +10 -0
- antfly/client_generated/models/edge_metadata.py +47 -0
- antfly/client_generated/models/edge_type_config.py +133 -0
- antfly/client_generated/models/edge_type_config_topology.py +9 -0
- antfly/client_generated/models/edges_response.py +88 -0
- antfly/client_generated/models/embedder_config.py +267 -0
- antfly/client_generated/models/embedder_provider.py +16 -0
- antfly/client_generated/models/embedding_type_1.py +70 -0
- antfly/client_generated/models/embedding_type_3.py +71 -0
- antfly/client_generated/models/embeddings_index_config.py +393 -0
- antfly/client_generated/models/embeddings_index_stats.py +146 -0
- antfly/client_generated/models/embeddings_index_stats_index_type.py +8 -0
- antfly/client_generated/models/error.py +61 -0
- antfly/client_generated/models/eval_config.py +135 -0
- antfly/client_generated/models/eval_options.py +80 -0
- antfly/client_generated/models/eval_request.py +185 -0
- antfly/client_generated/models/eval_request_context_item.py +47 -0
- antfly/client_generated/models/eval_result.py +102 -0
- antfly/client_generated/models/eval_scores.py +93 -0
- antfly/client_generated/models/eval_scores_generation.py +60 -0
- antfly/client_generated/models/eval_scores_retrieval.py +60 -0
- antfly/client_generated/models/eval_summary.py +89 -0
- antfly/client_generated/models/evaluator_name.py +20 -0
- antfly/client_generated/models/evaluator_score.py +102 -0
- antfly/client_generated/models/evaluator_score_metadata.py +47 -0
- antfly/client_generated/models/extraction_classification.py +80 -0
- antfly/client_generated/models/extraction_classification_schema.py +80 -0
- antfly/client_generated/models/extraction_entity.py +98 -0
- antfly/client_generated/models/extraction_input.py +201 -0
- antfly/client_generated/models/extraction_input_metadata.py +47 -0
- antfly/client_generated/models/extraction_object.py +152 -0
- antfly/client_generated/models/extraction_object_structures.py +47 -0
- antfly/client_generated/models/extraction_options.py +110 -0
- antfly/client_generated/models/extraction_reader_options.py +88 -0
- antfly/client_generated/models/extraction_relation.py +110 -0
- antfly/client_generated/models/extraction_relation_endpoint.py +70 -0
- antfly/client_generated/models/extraction_relation_schema.py +81 -0
- antfly/client_generated/models/extraction_request.py +113 -0
- antfly/client_generated/models/extraction_response.py +112 -0
- antfly/client_generated/models/extraction_response_object.py +8 -0
- antfly/client_generated/models/extraction_response_usage.py +47 -0
- antfly/client_generated/models/extraction_schema.py +131 -0
- antfly/client_generated/models/extraction_schema_structures.py +60 -0
- antfly/client_generated/models/extraction_structure_field_type_1.py +47 -0
- antfly/client_generated/models/extraction_structure_schema.py +74 -0
- antfly/client_generated/models/extraction_structure_schema_fields.py +76 -0
- antfly/client_generated/models/extraction_token.py +74 -0
- antfly/client_generated/models/failed_operation.py +87 -0
- antfly/client_generated/models/failed_operation_operation.py +9 -0
- antfly/client_generated/models/fetch_config.py +140 -0
- antfly/client_generated/models/field_statistics.py +98 -0
- antfly/client_generated/models/filter_spec.py +88 -0
- antfly/client_generated/models/filter_spec_operator.py +17 -0
- antfly/client_generated/models/followup_step_config.py +128 -0
- antfly/client_generated/models/foreign_column.py +82 -0
- antfly/client_generated/models/foreign_source.py +114 -0
- antfly/client_generated/models/foreign_source_type.py +8 -0
- antfly/client_generated/models/full_text_index_config.py +61 -0
- antfly/client_generated/models/full_text_index_stats.py +118 -0
- antfly/client_generated/models/full_text_index_stats_index_type.py +8 -0
- antfly/client_generated/models/fuzziness_type_1.py +8 -0
- antfly/client_generated/models/fuzzy_query.py +131 -0
- antfly/client_generated/models/generation_step_config.py +128 -0
- antfly/client_generated/models/generator_config.py +67 -0
- antfly/client_generated/models/generator_provider.py +17 -0
- antfly/client_generated/models/geo_bounding_box_query.py +101 -0
- antfly/client_generated/models/geo_bounding_polygon_query.py +107 -0
- antfly/client_generated/models/geo_distance_query.py +101 -0
- antfly/client_generated/models/geo_point.py +70 -0
- antfly/client_generated/models/geo_shape_geometry_relation.py +10 -0
- antfly/client_generated/models/get_current_user_response_200.py +122 -0
- antfly/client_generated/models/get_current_user_response_200_metadata_type_0.py +47 -0
- antfly/client_generated/models/google_embedder_config.py +120 -0
- antfly/client_generated/models/google_generator_config.py +136 -0
- antfly/client_generated/models/google_search_config.py +173 -0
- antfly/client_generated/models/google_search_config_search_type.py +9 -0
- antfly/client_generated/models/graph_index_config.py +121 -0
- antfly/client_generated/models/graph_index_stats.py +151 -0
- antfly/client_generated/models/graph_index_stats_algebraic_graph.py +75 -0
- antfly/client_generated/models/graph_index_stats_algebraic_graph_traversal.py +97 -0
- antfly/client_generated/models/graph_index_stats_edge_types.py +47 -0
- antfly/client_generated/models/graph_index_stats_index_type.py +8 -0
- antfly/client_generated/models/graph_node_selector.py +106 -0
- antfly/client_generated/models/graph_query.py +192 -0
- antfly/client_generated/models/graph_query_params.py +216 -0
- antfly/client_generated/models/graph_query_params_algorithm_params.py +47 -0
- antfly/client_generated/models/graph_query_result.py +155 -0
- antfly/client_generated/models/graph_query_type.py +12 -0
- antfly/client_generated/models/graph_result_node.py +173 -0
- antfly/client_generated/models/graph_result_node_document.py +47 -0
- antfly/client_generated/models/ground_truth.py +74 -0
- antfly/client_generated/models/image_url.py +62 -0
- antfly/client_generated/models/image_url_content_part.py +78 -0
- antfly/client_generated/models/image_url_content_part_type.py +8 -0
- antfly/client_generated/models/incomplete_details.py +68 -0
- antfly/client_generated/models/incomplete_details_reason.py +11 -0
- antfly/client_generated/models/index_status.py +190 -0
- antfly/client_generated/models/index_status_shard_status.py +116 -0
- antfly/client_generated/models/index_type.py +11 -0
- antfly/client_generated/models/inference_audio_chunk_config.py +95 -0
- antfly/client_generated/models/inference_backend_runtimes.py +116 -0
- antfly/client_generated/models/inference_binary_content.py +98 -0
- antfly/client_generated/models/inference_chat_message.py +198 -0
- antfly/client_generated/models/inference_chunk.py +70 -0
- antfly/client_generated/models/inference_chunk_config.py +123 -0
- antfly/client_generated/models/inference_chunk_object.py +88 -0
- antfly/client_generated/models/inference_chunk_object_object.py +8 -0
- antfly/client_generated/models/inference_chunk_request.py +148 -0
- antfly/client_generated/models/inference_chunk_response.py +117 -0
- antfly/client_generated/models/inference_chunk_response_object.py +8 -0
- antfly/client_generated/models/inference_classify_object.py +93 -0
- antfly/client_generated/models/inference_classify_object_object.py +8 -0
- antfly/client_generated/models/inference_classify_request.py +105 -0
- antfly/client_generated/models/inference_classify_response.py +103 -0
- antfly/client_generated/models/inference_classify_response_object.py +8 -0
- antfly/client_generated/models/inference_classify_result.py +69 -0
- antfly/client_generated/models/inference_config.py +327 -0
- antfly/client_generated/models/inference_config_model_strategies.py +74 -0
- antfly/client_generated/models/inference_config_model_strategies_additional_property.py +10 -0
- antfly/client_generated/models/inference_content_security_config.py +128 -0
- antfly/client_generated/models/inference_credentials.py +102 -0
- antfly/client_generated/models/inference_document_classification_features.py +141 -0
- antfly/client_generated/models/inference_document_classification_object.py +162 -0
- antfly/client_generated/models/inference_document_classification_object_input.py +69 -0
- antfly/client_generated/models/inference_document_classification_object_object.py +8 -0
- antfly/client_generated/models/inference_document_classification_request.py +99 -0
- antfly/client_generated/models/inference_document_classification_response.py +103 -0
- antfly/client_generated/models/inference_document_classification_response_object.py +8 -0
- antfly/client_generated/models/inference_document_classification_result.py +69 -0
- antfly/client_generated/models/inference_document_token_box.py +70 -0
- antfly/client_generated/models/inference_document_token_classification_features.py +101 -0
- antfly/client_generated/models/inference_document_token_classification_object.py +124 -0
- antfly/client_generated/models/inference_document_token_classification_object_object.py +8 -0
- antfly/client_generated/models/inference_document_token_classification_prediction.py +145 -0
- antfly/client_generated/models/inference_document_token_classification_request.py +105 -0
- antfly/client_generated/models/inference_document_token_classification_response.py +105 -0
- antfly/client_generated/models/inference_document_token_classification_response_object.py +8 -0
- antfly/client_generated/models/inference_document_token_classification_result.py +69 -0
- antfly/client_generated/models/inference_embed_request.py +226 -0
- antfly/client_generated/models/inference_embed_request_encoding_format.py +8 -0
- antfly/client_generated/models/inference_embed_request_input_type.py +13 -0
- antfly/client_generated/models/inference_embed_request_task_type.py +15 -0
- antfly/client_generated/models/inference_embed_response.py +104 -0
- antfly/client_generated/models/inference_embed_response_object.py +8 -0
- antfly/client_generated/models/inference_embedding_object.py +113 -0
- antfly/client_generated/models/inference_embedding_object_object.py +8 -0
- antfly/client_generated/models/inference_embedding_usage.py +70 -0
- antfly/client_generated/models/inference_error.py +61 -0
- antfly/client_generated/models/inference_extract_field_value.py +90 -0
- antfly/client_generated/models/inference_extract_object.py +88 -0
- antfly/client_generated/models/inference_extract_object_object.py +8 -0
- antfly/client_generated/models/inference_extract_object_results.py +80 -0
- antfly/client_generated/models/inference_extract_object_results_additional_property_item.py +47 -0
- antfly/client_generated/models/inference_extract_request.py +179 -0
- antfly/client_generated/models/inference_extract_request_schema.py +62 -0
- antfly/client_generated/models/inference_extract_response.py +103 -0
- antfly/client_generated/models/inference_extract_response_object.py +8 -0
- antfly/client_generated/models/inference_finish_reason.py +12 -0
- antfly/client_generated/models/inference_function_definition.py +107 -0
- antfly/client_generated/models/inference_function_definition_parameters.py +53 -0
- antfly/client_generated/models/inference_generate_choice.py +121 -0
- antfly/client_generated/models/inference_generate_choice_logprobs_type_0.py +47 -0
- antfly/client_generated/models/inference_generate_chunk.py +110 -0
- antfly/client_generated/models/inference_generate_chunk_choice.py +94 -0
- antfly/client_generated/models/inference_generate_chunk_object.py +8 -0
- antfly/client_generated/models/inference_generate_delta.py +117 -0
- antfly/client_generated/models/inference_generate_json_schema_config.py +92 -0
- antfly/client_generated/models/inference_generate_json_schema_config_schema.py +47 -0
- antfly/client_generated/models/inference_generate_message.py +112 -0
- antfly/client_generated/models/inference_generate_request.py +380 -0
- antfly/client_generated/models/inference_generate_request_backend.py +14 -0
- antfly/client_generated/models/inference_generate_request_cache_dtype.py +12 -0
- antfly/client_generated/models/inference_generate_request_compiled_target.py +9 -0
- antfly/client_generated/models/inference_generate_request_mode.py +9 -0
- antfly/client_generated/models/inference_generate_response.py +120 -0
- antfly/client_generated/models/inference_generate_response_format.py +86 -0
- antfly/client_generated/models/inference_generate_response_format_type.py +10 -0
- antfly/client_generated/models/inference_generate_response_object.py +8 -0
- antfly/client_generated/models/inference_generate_usage.py +77 -0
- antfly/client_generated/models/inference_image_url.py +62 -0
- antfly/client_generated/models/inference_image_url_content_part.py +78 -0
- antfly/client_generated/models/inference_image_url_content_part_type.py +8 -0
- antfly/client_generated/models/inference_level.py +11 -0
- antfly/client_generated/models/inference_media_content_part.py +80 -0
- antfly/client_generated/models/inference_media_content_part_type.py +8 -0
- antfly/client_generated/models/inference_model_info.py +76 -0
- antfly/client_generated/models/inference_models_response.py +204 -0
- antfly/client_generated/models/inference_models_response_chunkers.py +60 -0
- antfly/client_generated/models/inference_models_response_classifiers.py +60 -0
- antfly/client_generated/models/inference_models_response_data_item.py +47 -0
- antfly/client_generated/models/inference_models_response_embedders.py +60 -0
- antfly/client_generated/models/inference_models_response_extractors.py +60 -0
- antfly/client_generated/models/inference_models_response_generators.py +60 -0
- antfly/client_generated/models/inference_models_response_object.py +8 -0
- antfly/client_generated/models/inference_models_response_readers.py +60 -0
- antfly/client_generated/models/inference_models_response_recognizers.py +60 -0
- antfly/client_generated/models/inference_models_response_rerankers.py +60 -0
- antfly/client_generated/models/inference_models_response_rewriters.py +60 -0
- antfly/client_generated/models/inference_models_response_transcribers.py +60 -0
- antfly/client_generated/models/inference_read_object.py +130 -0
- antfly/client_generated/models/inference_read_object_object.py +8 -0
- antfly/client_generated/models/inference_read_request.py +113 -0
- antfly/client_generated/models/inference_read_response.py +103 -0
- antfly/client_generated/models/inference_read_response_object.py +8 -0
- antfly/client_generated/models/inference_read_result.py +113 -0
- antfly/client_generated/models/inference_read_result_fields.py +54 -0
- antfly/client_generated/models/inference_recognize_entity.py +93 -0
- antfly/client_generated/models/inference_recognize_object.py +118 -0
- antfly/client_generated/models/inference_recognize_object_object.py +8 -0
- antfly/client_generated/models/inference_recognize_request.py +129 -0
- antfly/client_generated/models/inference_recognize_response.py +103 -0
- antfly/client_generated/models/inference_recognize_response_object.py +8 -0
- antfly/client_generated/models/inference_relation.py +91 -0
- antfly/client_generated/models/inference_rerank_multimodal_document.py +160 -0
- antfly/client_generated/models/inference_rerank_multimodal_request.py +91 -0
- antfly/client_generated/models/inference_rerank_object.py +79 -0
- antfly/client_generated/models/inference_rerank_object_object.py +8 -0
- antfly/client_generated/models/inference_rerank_request.py +79 -0
- antfly/client_generated/models/inference_rerank_response.py +103 -0
- antfly/client_generated/models/inference_rerank_response_object.py +8 -0
- antfly/client_generated/models/inference_resolver_config.py +110 -0
- antfly/client_generated/models/inference_rewrite_object.py +79 -0
- antfly/client_generated/models/inference_rewrite_object_object.py +8 -0
- antfly/client_generated/models/inference_rewrite_request.py +69 -0
- antfly/client_generated/models/inference_rewrite_response.py +103 -0
- antfly/client_generated/models/inference_rewrite_response_object.py +8 -0
- antfly/client_generated/models/inference_role.py +11 -0
- antfly/client_generated/models/inference_sparse_vector.py +70 -0
- antfly/client_generated/models/inference_style.py +11 -0
- antfly/client_generated/models/inference_text_chunk_options.py +82 -0
- antfly/client_generated/models/inference_text_content.py +78 -0
- antfly/client_generated/models/inference_text_content_part.py +72 -0
- antfly/client_generated/models/inference_text_content_part_type.py +8 -0
- antfly/client_generated/models/inference_text_region.py +89 -0
- antfly/client_generated/models/inference_tool.py +78 -0
- antfly/client_generated/models/inference_tool_call_delta.py +110 -0
- antfly/client_generated/models/inference_tool_call_delta_type.py +8 -0
- antfly/client_generated/models/inference_tool_call_function_delta.py +71 -0
- antfly/client_generated/models/inference_tool_choice_type_0.py +10 -0
- antfly/client_generated/models/inference_tool_choice_type_1_function.py +61 -0
- antfly/client_generated/models/inference_tool_choice_type_1_type.py +8 -0
- antfly/client_generated/models/inference_tool_type.py +8 -0
- antfly/client_generated/models/inference_transcribe_object.py +89 -0
- antfly/client_generated/models/inference_transcribe_object_object.py +8 -0
- antfly/client_generated/models/inference_transcribe_request.py +81 -0
- antfly/client_generated/models/inference_transcribe_response.py +103 -0
- antfly/client_generated/models/inference_transcribe_response_object.py +8 -0
- antfly/client_generated/models/inference_vad_options.py +92 -0
- antfly/client_generated/models/inferenceschemas_config.py +88 -0
- antfly/client_generated/models/ip_range_query.py +93 -0
- antfly/client_generated/models/join_condition.py +95 -0
- antfly/client_generated/models/join_operator.py +13 -0
- antfly/client_generated/models/join_profile.py +130 -0
- antfly/client_generated/models/join_strategy.py +10 -0
- antfly/client_generated/models/join_type.py +10 -0
- antfly/client_generated/models/key_range.py +71 -0
- antfly/client_generated/models/linear_merge_page_status.py +10 -0
- antfly/client_generated/models/linear_merge_request.py +150 -0
- antfly/client_generated/models/linear_merge_request_records.py +59 -0
- antfly/client_generated/models/linear_merge_result.py +183 -0
- antfly/client_generated/models/list_users_response_200_item.py +61 -0
- antfly/client_generated/models/lookup_key_response_200.py +47 -0
- antfly/client_generated/models/lsm_storage_status.py +116 -0
- antfly/client_generated/models/match_all_query.py +90 -0
- antfly/client_generated/models/match_all_query_match_all.py +47 -0
- antfly/client_generated/models/match_none_query.py +90 -0
- antfly/client_generated/models/match_none_query_match_none.py +47 -0
- antfly/client_generated/models/match_phrase_query.py +131 -0
- antfly/client_generated/models/match_query.py +157 -0
- antfly/client_generated/models/match_query_operator.py +9 -0
- antfly/client_generated/models/media_content_part.py +80 -0
- antfly/client_generated/models/media_content_part_type.py +8 -0
- antfly/client_generated/models/merge_config.py +118 -0
- antfly/client_generated/models/merge_config_weights.py +54 -0
- antfly/client_generated/models/merge_profile.py +101 -0
- antfly/client_generated/models/merge_strategy.py +10 -0
- antfly/client_generated/models/multi_batch_request.py +104 -0
- antfly/client_generated/models/multi_batch_request_tables.py +67 -0
- antfly/client_generated/models/multi_batch_response.py +75 -0
- antfly/client_generated/models/multi_batch_response_tables.py +60 -0
- antfly/client_generated/models/multi_match_body.py +101 -0
- antfly/client_generated/models/multi_match_body_type.py +8 -0
- antfly/client_generated/models/multi_match_query.py +67 -0
- antfly/client_generated/models/multi_phrase_query.py +131 -0
- antfly/client_generated/models/node_filter.py +84 -0
- antfly/client_generated/models/node_filter_filter_query.py +47 -0
- antfly/client_generated/models/numeric_range_query.py +163 -0
- antfly/client_generated/models/ollama_embedder_config.py +84 -0
- antfly/client_generated/models/ollama_generator_config.py +118 -0
- antfly/client_generated/models/ollama_reranker_config.py +73 -0
- antfly/client_generated/models/open_ai_embedder_config.py +104 -0
- antfly/client_generated/models/open_ai_generator_config.py +127 -0
- antfly/client_generated/models/open_router_embedder_config.py +94 -0
- antfly/client_generated/models/open_router_generator_config.py +128 -0
- antfly/client_generated/models/path.py +108 -0
- antfly/client_generated/models/path_edge.py +110 -0
- antfly/client_generated/models/path_edge_metadata.py +47 -0
- antfly/client_generated/models/path_find_request.py +158 -0
- antfly/client_generated/models/path_find_result.py +135 -0
- antfly/client_generated/models/path_find_weight_mode.py +10 -0
- antfly/client_generated/models/path_weight_mode.py +10 -0
- antfly/client_generated/models/pattern_edge_step.py +120 -0
- antfly/client_generated/models/pattern_match.py +98 -0
- antfly/client_generated/models/pattern_match_bindings.py +60 -0
- antfly/client_generated/models/pattern_step.py +102 -0
- antfly/client_generated/models/permission.py +80 -0
- antfly/client_generated/models/permission_type.py +10 -0
- antfly/client_generated/models/phrase_query.py +122 -0
- antfly/client_generated/models/prefix_query.py +93 -0
- antfly/client_generated/models/prune_stats.py +89 -0
- antfly/client_generated/models/pruner.py +115 -0
- antfly/client_generated/models/query_builder_request.py +250 -0
- antfly/client_generated/models/query_builder_request_constraints.py +53 -0
- antfly/client_generated/models/query_builder_request_example_documents_item.py +47 -0
- antfly/client_generated/models/query_hit.py +124 -0
- antfly/client_generated/models/query_hit_index_scores.py +47 -0
- antfly/client_generated/models/query_hit_source.py +47 -0
- antfly/client_generated/models/query_hits.py +98 -0
- antfly/client_generated/models/query_profile.py +130 -0
- antfly/client_generated/models/query_responses.py +80 -0
- antfly/client_generated/models/query_result.py +187 -0
- antfly/client_generated/models/query_result_aggregations.py +63 -0
- antfly/client_generated/models/query_result_analyses.py +60 -0
- antfly/client_generated/models/query_result_graph_results.py +60 -0
- antfly/client_generated/models/query_strategy.py +11 -0
- antfly/client_generated/models/query_string_query.py +84 -0
- antfly/client_generated/models/regexp_query.py +93 -0
- antfly/client_generated/models/replication_source_action_hint.py +81 -0
- antfly/client_generated/models/replication_source_status.py +225 -0
- antfly/client_generated/models/replication_transform_op.py +87 -0
- antfly/client_generated/models/reranker_config.py +86 -0
- antfly/client_generated/models/reranker_profile.py +80 -0
- antfly/client_generated/models/reranker_provider.py +11 -0
- antfly/client_generated/models/resource_type.py +10 -0
- antfly/client_generated/models/restore_table_response_202.py +61 -0
- antfly/client_generated/models/retrieval_agent_result.py +397 -0
- antfly/client_generated/models/retrieval_agent_steps.py +179 -0
- antfly/client_generated/models/retrieval_agent_usage.py +129 -0
- antfly/client_generated/models/retrieval_strategy.py +13 -0
- antfly/client_generated/models/retry_config.py +89 -0
- antfly/client_generated/models/role_assignment.py +61 -0
- antfly/client_generated/models/route_type.py +9 -0
- antfly/client_generated/models/row_filter_entry.py +77 -0
- antfly/client_generated/models/row_filter_entry_filter.py +52 -0
- antfly/client_generated/models/secret_entry.py +115 -0
- antfly/client_generated/models/secret_list.py +75 -0
- antfly/client_generated/models/secret_status.py +10 -0
- antfly/client_generated/models/secret_store_status.py +62 -0
- antfly/client_generated/models/secret_write_request.py +61 -0
- antfly/client_generated/models/semantic_query_mode.py +9 -0
- antfly/client_generated/models/serper_search_config.py +170 -0
- antfly/client_generated/models/serper_search_config_search_type.py +12 -0
- antfly/client_generated/models/serper_search_config_time_period.py +11 -0
- antfly/client_generated/models/set_row_filter_body.py +47 -0
- antfly/client_generated/models/set_subject_row_filter_body.py +47 -0
- antfly/client_generated/models/shard_config.py +61 -0
- antfly/client_generated/models/shards_profile.py +80 -0
- antfly/client_generated/models/significance_algorithm.py +11 -0
- antfly/client_generated/models/sort_field.py +73 -0
- antfly/client_generated/models/sse_error.py +62 -0
- antfly/client_generated/models/sse_event.py +19 -0
- antfly/client_generated/models/sse_step_completed.py +155 -0
- antfly/client_generated/models/sse_step_completed_details.py +47 -0
- antfly/client_generated/models/sse_step_progress.py +64 -0
- antfly/client_generated/models/sse_step_started.py +98 -0
- antfly/client_generated/models/sse_tool_mode.py +74 -0
- antfly/client_generated/models/sse_tool_mode_mode.py +9 -0
- antfly/client_generated/models/storage_status.py +93 -0
- antfly/client_generated/models/success_message.py +61 -0
- antfly/client_generated/models/sync_level.py +13 -0
- antfly/client_generated/models/table_backup_status.py +81 -0
- antfly/client_generated/models/table_backup_status_status.py +10 -0
- antfly/client_generated/models/table_migration.py +79 -0
- antfly/client_generated/models/table_migration_state.py +8 -0
- antfly/client_generated/models/table_restore_status.py +81 -0
- antfly/client_generated/models/table_restore_status_status.py +10 -0
- antfly/client_generated/models/table_schema.py +150 -0
- antfly/client_generated/models/table_schema_document_schemas.py +60 -0
- antfly/client_generated/models/table_statistics.py +111 -0
- antfly/client_generated/models/table_statistics_field_stats.py +60 -0
- antfly/client_generated/models/tavily_search_config.py +195 -0
- antfly/client_generated/models/tavily_search_config_search_depth.py +9 -0
- antfly/client_generated/models/template_field_mapping.py +116 -0
- antfly/client_generated/models/term_query.py +93 -0
- antfly/client_generated/models/term_range_query.py +163 -0
- antfly/client_generated/models/text_chunk_options.py +82 -0
- antfly/client_generated/models/text_content_part.py +72 -0
- antfly/client_generated/models/text_content_part_type.py +8 -0
- antfly/client_generated/models/tool_call.py +86 -0
- antfly/client_generated/models/tool_call_function.py +70 -0
- antfly/client_generated/models/tool_call_type.py +8 -0
- antfly/client_generated/models/transaction_begin_request.py +76 -0
- antfly/client_generated/models/transaction_begin_response.py +77 -0
- antfly/client_generated/models/transaction_commit_request.py +123 -0
- antfly/client_generated/models/transaction_commit_request_tables.py +60 -0
- antfly/client_generated/models/transaction_commit_response.py +107 -0
- antfly/client_generated/models/transaction_commit_response_conflict.py +80 -0
- antfly/client_generated/models/transaction_commit_response_status.py +9 -0
- antfly/client_generated/models/transaction_commit_response_tables.py +60 -0
- antfly/client_generated/models/transaction_read_item.py +80 -0
- antfly/client_generated/models/transaction_savepoint_response.py +77 -0
- antfly/client_generated/models/transaction_session_cleanup_response.py +70 -0
- antfly/client_generated/models/transaction_session_commit_response.py +114 -0
- antfly/client_generated/models/transaction_session_details_response.py +268 -0
- antfly/client_generated/models/transaction_session_list_response.py +106 -0
- antfly/client_generated/models/transaction_session_read_snapshot.py +88 -0
- antfly/client_generated/models/transaction_session_status.py +207 -0
- antfly/client_generated/models/transaction_session_table_detail.py +97 -0
- antfly/client_generated/models/transaction_stage_delete_request.py +69 -0
- antfly/client_generated/models/transaction_stage_read_request.py +77 -0
- antfly/client_generated/models/transaction_stage_read_response.py +83 -0
- antfly/client_generated/models/transaction_stage_read_snapshot.py +85 -0
- antfly/client_generated/models/transaction_stage_write_request.py +83 -0
- antfly/client_generated/models/transaction_stage_write_request_document.py +47 -0
- antfly/client_generated/models/transaction_status_response.py +69 -0
- antfly/client_generated/models/transform.py +104 -0
- antfly/client_generated/models/transform_op.py +82 -0
- antfly/client_generated/models/transform_op_type.py +19 -0
- antfly/client_generated/models/traversal_result.py +137 -0
- antfly/client_generated/models/traversal_result_document.py +47 -0
- antfly/client_generated/models/traversal_rules.py +138 -0
- antfly/client_generated/models/traverse_response.py +88 -0
- antfly/client_generated/models/tree_search_config.py +97 -0
- antfly/client_generated/models/update_password_request.py +61 -0
- antfly/client_generated/models/user.py +110 -0
- antfly/client_generated/models/user_metadata_type_0.py +52 -0
- antfly/client_generated/models/vertex_embedder_config.py +115 -0
- antfly/client_generated/models/vertex_generator_config.py +127 -0
- antfly/client_generated/models/vertex_reranker_config.py +108 -0
- antfly/client_generated/models/web_search_config.py +127 -0
- antfly/client_generated/models/web_search_provider.py +13 -0
- antfly/client_generated/models/wildcard_query.py +93 -0
- antfly/client_generated/py.typed +1 -0
- antfly/client_generated/types.py +54 -0
- antfly/exceptions.py +19 -0
- antfly/pyproject.toml +26 -0
- antfly_sdk-0.0.2.dev2.dist-info/METADATA +153 -0
- antfly_sdk-0.0.2.dev2.dist-info/RECORD +640 -0
- antfly_sdk-0.0.2.dev2.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any
|
|
3
|
+
from urllib.parse import quote
|
|
4
|
+
|
|
5
|
+
import httpx
|
|
6
|
+
|
|
7
|
+
from ... import errors
|
|
8
|
+
from ...client import AuthenticatedClient, Client
|
|
9
|
+
from ...models.error import Error
|
|
10
|
+
from ...models.transaction_status_response import TransactionStatusResponse
|
|
11
|
+
from ...types import Response
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _get_kwargs(
|
|
15
|
+
transaction_id: str,
|
|
16
|
+
) -> dict[str, Any]:
|
|
17
|
+
|
|
18
|
+
_kwargs: dict[str, Any] = {
|
|
19
|
+
"method": "post",
|
|
20
|
+
"url": "/db/v1/transactions/{transaction_id}/abort".format(
|
|
21
|
+
transaction_id=quote(str(transaction_id), safe=""),
|
|
22
|
+
),
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return _kwargs
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _parse_response(
|
|
29
|
+
*, client: AuthenticatedClient | Client, response: httpx.Response
|
|
30
|
+
) -> Error | TransactionStatusResponse | None:
|
|
31
|
+
if response.status_code == 200:
|
|
32
|
+
response_200 = TransactionStatusResponse.from_dict(response.json())
|
|
33
|
+
|
|
34
|
+
return response_200
|
|
35
|
+
|
|
36
|
+
if response.status_code == 400:
|
|
37
|
+
response_400 = Error.from_dict(response.json())
|
|
38
|
+
|
|
39
|
+
return response_400
|
|
40
|
+
|
|
41
|
+
if response.status_code == 404:
|
|
42
|
+
response_404 = Error.from_dict(response.json())
|
|
43
|
+
|
|
44
|
+
return response_404
|
|
45
|
+
|
|
46
|
+
if response.status_code == 409:
|
|
47
|
+
response_409 = Error.from_dict(response.json())
|
|
48
|
+
|
|
49
|
+
return response_409
|
|
50
|
+
|
|
51
|
+
if response.status_code == 500:
|
|
52
|
+
response_500 = Error.from_dict(response.json())
|
|
53
|
+
|
|
54
|
+
return response_500
|
|
55
|
+
|
|
56
|
+
if client.raise_on_unexpected_status:
|
|
57
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
58
|
+
else:
|
|
59
|
+
return None
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _build_response(
|
|
63
|
+
*, client: AuthenticatedClient | Client, response: httpx.Response
|
|
64
|
+
) -> Response[Error | TransactionStatusResponse]:
|
|
65
|
+
return Response(
|
|
66
|
+
status_code=HTTPStatus(response.status_code),
|
|
67
|
+
content=response.content,
|
|
68
|
+
headers=response.headers,
|
|
69
|
+
parsed=_parse_response(client=client, response=response),
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def sync_detailed(
|
|
74
|
+
transaction_id: str,
|
|
75
|
+
*,
|
|
76
|
+
client: AuthenticatedClient,
|
|
77
|
+
) -> Response[Error | TransactionStatusResponse]:
|
|
78
|
+
"""Abort a transaction session
|
|
79
|
+
|
|
80
|
+
Args:
|
|
81
|
+
transaction_id (str):
|
|
82
|
+
|
|
83
|
+
Raises:
|
|
84
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
85
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
86
|
+
|
|
87
|
+
Returns:
|
|
88
|
+
Response[Error | TransactionStatusResponse]
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
kwargs = _get_kwargs(
|
|
92
|
+
transaction_id=transaction_id,
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
response = client.get_httpx_client().request(
|
|
96
|
+
**kwargs,
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
return _build_response(client=client, response=response)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def sync(
|
|
103
|
+
transaction_id: str,
|
|
104
|
+
*,
|
|
105
|
+
client: AuthenticatedClient,
|
|
106
|
+
) -> Error | TransactionStatusResponse | None:
|
|
107
|
+
"""Abort a transaction session
|
|
108
|
+
|
|
109
|
+
Args:
|
|
110
|
+
transaction_id (str):
|
|
111
|
+
|
|
112
|
+
Raises:
|
|
113
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
114
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
115
|
+
|
|
116
|
+
Returns:
|
|
117
|
+
Error | TransactionStatusResponse
|
|
118
|
+
"""
|
|
119
|
+
|
|
120
|
+
return sync_detailed(
|
|
121
|
+
transaction_id=transaction_id,
|
|
122
|
+
client=client,
|
|
123
|
+
).parsed
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
async def asyncio_detailed(
|
|
127
|
+
transaction_id: str,
|
|
128
|
+
*,
|
|
129
|
+
client: AuthenticatedClient,
|
|
130
|
+
) -> Response[Error | TransactionStatusResponse]:
|
|
131
|
+
"""Abort a transaction session
|
|
132
|
+
|
|
133
|
+
Args:
|
|
134
|
+
transaction_id (str):
|
|
135
|
+
|
|
136
|
+
Raises:
|
|
137
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
138
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
139
|
+
|
|
140
|
+
Returns:
|
|
141
|
+
Response[Error | TransactionStatusResponse]
|
|
142
|
+
"""
|
|
143
|
+
|
|
144
|
+
kwargs = _get_kwargs(
|
|
145
|
+
transaction_id=transaction_id,
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
149
|
+
|
|
150
|
+
return _build_response(client=client, response=response)
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
async def asyncio(
|
|
154
|
+
transaction_id: str,
|
|
155
|
+
*,
|
|
156
|
+
client: AuthenticatedClient,
|
|
157
|
+
) -> Error | TransactionStatusResponse | None:
|
|
158
|
+
"""Abort a transaction session
|
|
159
|
+
|
|
160
|
+
Args:
|
|
161
|
+
transaction_id (str):
|
|
162
|
+
|
|
163
|
+
Raises:
|
|
164
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
165
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
166
|
+
|
|
167
|
+
Returns:
|
|
168
|
+
Error | TransactionStatusResponse
|
|
169
|
+
"""
|
|
170
|
+
|
|
171
|
+
return (
|
|
172
|
+
await asyncio_detailed(
|
|
173
|
+
transaction_id=transaction_id,
|
|
174
|
+
client=client,
|
|
175
|
+
)
|
|
176
|
+
).parsed
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any
|
|
3
|
+
from urllib.parse import quote
|
|
4
|
+
|
|
5
|
+
import httpx
|
|
6
|
+
|
|
7
|
+
from ... import errors
|
|
8
|
+
from ...client import AuthenticatedClient, Client
|
|
9
|
+
from ...models.backup_request import BackupRequest
|
|
10
|
+
from ...models.backup_table_response_201 import BackupTableResponse201
|
|
11
|
+
from ...models.error import Error
|
|
12
|
+
from ...types import Response
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _get_kwargs(
|
|
16
|
+
table_name: str,
|
|
17
|
+
*,
|
|
18
|
+
body: BackupRequest,
|
|
19
|
+
) -> dict[str, Any]:
|
|
20
|
+
headers: dict[str, Any] = {}
|
|
21
|
+
|
|
22
|
+
_kwargs: dict[str, Any] = {
|
|
23
|
+
"method": "post",
|
|
24
|
+
"url": "/db/v1/tables/{table_name}/backup".format(
|
|
25
|
+
table_name=quote(str(table_name), safe=""),
|
|
26
|
+
),
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
_kwargs["json"] = body.to_dict()
|
|
30
|
+
|
|
31
|
+
headers["Content-Type"] = "application/json"
|
|
32
|
+
|
|
33
|
+
_kwargs["headers"] = headers
|
|
34
|
+
return _kwargs
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _parse_response(
|
|
38
|
+
*, client: AuthenticatedClient | Client, response: httpx.Response
|
|
39
|
+
) -> BackupTableResponse201 | Error | None:
|
|
40
|
+
if response.status_code == 201:
|
|
41
|
+
response_201 = BackupTableResponse201.from_dict(response.json())
|
|
42
|
+
|
|
43
|
+
return response_201
|
|
44
|
+
|
|
45
|
+
if response.status_code == 400:
|
|
46
|
+
response_400 = Error.from_dict(response.json())
|
|
47
|
+
|
|
48
|
+
return response_400
|
|
49
|
+
|
|
50
|
+
if response.status_code == 404:
|
|
51
|
+
response_404 = Error.from_dict(response.json())
|
|
52
|
+
|
|
53
|
+
return response_404
|
|
54
|
+
|
|
55
|
+
if response.status_code == 500:
|
|
56
|
+
response_500 = Error.from_dict(response.json())
|
|
57
|
+
|
|
58
|
+
return response_500
|
|
59
|
+
|
|
60
|
+
if client.raise_on_unexpected_status:
|
|
61
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
62
|
+
else:
|
|
63
|
+
return None
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def _build_response(
|
|
67
|
+
*, client: AuthenticatedClient | Client, response: httpx.Response
|
|
68
|
+
) -> Response[BackupTableResponse201 | Error]:
|
|
69
|
+
return Response(
|
|
70
|
+
status_code=HTTPStatus(response.status_code),
|
|
71
|
+
content=response.content,
|
|
72
|
+
headers=response.headers,
|
|
73
|
+
parsed=_parse_response(client=client, response=response),
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def sync_detailed(
|
|
78
|
+
table_name: str,
|
|
79
|
+
*,
|
|
80
|
+
client: AuthenticatedClient,
|
|
81
|
+
body: BackupRequest,
|
|
82
|
+
) -> Response[BackupTableResponse201 | Error]:
|
|
83
|
+
"""Backup a table
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
table_name (str):
|
|
87
|
+
body (BackupRequest):
|
|
88
|
+
|
|
89
|
+
Raises:
|
|
90
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
91
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
Response[BackupTableResponse201 | Error]
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
kwargs = _get_kwargs(
|
|
98
|
+
table_name=table_name,
|
|
99
|
+
body=body,
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
response = client.get_httpx_client().request(
|
|
103
|
+
**kwargs,
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
return _build_response(client=client, response=response)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def sync(
|
|
110
|
+
table_name: str,
|
|
111
|
+
*,
|
|
112
|
+
client: AuthenticatedClient,
|
|
113
|
+
body: BackupRequest,
|
|
114
|
+
) -> BackupTableResponse201 | Error | None:
|
|
115
|
+
"""Backup a table
|
|
116
|
+
|
|
117
|
+
Args:
|
|
118
|
+
table_name (str):
|
|
119
|
+
body (BackupRequest):
|
|
120
|
+
|
|
121
|
+
Raises:
|
|
122
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
123
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
124
|
+
|
|
125
|
+
Returns:
|
|
126
|
+
BackupTableResponse201 | Error
|
|
127
|
+
"""
|
|
128
|
+
|
|
129
|
+
return sync_detailed(
|
|
130
|
+
table_name=table_name,
|
|
131
|
+
client=client,
|
|
132
|
+
body=body,
|
|
133
|
+
).parsed
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
async def asyncio_detailed(
|
|
137
|
+
table_name: str,
|
|
138
|
+
*,
|
|
139
|
+
client: AuthenticatedClient,
|
|
140
|
+
body: BackupRequest,
|
|
141
|
+
) -> Response[BackupTableResponse201 | Error]:
|
|
142
|
+
"""Backup a table
|
|
143
|
+
|
|
144
|
+
Args:
|
|
145
|
+
table_name (str):
|
|
146
|
+
body (BackupRequest):
|
|
147
|
+
|
|
148
|
+
Raises:
|
|
149
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
150
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
151
|
+
|
|
152
|
+
Returns:
|
|
153
|
+
Response[BackupTableResponse201 | Error]
|
|
154
|
+
"""
|
|
155
|
+
|
|
156
|
+
kwargs = _get_kwargs(
|
|
157
|
+
table_name=table_name,
|
|
158
|
+
body=body,
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
162
|
+
|
|
163
|
+
return _build_response(client=client, response=response)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
async def asyncio(
|
|
167
|
+
table_name: str,
|
|
168
|
+
*,
|
|
169
|
+
client: AuthenticatedClient,
|
|
170
|
+
body: BackupRequest,
|
|
171
|
+
) -> BackupTableResponse201 | Error | None:
|
|
172
|
+
"""Backup a table
|
|
173
|
+
|
|
174
|
+
Args:
|
|
175
|
+
table_name (str):
|
|
176
|
+
body (BackupRequest):
|
|
177
|
+
|
|
178
|
+
Raises:
|
|
179
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
180
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
181
|
+
|
|
182
|
+
Returns:
|
|
183
|
+
BackupTableResponse201 | Error
|
|
184
|
+
"""
|
|
185
|
+
|
|
186
|
+
return (
|
|
187
|
+
await asyncio_detailed(
|
|
188
|
+
table_name=table_name,
|
|
189
|
+
client=client,
|
|
190
|
+
body=body,
|
|
191
|
+
)
|
|
192
|
+
).parsed
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any
|
|
3
|
+
from urllib.parse import quote
|
|
4
|
+
|
|
5
|
+
import httpx
|
|
6
|
+
|
|
7
|
+
from ... import errors
|
|
8
|
+
from ...client import AuthenticatedClient, Client
|
|
9
|
+
from ...models.batch_request import BatchRequest
|
|
10
|
+
from ...models.batch_response import BatchResponse
|
|
11
|
+
from ...models.error import Error
|
|
12
|
+
from ...types import Response
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _get_kwargs(
|
|
16
|
+
table_name: str,
|
|
17
|
+
*,
|
|
18
|
+
body: BatchRequest,
|
|
19
|
+
) -> dict[str, Any]:
|
|
20
|
+
headers: dict[str, Any] = {}
|
|
21
|
+
|
|
22
|
+
_kwargs: dict[str, Any] = {
|
|
23
|
+
"method": "post",
|
|
24
|
+
"url": "/db/v1/tables/{table_name}/batch".format(
|
|
25
|
+
table_name=quote(str(table_name), safe=""),
|
|
26
|
+
),
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
_kwargs["json"] = body.to_dict()
|
|
30
|
+
|
|
31
|
+
headers["Content-Type"] = "application/json"
|
|
32
|
+
|
|
33
|
+
_kwargs["headers"] = headers
|
|
34
|
+
return _kwargs
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> BatchResponse | Error | None:
|
|
38
|
+
if response.status_code == 201:
|
|
39
|
+
response_201 = BatchResponse.from_dict(response.json())
|
|
40
|
+
|
|
41
|
+
return response_201
|
|
42
|
+
|
|
43
|
+
if response.status_code == 400:
|
|
44
|
+
response_400 = Error.from_dict(response.json())
|
|
45
|
+
|
|
46
|
+
return response_400
|
|
47
|
+
|
|
48
|
+
if response.status_code == 404:
|
|
49
|
+
response_404 = Error.from_dict(response.json())
|
|
50
|
+
|
|
51
|
+
return response_404
|
|
52
|
+
|
|
53
|
+
if response.status_code == 500:
|
|
54
|
+
response_500 = Error.from_dict(response.json())
|
|
55
|
+
|
|
56
|
+
return response_500
|
|
57
|
+
|
|
58
|
+
if client.raise_on_unexpected_status:
|
|
59
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
60
|
+
else:
|
|
61
|
+
return None
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def _build_response(
|
|
65
|
+
*, client: AuthenticatedClient | Client, response: httpx.Response
|
|
66
|
+
) -> Response[BatchResponse | Error]:
|
|
67
|
+
return Response(
|
|
68
|
+
status_code=HTTPStatus(response.status_code),
|
|
69
|
+
content=response.content,
|
|
70
|
+
headers=response.headers,
|
|
71
|
+
parsed=_parse_response(client=client, response=response),
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def sync_detailed(
|
|
76
|
+
table_name: str,
|
|
77
|
+
*,
|
|
78
|
+
client: AuthenticatedClient,
|
|
79
|
+
body: BatchRequest,
|
|
80
|
+
) -> Response[BatchResponse | Error]:
|
|
81
|
+
"""Perform batch inserts and deletes on a table
|
|
82
|
+
|
|
83
|
+
Args:
|
|
84
|
+
table_name (str):
|
|
85
|
+
body (BatchRequest): Batch insert, delete, and transform operations in a single request.
|
|
86
|
+
|
|
87
|
+
**Atomicity**:
|
|
88
|
+
- **Single shard**: Operations are atomic within shard boundaries
|
|
89
|
+
- **Multiple shards**: Uses distributed 2-phase commit (2PC) for atomic cross-shard writes
|
|
90
|
+
|
|
91
|
+
**How distributed transactions work**:
|
|
92
|
+
1. Metadata server allocates HLC timestamp and selects coordinator shard
|
|
93
|
+
2. Coordinator writes transaction record, participants write intents
|
|
94
|
+
3. After all intents succeed, coordinator commits transaction
|
|
95
|
+
4. Participants are notified asynchronously to resolve intents
|
|
96
|
+
5. Recovery loop ensures notifications complete even after coordinator failure
|
|
97
|
+
|
|
98
|
+
**Performance**:
|
|
99
|
+
- Single-shard batches: < 5ms latency
|
|
100
|
+
- Cross-shard transactions: ~20ms latency
|
|
101
|
+
- Intent resolution: < 30 seconds worst-case (via recovery loop)
|
|
102
|
+
|
|
103
|
+
**Guarantees**:
|
|
104
|
+
- All writes succeed or all fail (atomicity across all shards)
|
|
105
|
+
- Coordinator failure is recoverable (new leader resumes notifications)
|
|
106
|
+
- Idempotent resolution (duplicate notifications are safe)
|
|
107
|
+
|
|
108
|
+
**Benefits**:
|
|
109
|
+
- Reduces network overhead compared to individual requests
|
|
110
|
+
- More efficient indexing (updates are batched)
|
|
111
|
+
- Automatic distributed transactions when operations span shards
|
|
112
|
+
|
|
113
|
+
The inserts are upserts - existing keys are overwritten, new keys are created.
|
|
114
|
+
Example: {'inserts': {'user:123': {'name': 'John Doe', 'email': 'john@example.com',
|
|
115
|
+
'age': 30, 'tags': ['customer', 'premium']}, 'user:456': {'name': 'Jane Smith', 'email':
|
|
116
|
+
'jane@example.com', 'age': 25, 'tags': ['customer']}}, 'deletes': ['user:789',
|
|
117
|
+
'user:old_account']}.
|
|
118
|
+
|
|
119
|
+
Raises:
|
|
120
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
121
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
122
|
+
|
|
123
|
+
Returns:
|
|
124
|
+
Response[BatchResponse | Error]
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
kwargs = _get_kwargs(
|
|
128
|
+
table_name=table_name,
|
|
129
|
+
body=body,
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
response = client.get_httpx_client().request(
|
|
133
|
+
**kwargs,
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
return _build_response(client=client, response=response)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def sync(
|
|
140
|
+
table_name: str,
|
|
141
|
+
*,
|
|
142
|
+
client: AuthenticatedClient,
|
|
143
|
+
body: BatchRequest,
|
|
144
|
+
) -> BatchResponse | Error | None:
|
|
145
|
+
"""Perform batch inserts and deletes on a table
|
|
146
|
+
|
|
147
|
+
Args:
|
|
148
|
+
table_name (str):
|
|
149
|
+
body (BatchRequest): Batch insert, delete, and transform operations in a single request.
|
|
150
|
+
|
|
151
|
+
**Atomicity**:
|
|
152
|
+
- **Single shard**: Operations are atomic within shard boundaries
|
|
153
|
+
- **Multiple shards**: Uses distributed 2-phase commit (2PC) for atomic cross-shard writes
|
|
154
|
+
|
|
155
|
+
**How distributed transactions work**:
|
|
156
|
+
1. Metadata server allocates HLC timestamp and selects coordinator shard
|
|
157
|
+
2. Coordinator writes transaction record, participants write intents
|
|
158
|
+
3. After all intents succeed, coordinator commits transaction
|
|
159
|
+
4. Participants are notified asynchronously to resolve intents
|
|
160
|
+
5. Recovery loop ensures notifications complete even after coordinator failure
|
|
161
|
+
|
|
162
|
+
**Performance**:
|
|
163
|
+
- Single-shard batches: < 5ms latency
|
|
164
|
+
- Cross-shard transactions: ~20ms latency
|
|
165
|
+
- Intent resolution: < 30 seconds worst-case (via recovery loop)
|
|
166
|
+
|
|
167
|
+
**Guarantees**:
|
|
168
|
+
- All writes succeed or all fail (atomicity across all shards)
|
|
169
|
+
- Coordinator failure is recoverable (new leader resumes notifications)
|
|
170
|
+
- Idempotent resolution (duplicate notifications are safe)
|
|
171
|
+
|
|
172
|
+
**Benefits**:
|
|
173
|
+
- Reduces network overhead compared to individual requests
|
|
174
|
+
- More efficient indexing (updates are batched)
|
|
175
|
+
- Automatic distributed transactions when operations span shards
|
|
176
|
+
|
|
177
|
+
The inserts are upserts - existing keys are overwritten, new keys are created.
|
|
178
|
+
Example: {'inserts': {'user:123': {'name': 'John Doe', 'email': 'john@example.com',
|
|
179
|
+
'age': 30, 'tags': ['customer', 'premium']}, 'user:456': {'name': 'Jane Smith', 'email':
|
|
180
|
+
'jane@example.com', 'age': 25, 'tags': ['customer']}}, 'deletes': ['user:789',
|
|
181
|
+
'user:old_account']}.
|
|
182
|
+
|
|
183
|
+
Raises:
|
|
184
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
185
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
186
|
+
|
|
187
|
+
Returns:
|
|
188
|
+
BatchResponse | Error
|
|
189
|
+
"""
|
|
190
|
+
|
|
191
|
+
return sync_detailed(
|
|
192
|
+
table_name=table_name,
|
|
193
|
+
client=client,
|
|
194
|
+
body=body,
|
|
195
|
+
).parsed
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
async def asyncio_detailed(
|
|
199
|
+
table_name: str,
|
|
200
|
+
*,
|
|
201
|
+
client: AuthenticatedClient,
|
|
202
|
+
body: BatchRequest,
|
|
203
|
+
) -> Response[BatchResponse | Error]:
|
|
204
|
+
"""Perform batch inserts and deletes on a table
|
|
205
|
+
|
|
206
|
+
Args:
|
|
207
|
+
table_name (str):
|
|
208
|
+
body (BatchRequest): Batch insert, delete, and transform operations in a single request.
|
|
209
|
+
|
|
210
|
+
**Atomicity**:
|
|
211
|
+
- **Single shard**: Operations are atomic within shard boundaries
|
|
212
|
+
- **Multiple shards**: Uses distributed 2-phase commit (2PC) for atomic cross-shard writes
|
|
213
|
+
|
|
214
|
+
**How distributed transactions work**:
|
|
215
|
+
1. Metadata server allocates HLC timestamp and selects coordinator shard
|
|
216
|
+
2. Coordinator writes transaction record, participants write intents
|
|
217
|
+
3. After all intents succeed, coordinator commits transaction
|
|
218
|
+
4. Participants are notified asynchronously to resolve intents
|
|
219
|
+
5. Recovery loop ensures notifications complete even after coordinator failure
|
|
220
|
+
|
|
221
|
+
**Performance**:
|
|
222
|
+
- Single-shard batches: < 5ms latency
|
|
223
|
+
- Cross-shard transactions: ~20ms latency
|
|
224
|
+
- Intent resolution: < 30 seconds worst-case (via recovery loop)
|
|
225
|
+
|
|
226
|
+
**Guarantees**:
|
|
227
|
+
- All writes succeed or all fail (atomicity across all shards)
|
|
228
|
+
- Coordinator failure is recoverable (new leader resumes notifications)
|
|
229
|
+
- Idempotent resolution (duplicate notifications are safe)
|
|
230
|
+
|
|
231
|
+
**Benefits**:
|
|
232
|
+
- Reduces network overhead compared to individual requests
|
|
233
|
+
- More efficient indexing (updates are batched)
|
|
234
|
+
- Automatic distributed transactions when operations span shards
|
|
235
|
+
|
|
236
|
+
The inserts are upserts - existing keys are overwritten, new keys are created.
|
|
237
|
+
Example: {'inserts': {'user:123': {'name': 'John Doe', 'email': 'john@example.com',
|
|
238
|
+
'age': 30, 'tags': ['customer', 'premium']}, 'user:456': {'name': 'Jane Smith', 'email':
|
|
239
|
+
'jane@example.com', 'age': 25, 'tags': ['customer']}}, 'deletes': ['user:789',
|
|
240
|
+
'user:old_account']}.
|
|
241
|
+
|
|
242
|
+
Raises:
|
|
243
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
244
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
245
|
+
|
|
246
|
+
Returns:
|
|
247
|
+
Response[BatchResponse | Error]
|
|
248
|
+
"""
|
|
249
|
+
|
|
250
|
+
kwargs = _get_kwargs(
|
|
251
|
+
table_name=table_name,
|
|
252
|
+
body=body,
|
|
253
|
+
)
|
|
254
|
+
|
|
255
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
256
|
+
|
|
257
|
+
return _build_response(client=client, response=response)
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
async def asyncio(
|
|
261
|
+
table_name: str,
|
|
262
|
+
*,
|
|
263
|
+
client: AuthenticatedClient,
|
|
264
|
+
body: BatchRequest,
|
|
265
|
+
) -> BatchResponse | Error | None:
|
|
266
|
+
"""Perform batch inserts and deletes on a table
|
|
267
|
+
|
|
268
|
+
Args:
|
|
269
|
+
table_name (str):
|
|
270
|
+
body (BatchRequest): Batch insert, delete, and transform operations in a single request.
|
|
271
|
+
|
|
272
|
+
**Atomicity**:
|
|
273
|
+
- **Single shard**: Operations are atomic within shard boundaries
|
|
274
|
+
- **Multiple shards**: Uses distributed 2-phase commit (2PC) for atomic cross-shard writes
|
|
275
|
+
|
|
276
|
+
**How distributed transactions work**:
|
|
277
|
+
1. Metadata server allocates HLC timestamp and selects coordinator shard
|
|
278
|
+
2. Coordinator writes transaction record, participants write intents
|
|
279
|
+
3. After all intents succeed, coordinator commits transaction
|
|
280
|
+
4. Participants are notified asynchronously to resolve intents
|
|
281
|
+
5. Recovery loop ensures notifications complete even after coordinator failure
|
|
282
|
+
|
|
283
|
+
**Performance**:
|
|
284
|
+
- Single-shard batches: < 5ms latency
|
|
285
|
+
- Cross-shard transactions: ~20ms latency
|
|
286
|
+
- Intent resolution: < 30 seconds worst-case (via recovery loop)
|
|
287
|
+
|
|
288
|
+
**Guarantees**:
|
|
289
|
+
- All writes succeed or all fail (atomicity across all shards)
|
|
290
|
+
- Coordinator failure is recoverable (new leader resumes notifications)
|
|
291
|
+
- Idempotent resolution (duplicate notifications are safe)
|
|
292
|
+
|
|
293
|
+
**Benefits**:
|
|
294
|
+
- Reduces network overhead compared to individual requests
|
|
295
|
+
- More efficient indexing (updates are batched)
|
|
296
|
+
- Automatic distributed transactions when operations span shards
|
|
297
|
+
|
|
298
|
+
The inserts are upserts - existing keys are overwritten, new keys are created.
|
|
299
|
+
Example: {'inserts': {'user:123': {'name': 'John Doe', 'email': 'john@example.com',
|
|
300
|
+
'age': 30, 'tags': ['customer', 'premium']}, 'user:456': {'name': 'Jane Smith', 'email':
|
|
301
|
+
'jane@example.com', 'age': 25, 'tags': ['customer']}}, 'deletes': ['user:789',
|
|
302
|
+
'user:old_account']}.
|
|
303
|
+
|
|
304
|
+
Raises:
|
|
305
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
306
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
307
|
+
|
|
308
|
+
Returns:
|
|
309
|
+
BatchResponse | Error
|
|
310
|
+
"""
|
|
311
|
+
|
|
312
|
+
return (
|
|
313
|
+
await asyncio_detailed(
|
|
314
|
+
table_name=table_name,
|
|
315
|
+
client=client,
|
|
316
|
+
body=body,
|
|
317
|
+
)
|
|
318
|
+
).parsed
|