snowflake-connector-python 5.0.0b2__tar.gz → 5.0.0b4__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.
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/Cargo.lock +25 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/PKG-INFO +4 -6
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/README.md +2 -4
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/python_generator.rs +97 -2
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/rust_generator.rs +1 -1
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/protoc_installer.rs +76 -8
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/protobuf/database_driver_v1.proto +85 -3
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/pyproject.toml +7 -2
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/Cargo.toml +24 -4
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/exports.def +2 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/connection.rs +716 -119
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/error.rs +7 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/apis/database_driver_v1/get_objects.rs +1226 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/global_state.rs +53 -1
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/heartbeat.rs +12 -8
- snowflake_connector_python-5.0.0b4/sf_core/src/apis/database_driver_v1/like_pattern.rs +246 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/mod.rs +9 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/query.rs +279 -56
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/result_set.rs +245 -37
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/statement.rs +416 -111
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/validation.rs +128 -23
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/arrow_utils.rs +6 -1
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/auth.rs +16 -1
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/collect_chunk_data.rs +4 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/bin/spcs_probe.rs +144 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/error.rs +6 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/json_parser.rs +94 -11
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/mod.rs +5 -1
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/prefetch.rs +24 -12
- snowflake_connector_python-5.0.0b4/sf_core/src/compression.rs +177 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/compression_types.rs +559 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/config_manager.rs +331 -124
- snowflake_connector_python-5.0.0b4/sf_core/src/config/configured_redirect_uri.rs +121 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/connection_config.rs +394 -18
- snowflake_connector_python-5.0.0b4/sf_core/src/config/ini_loader.rs +206 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/config/logging_config_loader.rs +344 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/mod.rs +16 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/param_registry.rs +476 -9
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/resolver.rs +241 -11
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/rest_parameters.rs +383 -51
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/cache.rs +99 -61
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/error.rs +6 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/integration_test.rs +1 -1
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/validator.rs +2 -2
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/worker.rs +2 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/diagnostic/mod.rs +798 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/azure_transfer.rs +1829 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/cloud_http.rs +366 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/encryption.rs +558 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/gcs_transfer.rs +2515 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/mod.rs +2202 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/multipart.rs +366 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/s3_transfer.rs +1609 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/types.rs +692 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/lib.rs +3 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/logging/error.rs +12 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/log_manager.rs +188 -52
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/mod.rs +1 -2
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/apis/database_driver_v1/converter.rs +80 -55
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/apis/database_driver_v1/mod.rs +155 -29
- snowflake_connector_python-5.0.0b4/sf_core/src/protobuf/c_api.rs +254 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/query_types.rs +3 -1
- snowflake_connector_python-5.0.0b4/sf_core/src/refresh.rs +212 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/async_exec.rs +1 -1
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/auth.rs +22 -7
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/external_browser.rs +2 -2
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/heartbeat.rs +17 -4
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/mod.rs +512 -203
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/authorization_code.rs +173 -35
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/client_credentials.rs +60 -6
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/loopback_server.rs +249 -116
- snowflake_connector_python-5.0.0b4/sf_core/src/rest/snowflake/prompt_lock.rs +189 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/query_response.rs +734 -26
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/sql_state.rs +7 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/stage_binding.rs +276 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/telemetry/mod.rs +111 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/serialization.rs +86 -15
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/snowflake_exporter.rs +12 -15
- snowflake_connector_python-5.0.0b4/sf_core/src/telemetry/snowflake_processor.rs +399 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/tls/client.rs +372 -0
- snowflake_connector_python-5.0.0b4/sf_core/src/tls/config.rs +223 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/error.rs +8 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/mod.rs +2 -2
- snowflake_connector_python-5.0.0b4/sf_core/tests/common/cloud_gating.rs +295 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/config.rs +2 -0
- snowflake_connector_python-5.0.0b4/sf_core/tests/common/mocks/external_browser.rs +302 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/mfa.rs +24 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/mod.rs +1 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/password.rs +7 -4
- snowflake_connector_python-5.0.0b4/sf_core/tests/common/mocks/put_get.rs +218 -0
- snowflake_connector_python-5.0.0b4/sf_core/tests/common/mocks/query.rs +98 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mod.rs +1 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/snowflake_test_client.rs +67 -1
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/bridge.py +107 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/__init__.py +39 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_async.py +47 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_common.py +62 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_init.py +65 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_performance.py +50 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_sync.py +44 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/api_client/client_api.py +288 -33
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_context.py +3 -2
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/arrow_stream_async.py +156 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_stream_utils.py +4 -3
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/binding_converters.py +198 -62
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/__init__.py +30 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/connection.py +328 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/connection_types.py +13 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/constants.py +25 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/decorators.py +70 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/freezable_proxy.py +39 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/queries.py +9 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection_config_mixin.py +68 -12
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/__init__.py +25 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/base.py +481 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/cursor_types.py +13 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/decorators.py +113 -0
- snowflake_connector_python-5.0.0b2/src/snowflake/connector/cursor/_query_result.py → snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/query_result.py +23 -18
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/query_result_waiter.py +98 -0
- snowflake_connector_python-5.0.0b2/src/snowflake/connector/cursor/_result_metadata.py → snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/result_metadata.py +2 -2
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/result_set_wrapper.py +59 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/decorators.py +339 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/errorhandler.py +6 -4
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/logging.py +26 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp +226 -103
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +344 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.pyi +221 -15
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_services.py +762 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/result_batch.py +148 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/snowflake_restful.py +12 -4
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/statement_utils.py +13 -3
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/telemetry.py +95 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/write_pandas_operation.py +5 -1
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/README.md +159 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/__init__.py +35 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/connection/__init__.py +17 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/connection/_connection.py +408 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/connection/_freezable_proxy.py +85 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/__init__.py +35 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/_base.py +883 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/_dict_cursor.py +58 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/_result_set_wrapper.py +59 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/_snowflake_cursor.py +52 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/result_batch.py +158 -0
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/connection/__init__.py +30 -0
- snowflake_connector_python-5.0.0b2/src/snowflake/connector/connection.py → snowflake_connector_python-5.0.0b4/src/snowflake/connector/connection/_connection.py +103 -382
- snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/freezable_proxy.py → snowflake_connector_python-5.0.0b4/src/snowflake/connector/connection/_freezable_proxy.py +21 -26
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/connection_config.py +87 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/constants.py +7 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/__init__.py +2 -6
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_base.py +226 -495
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_dict_cursor.py +2 -1
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_result_set_wrapper.py +6 -32
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_snowflake_cursor.py +2 -1
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/errors.py +24 -5
- snowflake_connector_python-5.0.0b4/src/snowflake/connector/py.typed +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/result_batch.py +16 -149
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/version.py +1 -1
- snowflake_connector_python-5.0.0b2/sf_core/src/compression.rs +0 -79
- snowflake_connector_python-5.0.0b2/sf_core/src/compression_types.rs +0 -123
- snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/azure_transfer.rs +0 -838
- snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/encryption.rs +0 -193
- snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/gcs_transfer.rs +0 -1059
- snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/mod.rs +0 -672
- snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/s3_transfer.rs +0 -933
- snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/types.rs +0 -383
- snowflake_connector_python-5.0.0b2/sf_core/src/logging/error.rs +0 -34
- snowflake_connector_python-5.0.0b2/sf_core/src/logging/ini_config.rs +0 -702
- snowflake_connector_python-5.0.0b2/sf_core/src/protobuf/c_api.rs +0 -111
- snowflake_connector_python-5.0.0b2/sf_core/src/telemetry/mod.rs +0 -63
- snowflake_connector_python-5.0.0b2/sf_core/src/tls/client.rs +0 -147
- snowflake_connector_python-5.0.0b2/sf_core/src/tls/config.rs +0 -55
- snowflake_connector_python-5.0.0b2/sf_core/tests/common/mocks/external_browser.rs +0 -109
- snowflake_connector_python-5.0.0b2/sf_core/tests/common/mocks/put_get.rs +0 -52
- snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/api_client/c_api.py +0 -187
- snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/decorators.py +0 -137
- snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +0 -336
- snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/telemetry.py +0 -53
- snowflake_connector_python-5.0.0b2/src/snowflake/connector/cursor/_query_result_waiter.py +0 -47
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/.gitignore +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/build_common.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/error_trace/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/error_trace/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/error_trace_derive/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/error_trace_derive/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/hatch_build.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/Cargo.lock +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/README.md +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generator.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/helpers.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/java_generator.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/json_generator.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/main.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/protobuf.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_utils/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_utils/src/lib.rs +0 -0
- /snowflake_connector_python-5.0.0b2/src/snowflake/connector/_common/__init__.py → /snowflake_connector_python-5.0.0b4/sf_core/CHANGELOG.md +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/README.md +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/benches/prefetch_bench.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/build.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/alter_session_parser.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/async_query_registry.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/database.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/logout.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/multistatement.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/spcs_token.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/README.md +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/param_defs_export.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/tls_client.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/arrow_parser.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/http_downloader.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/memory_budget.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/mock.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/logout.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/param_store.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/path_resolver.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/retry.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/settings.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/toml_loader.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/certificate_parser.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/config.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/disk_tests.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/file_manager/path_expansion.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/fs_adapter.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/handle_manager.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/http/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/http/retry.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/callback_layer.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/opentelemetry.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/perf_timing/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/perf_timing/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/apis/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/config_setting_ext.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/generated.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/error.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/logout.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/native_okta.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/dpop.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/error.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/http_client.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/pkce.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/token.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/query_request.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/telemetry.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/sensitive.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/environment.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/os_details.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/aws.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/azure.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/gcp.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/tests.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/types.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/crl_verifier.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/revocation.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/test_helpers.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/x509_utils.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/token_cache/file_cache.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/token_cache/keyring_cache.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/token_cache/mod.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_deserialize.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_deserialize_macro/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_deserialize_macro/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_extract_value.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_result_helper.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/file_utils.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/auth.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/oauth.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/okta.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/session.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/private_key_helper.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/put_get_common.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/test_server.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/test_utils.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/tls_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/protobuf_gen → snowflake_connector_python-5.0.0b4/src/snowflake/connector/_common}/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/_private_key_helper.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/api_client/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_stream_iterator.pyi +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/backward_compatibility.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/config_utils.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/errorcode.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/extras.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/logout_config_mapping.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.pyx +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.cpp +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.hpp +0 -0
- {snowflake_connector_python-5.0.0b2/src/snowflake/connector/auth → snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/protobuf_gen}/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/proto_exception.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/snow_logging.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/sqlstate.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/status_codes.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/text_utils.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/type_codes.py +0 -0
- /snowflake_connector_python-5.0.0b2/src/snowflake/connector/py.typed → /snowflake_connector_python-5.0.0b4/src/snowflake/connector/auth/__init__.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/auth/workload_identity.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/compat.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/config_manager.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/description.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/pandas_tools.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/telemetry.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/time_util.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/types.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/util_text.py +0 -0
- {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/tests/README.md +0 -0
|
@@ -3478,6 +3478,7 @@ dependencies = [
|
|
|
3478
3478
|
"arrow",
|
|
3479
3479
|
"base64 0.22.1",
|
|
3480
3480
|
"chrono",
|
|
3481
|
+
"dirs",
|
|
3481
3482
|
"embed-resource",
|
|
3482
3483
|
"error_trace",
|
|
3483
3484
|
"libc",
|
|
@@ -3491,6 +3492,7 @@ dependencies = [
|
|
|
3491
3492
|
"snafu 0.8.9",
|
|
3492
3493
|
"strum",
|
|
3493
3494
|
"strum_macros",
|
|
3495
|
+
"temp-env",
|
|
3494
3496
|
"test-case",
|
|
3495
3497
|
"tokio",
|
|
3496
3498
|
"tokio-util",
|
|
@@ -3510,8 +3512,10 @@ name = "odbc_trace_tool"
|
|
|
3510
3512
|
version = "0.1.0"
|
|
3511
3513
|
dependencies = [
|
|
3512
3514
|
"clap",
|
|
3515
|
+
"encoding_rs",
|
|
3513
3516
|
"regex",
|
|
3514
3517
|
"serde",
|
|
3518
|
+
"serde_json",
|
|
3515
3519
|
"serde_yaml",
|
|
3516
3520
|
"snafu 0.8.9",
|
|
3517
3521
|
"tempfile",
|
|
@@ -4385,6 +4389,7 @@ dependencies = [
|
|
|
4385
4389
|
"url",
|
|
4386
4390
|
"wasm-bindgen",
|
|
4387
4391
|
"wasm-bindgen-futures",
|
|
4392
|
+
"wasm-streams",
|
|
4388
4393
|
"web-sys",
|
|
4389
4394
|
"webpki-roots",
|
|
4390
4395
|
]
|
|
@@ -4829,9 +4834,11 @@ dependencies = [
|
|
|
4829
4834
|
"aws-lc-rs",
|
|
4830
4835
|
"aws-sdk-s3",
|
|
4831
4836
|
"aws-sdk-sts",
|
|
4837
|
+
"aws-smithy-types",
|
|
4832
4838
|
"axum",
|
|
4833
4839
|
"base64 0.22.1",
|
|
4834
4840
|
"brotli",
|
|
4841
|
+
"bytes",
|
|
4835
4842
|
"bzip2",
|
|
4836
4843
|
"chrono",
|
|
4837
4844
|
"clap",
|
|
@@ -4848,6 +4855,8 @@ dependencies = [
|
|
|
4848
4855
|
"hex",
|
|
4849
4856
|
"html-escape",
|
|
4850
4857
|
"http 1.3.1",
|
|
4858
|
+
"http-body 1.0.1",
|
|
4859
|
+
"http-body-util",
|
|
4851
4860
|
"infer",
|
|
4852
4861
|
"jwt",
|
|
4853
4862
|
"keyring",
|
|
@@ -4863,6 +4872,7 @@ dependencies = [
|
|
|
4863
4872
|
"opentelemetry-semantic-conventions",
|
|
4864
4873
|
"opentelemetry_sdk",
|
|
4865
4874
|
"os_info",
|
|
4875
|
+
"pin-project-lite",
|
|
4866
4876
|
"pprof",
|
|
4867
4877
|
"prost 0.14.1",
|
|
4868
4878
|
"proto_generator",
|
|
@@ -4875,6 +4885,7 @@ dependencies = [
|
|
|
4875
4885
|
"rustls-native-certs 0.8.1",
|
|
4876
4886
|
"rustls-pemfile 2.2.0",
|
|
4877
4887
|
"rustls-webpki 0.102.8",
|
|
4888
|
+
"scopeguard",
|
|
4878
4889
|
"serde",
|
|
4879
4890
|
"serde_json",
|
|
4880
4891
|
"sf_core",
|
|
@@ -4895,6 +4906,7 @@ dependencies = [
|
|
|
4895
4906
|
"toml 0.8.23",
|
|
4896
4907
|
"tracing",
|
|
4897
4908
|
"tracing-appender",
|
|
4909
|
+
"tracing-core",
|
|
4898
4910
|
"tracing-opentelemetry",
|
|
4899
4911
|
"tracing-subscriber",
|
|
4900
4912
|
"tracing-test",
|
|
@@ -6063,6 +6075,19 @@ dependencies = [
|
|
|
6063
6075
|
"unicode-ident",
|
|
6064
6076
|
]
|
|
6065
6077
|
|
|
6078
|
+
[[package]]
|
|
6079
|
+
name = "wasm-streams"
|
|
6080
|
+
version = "0.4.2"
|
|
6081
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
6082
|
+
checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65"
|
|
6083
|
+
dependencies = [
|
|
6084
|
+
"futures-util",
|
|
6085
|
+
"js-sys",
|
|
6086
|
+
"wasm-bindgen",
|
|
6087
|
+
"wasm-bindgen-futures",
|
|
6088
|
+
"web-sys",
|
|
6089
|
+
]
|
|
6090
|
+
|
|
6066
6091
|
[[package]]
|
|
6067
6092
|
name = "web-sys"
|
|
6068
6093
|
version = "0.3.81"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-connector-python
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.0b4
|
|
4
4
|
Summary: Snowflake DB driver for Python (Private Preview)
|
|
5
5
|
Project-URL: Homepage, https://github.com/snowflakedb/universal-driver
|
|
6
6
|
Project-URL: Bug Reports, https://github.com/snowflakedb/universal-driver/issues
|
|
@@ -8,7 +8,7 @@ Project-URL: Source, https://github.com/snowflakedb/universal-driver
|
|
|
8
8
|
Project-URL: Documentation, https://github.com/snowflakedb/universal-driver/blob/main/README.md
|
|
9
9
|
License: Apache-2.0
|
|
10
10
|
Keywords: api,database,dbapi,pep249,python,snowflake
|
|
11
|
-
Classifier: Development Status ::
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -58,11 +58,9 @@ Description-Content-Type: text/markdown
|
|
|
58
58
|
|
|
59
59
|
# ⚠️ PRIVATE PREVIEW DISCLAIMER ⚠️
|
|
60
60
|
|
|
61
|
-
**
|
|
61
|
+
**This is a beta version of our Universal Driver intended for Snowflake customers who are subject to Snowflake's Preview Terms.**
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
- **Testing Environments Only:** For authorized Private Preview partners, this driver is provided solely for evaluation, feedback, and testing purposes. It must be deployed exclusively in isolated, non-production environments.
|
|
65
|
-
- **"As-Is" Software:** As a preview release, this driver is still under active development. It may contain bugs, lack features, or undergo significant breaking changes before general availability. It is provided "as-is" without any warranties, service level agreements (SLAs), or official support commitments.
|
|
63
|
+
This driver is not ready for use with production data and may be unstable. Please only use it if you are actively participating in the Universal Driver Private Preview.
|
|
66
64
|
|
|
67
65
|
## Development
|
|
68
66
|
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
# ⚠️ PRIVATE PREVIEW DISCLAIMER ⚠️
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**This is a beta version of our Universal Driver intended for Snowflake customers who are subject to Snowflake's Preview Terms.**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- **Testing Environments Only:** For authorized Private Preview partners, this driver is provided solely for evaluation, feedback, and testing purposes. It must be deployed exclusively in isolated, non-production environments.
|
|
7
|
-
- **"As-Is" Software:** As a preview release, this driver is still under active development. It may contain bugs, lack features, or undergo significant breaking changes before general availability. It is provided "as-is" without any warranties, service level agreements (SLAs), or official support commitments.
|
|
5
|
+
This driver is not ready for use with production data and may be unstable. Please only use it if you are actively participating in the Universal Driver Private Preview.
|
|
8
6
|
|
|
9
7
|
## Development
|
|
10
8
|
|
|
@@ -113,11 +113,16 @@ impl PythonGenerator {
|
|
|
113
113
|
content += &self.generate_server_class(&service, &package);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
// Generate client classes
|
|
117
|
-
for service in file.service {
|
|
116
|
+
// Generate (synchronous) client classes
|
|
117
|
+
for service in file.service.clone() {
|
|
118
118
|
content += &self.generate_client_class(&service, &package);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
+
// Generate async client classes (separate code path from the sync clients)
|
|
122
|
+
for service in file.service {
|
|
123
|
+
content += &self.generate_async_client_class(&service, &package);
|
|
124
|
+
}
|
|
125
|
+
|
|
121
126
|
result.add_file(
|
|
122
127
|
PathBuf::from(format!(r#"{package}_services.py"#)),
|
|
123
128
|
GeneratedFile::new(content),
|
|
@@ -311,6 +316,96 @@ class ProtoError(Exception):
|
|
|
311
316
|
|
|
312
317
|
content
|
|
313
318
|
}
|
|
319
|
+
|
|
320
|
+
/// Generate the asynchronous client for a service.
|
|
321
|
+
///
|
|
322
|
+
/// This is a dedicated client for the async code path — separate from the
|
|
323
|
+
/// synchronous ``{service}Client``. Each method awaits
|
|
324
|
+
/// ``transport.handle_message_async``, which today offloads the blocking
|
|
325
|
+
/// FFI call to a worker thread via ``asyncio.to_thread``. A non-blocking,
|
|
326
|
+
/// callback-based FFI will replace that hop later without changing this
|
|
327
|
+
/// client's surface.
|
|
328
|
+
fn generate_async_client_class(
|
|
329
|
+
&self,
|
|
330
|
+
service: &crate::protobuf::ServiceDescriptorProto,
|
|
331
|
+
package: &str,
|
|
332
|
+
) -> String {
|
|
333
|
+
let service_name = service.name.as_ref().unwrap_or(&String::new()).clone();
|
|
334
|
+
let service_error = service
|
|
335
|
+
.options
|
|
336
|
+
.as_ref()
|
|
337
|
+
.and_then(|o| o.service_error.as_ref());
|
|
338
|
+
|
|
339
|
+
let mut content = format!(
|
|
340
|
+
r#"class Async{service_name}Client:
|
|
341
|
+
"""Asynchronous {service_name} client.
|
|
342
|
+
|
|
343
|
+
Each RPC awaits ``transport.handle_message_async``, which runs the
|
|
344
|
+
blocking FFI call on a worker thread so the event loop is not blocked.
|
|
345
|
+
This is a separate code path from the synchronous ``{service_name}Client``.
|
|
346
|
+
"""
|
|
347
|
+
|
|
348
|
+
def __init__(self, transport, error_handler=None):
|
|
349
|
+
"""
|
|
350
|
+
Args:
|
|
351
|
+
transport: Transport layer that handles message serialization.
|
|
352
|
+
error_handler: Optional callable that converts a proto-layer exception
|
|
353
|
+
into a public exception. Must **return** the converted exception
|
|
354
|
+
(not raise it); ``_raise_error`` takes care of raising.
|
|
355
|
+
"""
|
|
356
|
+
self._transport = transport
|
|
357
|
+
self._error_handler = error_handler
|
|
358
|
+
|
|
359
|
+
def _raise_error(self, exc):
|
|
360
|
+
if self._error_handler is not None:
|
|
361
|
+
raise self._error_handler(exc) from None
|
|
362
|
+
raise exc
|
|
363
|
+
|
|
364
|
+
"#
|
|
365
|
+
);
|
|
366
|
+
|
|
367
|
+
for method in &service.method {
|
|
368
|
+
let name = camel_to_snake_case(method.name.as_ref().unwrap_or(&String::new()));
|
|
369
|
+
let input_type = to_rust_message_name(
|
|
370
|
+
&package.to_string(),
|
|
371
|
+
&method.input_type.as_ref().unwrap_or(&String::new()).clone(),
|
|
372
|
+
);
|
|
373
|
+
let output_type = to_rust_message_name(
|
|
374
|
+
&package.to_string(),
|
|
375
|
+
&method
|
|
376
|
+
.output_type
|
|
377
|
+
.as_ref()
|
|
378
|
+
.unwrap_or(&String::new())
|
|
379
|
+
.clone(),
|
|
380
|
+
);
|
|
381
|
+
let method_error = method
|
|
382
|
+
.options
|
|
383
|
+
.as_ref()
|
|
384
|
+
.and_then(|o| o.method_error.as_ref());
|
|
385
|
+
let empty_error = "EmptyError".to_string();
|
|
386
|
+
let error_type = method_error.or(service_error).unwrap_or(&empty_error);
|
|
387
|
+
|
|
388
|
+
content += &format!(
|
|
389
|
+
r#" async def {name}(self, request: {input_type}) -> {output_type}:
|
|
390
|
+
(code, response_bytes) = await self._transport.handle_message_async('{service_name}', '{name}', request.SerializeToString())
|
|
391
|
+
if code == 0:
|
|
392
|
+
response = {output_type}()
|
|
393
|
+
response.ParseFromString(response_bytes)
|
|
394
|
+
return response
|
|
395
|
+
elif code == 1:
|
|
396
|
+
error = {error_type}()
|
|
397
|
+
error.ParseFromString(response_bytes)
|
|
398
|
+
self._raise_error(ProtoApplicationException(error))
|
|
399
|
+
elif code == 2:
|
|
400
|
+
self._raise_error(ProtoTransportException(str(response_bytes)))
|
|
401
|
+
else:
|
|
402
|
+
self._raise_error(ProtoTransportException(f"Unknown error code: %s", code))
|
|
403
|
+
"#
|
|
404
|
+
);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
content
|
|
408
|
+
}
|
|
314
409
|
}
|
|
315
410
|
|
|
316
411
|
impl Default for PythonGenerator {
|
|
@@ -230,7 +230,7 @@ use prost::Message;
|
|
|
230
230
|
Ok(input) => input,
|
|
231
231
|
Err(e) => return Err(ProtoError::Transport(e.to_string())),
|
|
232
232
|
}};
|
|
233
|
-
let result = self.{name}(input).await;
|
|
233
|
+
let result = Box::pin(self.{name}(input)).await;
|
|
234
234
|
match result {{
|
|
235
235
|
Ok(output) => Ok(output.encode_to_vec()),
|
|
236
236
|
Err(e) => Err(ProtoError::Application(e.encode_to_vec())),
|
|
@@ -72,21 +72,89 @@ fn download_url() -> String {
|
|
|
72
72
|
|
|
73
73
|
fn download_and_install(dest: &Path) {
|
|
74
74
|
let url = download_url();
|
|
75
|
-
eprintln!("Downloading protoc v{PROTOC_VERSION} from {url}");
|
|
76
75
|
|
|
77
76
|
std::fs::create_dir_all(dest).expect("Failed to create protoc cache directory");
|
|
78
77
|
let zip_path = dest.join("protoc.zip");
|
|
79
78
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
// Two layers of retry guard the build against transient GitHub Releases failures
|
|
80
|
+
// (recurring HTTP 5xx, slow connect, partial download):
|
|
81
|
+
//
|
|
82
|
+
// 1. `curl --retry 5` already covers the failure mode we actually see —
|
|
83
|
+
// curl's documented default treats HTTP 408/429/500/502/503/504 as
|
|
84
|
+
// transient and retries them with its own backoff, so a 504 from
|
|
85
|
+
// releases.githubusercontent.com is absorbed inside a single curl
|
|
86
|
+
// invocation without any extra flags. We intentionally do NOT pass
|
|
87
|
+
// `--retry-all-errors` (added in curl 7.71): the manylinux build
|
|
88
|
+
// container ships an older curl that hard-errors on unknown options
|
|
89
|
+
// (exit 2), which would push every attempt into the outer loop and
|
|
90
|
+
// effectively disable retries. Sticking to flags supported back to
|
|
91
|
+
// ~7.52 (`--retry`, `--retry-delay`, `--retry-max-time`, plus the
|
|
92
|
+
// connect/total timeouts) keeps every CI runner (macOS-15, ubuntu-24,
|
|
93
|
+
// Windows-2022, manylinux_2_*) on the same code path.
|
|
94
|
+
//
|
|
95
|
+
// 2. An outer exponential-backoff loop (1s → 2s → 4s → 8s, 5 attempts total)
|
|
96
|
+
// catches the failures curl's own retry doesn't: partial downloads that
|
|
97
|
+
// leave a corrupt zip on disk, transient DNS/SSL handshake errors that
|
|
98
|
+
// curl exits on without retrying, and any future failure class we
|
|
99
|
+
// haven't enumerated. Each outer attempt starts by deleting the
|
|
100
|
+
// previous zip so extract_zip never sees a half-written file.
|
|
101
|
+
//
|
|
102
|
+
// Total worst-case stall ≈ 1+2+4+8 = 15s of outer backoff plus curl's
|
|
103
|
+
// internal retry budget (capped by --retry-max-time at 120s) — well under
|
|
104
|
+
// any CI job budget, and far cheaper than rerunning the whole release
|
|
105
|
+
// pipeline on a 504.
|
|
106
|
+
const MAX_ATTEMPTS: u32 = 5;
|
|
107
|
+
let mut last_status = None;
|
|
108
|
+
for attempt in 1..=MAX_ATTEMPTS {
|
|
109
|
+
eprintln!(
|
|
110
|
+
"Downloading protoc v{PROTOC_VERSION} from {url} (attempt {attempt}/{MAX_ATTEMPTS})"
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
// Best-effort cleanup of any partial download from the previous attempt.
|
|
114
|
+
// A corrupt zip would otherwise survive into extract_zip() and fail there.
|
|
115
|
+
let _ = std::fs::remove_file(&zip_path);
|
|
116
|
+
|
|
117
|
+
let status = std::process::Command::new("curl")
|
|
118
|
+
.args([
|
|
119
|
+
"-sSL",
|
|
120
|
+
"--fail",
|
|
121
|
+
"--retry",
|
|
122
|
+
"5",
|
|
123
|
+
"--retry-delay",
|
|
124
|
+
"2",
|
|
125
|
+
"--retry-max-time",
|
|
126
|
+
"120",
|
|
127
|
+
"--connect-timeout",
|
|
128
|
+
"30",
|
|
129
|
+
"--max-time",
|
|
130
|
+
"300",
|
|
131
|
+
"-o",
|
|
132
|
+
])
|
|
133
|
+
.arg(&zip_path)
|
|
134
|
+
.arg(&url)
|
|
135
|
+
.status()
|
|
136
|
+
.expect("Failed to execute curl. Install curl or set the PROTOC env var.");
|
|
137
|
+
|
|
138
|
+
if status.success() {
|
|
139
|
+
last_status = Some(status);
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
last_status = Some(status);
|
|
143
|
+
|
|
144
|
+
if attempt < MAX_ATTEMPTS {
|
|
145
|
+
let backoff_ms = 1_000u64 * (1u64 << (attempt - 1));
|
|
146
|
+
eprintln!("curl failed (status: {status}); retrying in {backoff_ms} ms");
|
|
147
|
+
std::thread::sleep(std::time::Duration::from_millis(backoff_ms));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
86
150
|
|
|
151
|
+
let status = last_status.expect("curl loop must produce at least one status");
|
|
87
152
|
assert!(
|
|
88
153
|
status.success(),
|
|
89
|
-
"Failed to download protoc from {url}
|
|
154
|
+
"Failed to download protoc from {url} after {MAX_ATTEMPTS} attempts \
|
|
155
|
+
(last curl exit status: {status}). \
|
|
156
|
+
Set the PROTOC env var to a local protoc binary to bypass the download \
|
|
157
|
+
(useful in offline or locked-down environments).",
|
|
90
158
|
);
|
|
91
159
|
|
|
92
160
|
extract_zip(&zip_path, dest);
|
|
@@ -332,6 +332,7 @@ message ConnectionGetInfoResponse {
|
|
|
332
332
|
optional string schema = 10;
|
|
333
333
|
optional string warehouse = 11;
|
|
334
334
|
optional string master_token = 12;
|
|
335
|
+
optional string user_agent = 13;
|
|
335
336
|
}
|
|
336
337
|
|
|
337
338
|
message ConnectionGetObjectsRequest {
|
|
@@ -344,8 +345,36 @@ message ConnectionGetObjectsRequest {
|
|
|
344
345
|
optional string column_name = 7;
|
|
345
346
|
}
|
|
346
347
|
|
|
348
|
+
// ConnectionGetObjects returns a result set (streaming, via result_set_get_stream)
|
|
349
|
+
// containing a nested ADBC-shaped Arrow batch:
|
|
350
|
+
// catalog_name: utf8
|
|
351
|
+
// catalog_db_schemas: list<struct<
|
|
352
|
+
// db_schema_name: utf8,
|
|
353
|
+
// db_schema_tables: list<struct<
|
|
354
|
+
// table_name: utf8,
|
|
355
|
+
// table_type: utf8,
|
|
356
|
+
// table_columns: list (always empty in this impl),
|
|
357
|
+
// table_constraints: list (always empty in this impl)
|
|
358
|
+
// >>
|
|
359
|
+
// >>
|
|
360
|
+
//
|
|
361
|
+
// depth constants:
|
|
362
|
+
// 0 = ALL (not used)
|
|
363
|
+
// 1 = CATALOGS -> populates only catalog_name
|
|
364
|
+
// 2 = DB_SCHEMAS -> populates catalog_name + db_schema_name
|
|
365
|
+
// 3 = TABLES -> populates down to table_name/table_type
|
|
366
|
+
// 4 = COLUMNS -> deferred (not implemented yet)
|
|
367
|
+
//
|
|
368
|
+
// Filter semantics (search patterns, ADBC + backslash-escape extension):
|
|
369
|
+
// - NULL filter = no filter (account-wide or connection-context if
|
|
370
|
+
// CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX is set)
|
|
371
|
+
// - empty string "" = matches nothing (returns empty result)
|
|
372
|
+
// - % = any sequence, _ = any single char
|
|
373
|
+
// - \%, \_, \\ = literal %, _, \ (escape extension, not in ADBC spec)
|
|
374
|
+
// - Matching is case-insensitive (Snowflake unquoted-identifier semantics)
|
|
347
375
|
message ConnectionGetObjectsResponse {
|
|
348
|
-
|
|
376
|
+
ResultSetHandle result_set_handle = 1;
|
|
377
|
+
ResultSetDescriptor result_descriptor = 2;
|
|
349
378
|
}
|
|
350
379
|
|
|
351
380
|
message ConnectionGetTableSchemaRequest {
|
|
@@ -397,6 +426,14 @@ message ConnectionUseDatabaseRequest {
|
|
|
397
426
|
message ConnectionUseDatabaseResponse {
|
|
398
427
|
}
|
|
399
428
|
|
|
429
|
+
message ConnectionUseSchemaRequest {
|
|
430
|
+
ConnectionHandle conn_handle = 1;
|
|
431
|
+
string schema = 2;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
message ConnectionUseSchemaResponse {
|
|
435
|
+
}
|
|
436
|
+
|
|
400
437
|
message ConnectionSetSessionParametersRequest {
|
|
401
438
|
ConnectionHandle conn_handle = 1;
|
|
402
439
|
map<string, string> parameters = 2;
|
|
@@ -422,6 +459,19 @@ message ConnectionGetAllParametersResponse {
|
|
|
422
459
|
map<string, string> parameters = 1;
|
|
423
460
|
}
|
|
424
461
|
|
|
462
|
+
// Reads the Snowflake server version cached from the login response.
|
|
463
|
+
// Distinct from ConnectionGetInfo (which aggregates ~12 fields and takes
|
|
464
|
+
// several locks) so SQLGetInfo(SQL_DBMS_VER) / JDBC getDatabaseProductVersion
|
|
465
|
+
// stay cheap even when callers poll them per-statement.
|
|
466
|
+
message ConnectionGetServerVersionRequest {
|
|
467
|
+
ConnectionHandle conn_handle = 1;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
message ConnectionGetServerVersionResponse {
|
|
471
|
+
// Empty when called before login completes.
|
|
472
|
+
optional string server_version = 1;
|
|
473
|
+
}
|
|
474
|
+
|
|
425
475
|
message ConnectionValidateOptionsRequest {
|
|
426
476
|
ConnectionHandle conn_handle = 1;
|
|
427
477
|
}
|
|
@@ -467,6 +517,7 @@ message ConnectionTokenResponse {
|
|
|
467
517
|
// Heartbeat request to validate that the connection and session are still alive.
|
|
468
518
|
message ConnectionHeartbeatRequest {
|
|
469
519
|
ConnectionHandle conn_handle = 1;
|
|
520
|
+
optional uint32 timeout_seconds = 2; // 0 / absent = use default (300s)
|
|
470
521
|
}
|
|
471
522
|
|
|
472
523
|
message ConnectionHeartbeatResponse {
|
|
@@ -534,6 +585,8 @@ message PrepareResult {
|
|
|
534
585
|
int32 number_of_binds = 5;
|
|
535
586
|
string query = 6;
|
|
536
587
|
optional string sql_state = 7;
|
|
588
|
+
bool array_bind_supported = 8;
|
|
589
|
+
repeated ColumnMetadata binds = 9;
|
|
537
590
|
}
|
|
538
591
|
|
|
539
592
|
message StatementPrepareRequest {
|
|
@@ -705,6 +758,15 @@ message ConfigSection {
|
|
|
705
758
|
message ConnectionSetOptionsRequest {
|
|
706
759
|
ConnectionHandle conn_handle = 1;
|
|
707
760
|
map<string, ConfigSetting> options = 2;
|
|
761
|
+
// True when the caller invoked connect() with zero connection-identifying
|
|
762
|
+
// options (the legacy Python driver's `is_kwargs_empty` condition). The core
|
|
763
|
+
// then falls back to the default connection profile from connections.toml,
|
|
764
|
+
// honoring SNOWFLAKE_DEFAULT_CONNECTION_NAME and config.toml's
|
|
765
|
+
// `default_connection_name`. Language wrappers MUST compute this from the
|
|
766
|
+
// raw caller input *before* injecting any bookkeeping params (application,
|
|
767
|
+
// client_app_id, …); a value of `false` (the default) means "caller supplied
|
|
768
|
+
// something", so do not load the default profile.
|
|
769
|
+
bool no_connection_details = 3;
|
|
708
770
|
}
|
|
709
771
|
|
|
710
772
|
message ConnectionSetOptionsResponse {
|
|
@@ -748,8 +810,19 @@ message ConnectionGetQueryStatusRequest {
|
|
|
748
810
|
message ConnectionGetQueryStatusResponse {
|
|
749
811
|
// Status name as returned by the server (e.g. "RUNNING", "SUCCESS", "FAILED_WITH_ERROR")
|
|
750
812
|
string status_name = 1;
|
|
751
|
-
|
|
752
|
-
optional
|
|
813
|
+
int64 end_time = 2;
|
|
814
|
+
optional int32 error_code = 3;
|
|
815
|
+
optional string error_message = 4;
|
|
816
|
+
string query_id = 5;
|
|
817
|
+
int64 session_id = 6;
|
|
818
|
+
string sql_text = 7;
|
|
819
|
+
int64 start_time = 8;
|
|
820
|
+
string state = 9;
|
|
821
|
+
int32 total_duration = 10;
|
|
822
|
+
optional string warehouse_external_size = 11;
|
|
823
|
+
int64 warehouse_id = 12;
|
|
824
|
+
optional string warehouse_name = 13;
|
|
825
|
+
optional string warehouse_server_type = 14;
|
|
753
826
|
}
|
|
754
827
|
|
|
755
828
|
message ConfigGetPathsRequest {
|
|
@@ -768,6 +841,10 @@ message ConfigGetPathsResponse {
|
|
|
768
841
|
message TelemetrySendApiUsageRequest {
|
|
769
842
|
ConnectionHandle conn_handle = 1;
|
|
770
843
|
string api_method = 2;
|
|
844
|
+
// Names of the arguments the caller explicitly passed to the API method.
|
|
845
|
+
// Names only — never argument values, and parameters left at their default
|
|
846
|
+
// are omitted. Used to learn which optional fields callers actually exercise.
|
|
847
|
+
repeated string passed_arguments = 3;
|
|
771
848
|
}
|
|
772
849
|
|
|
773
850
|
message TelemetrySendWrapperErrorRequest {
|
|
@@ -804,6 +881,7 @@ service DatabaseDriver {
|
|
|
804
881
|
rpc ConnectionRollback(ConnectionRollbackRequest) returns (ConnectionRollbackResponse);
|
|
805
882
|
rpc ConnectionSetAutocommit(ConnectionSetAutocommitRequest) returns (ConnectionSetAutocommitResponse);
|
|
806
883
|
rpc ConnectionUseDatabase(ConnectionUseDatabaseRequest) returns (ConnectionUseDatabaseResponse);
|
|
884
|
+
rpc ConnectionUseSchema(ConnectionUseSchemaRequest) returns (ConnectionUseSchemaResponse);
|
|
807
885
|
// sets initial session parameters connection should be initialized with
|
|
808
886
|
// call before opening the connection
|
|
809
887
|
rpc ConnectionSetSessionParameters(ConnectionSetSessionParametersRequest) returns (ConnectionSetSessionParametersResponse);
|
|
@@ -812,6 +890,10 @@ service DatabaseDriver {
|
|
|
812
890
|
rpc ConnectionGetParameter(ConnectionGetParameterRequest) returns (ConnectionGetParameterResponse);
|
|
813
891
|
// gets all resolved session parameters at once
|
|
814
892
|
rpc ConnectionGetAllParameters(ConnectionGetAllParametersRequest) returns (ConnectionGetAllParametersResponse);
|
|
893
|
+
// returns the Snowflake server version cached from the login response
|
|
894
|
+
// (`serverVersion` in `/session/v1/login-request`); backs
|
|
895
|
+
// `SQLGetInfo(SQL_DBMS_VER)` and `getDatabaseProductVersion`
|
|
896
|
+
rpc ConnectionGetServerVersion(ConnectionGetServerVersionRequest) returns (ConnectionGetServerVersionResponse);
|
|
815
897
|
// pre-flight validation of connection options - reports all issues at once
|
|
816
898
|
rpc ConnectionValidateOptions(ConnectionValidateOptionsRequest) returns (ConnectionValidateOptionsResponse);
|
|
817
899
|
// Fetch the result of a previously executed query by Snowflake Query ID
|
|
@@ -10,7 +10,7 @@ readme = "README.md"
|
|
|
10
10
|
license = { text = "Apache-2.0" }
|
|
11
11
|
keywords = ["database", "api", "pep249", "dbapi", "python", "snowflake"]
|
|
12
12
|
classifiers = [
|
|
13
|
-
"Development Status ::
|
|
13
|
+
"Development Status :: 4 - Beta",
|
|
14
14
|
"Intended Audience :: Developers",
|
|
15
15
|
"Topic :: Database",
|
|
16
16
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
@@ -147,6 +147,7 @@ markers = [
|
|
|
147
147
|
"slow: marks tests as slow (e.g., full sdist install with Rust compilation)",
|
|
148
148
|
"skip_for_json_result_set(reason: str=''): skip when QUERY_RESULT_FORMAT=JSON (tests requiring Arrow precision)",
|
|
149
149
|
"require_vpn: test requires VPN access (skipped outside Jenkins CI)",
|
|
150
|
+
"requires_browser: test requires headless browser container (skipped unless SF_TEST_HEADLESS_BROWSER=true)",
|
|
150
151
|
"flaky: marks tests as flaky; skipped by default, run explicitly via the flaky CI job or `-m flaky` locally",
|
|
151
152
|
]
|
|
152
153
|
log_cli = false
|
|
@@ -237,7 +238,11 @@ dependencies = [
|
|
|
237
238
|
"protobuf>=6.32.1",
|
|
238
239
|
"pytz",
|
|
239
240
|
"tomlkit>=0.13",
|
|
240
|
-
"numpy
|
|
241
|
+
# Cap < 2.3 to match the mypy `python_version = "3.10"` target: numpy 2.3
|
|
242
|
+
# dropped 3.10 and its stubs use PEP-695 `type` statements mypy rejects
|
|
243
|
+
# under a 3.10 target. A real 3.10 install resolves numpy <= 2.2, so this is
|
|
244
|
+
# the numpy we should type-check against.
|
|
245
|
+
"numpy>=2.1.0,<2.3",
|
|
241
246
|
]
|
|
242
247
|
|
|
243
248
|
[tool.hatch.envs.precommit.env-vars]
|
{snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/Cargo.toml
RENAMED
|
@@ -15,6 +15,8 @@ protobuf = ["prost", "proto_utils"]
|
|
|
15
15
|
vendored-openssl = ["openssl/vendored"]
|
|
16
16
|
auth_mfa_e2e = []
|
|
17
17
|
auth_oauth_e2e = []
|
|
18
|
+
auth_spcs_e2e = []
|
|
19
|
+
gcs_e2e = []
|
|
18
20
|
perf_timing = []
|
|
19
21
|
test-utils = []
|
|
20
22
|
cli = ["clap"]
|
|
@@ -26,10 +28,12 @@ opentelemetry_sdk = { version = "0.30.0", default-features = false, features = [
|
|
|
26
28
|
opentelemetry-otlp = { version = "0.30.0" }
|
|
27
29
|
opentelemetry-semantic-conventions = { version = "0.30.0" }
|
|
28
30
|
tracing = "0.1.41"
|
|
31
|
+
tracing-core = "0.1.34"
|
|
29
32
|
tracing-appender = "0.2"
|
|
30
33
|
tracing-subscriber = { version = "0.3.19", features = ["fmt", "env-filter"] }
|
|
31
34
|
rand = "0.9.2"
|
|
32
|
-
|
|
35
|
+
bytes = "1"
|
|
36
|
+
reqwest = { version = "0.12.23", features = ["json", "rustls-tls", "gzip", "stream"] }
|
|
33
37
|
serde = { version = "1.0.219", features = ["derive"] }
|
|
34
38
|
serde_json = { version = "1.0.143", features = ["raw_value"] }
|
|
35
39
|
futures = "0.3"
|
|
@@ -39,8 +43,8 @@ tokio-stream = "0.1"
|
|
|
39
43
|
toml = "0.8"
|
|
40
44
|
uuid = { version = "1.18", features = ["v4"] }
|
|
41
45
|
base64 = "0.22.1"
|
|
42
|
-
arrow = { version = "
|
|
43
|
-
arrow-ipc = "
|
|
46
|
+
arrow = { version = ">=54.0.0, <59", features = ["ffi"] }
|
|
47
|
+
arrow-ipc = ">=54.0.0, <59"
|
|
44
48
|
flate2 = "1.1.2"
|
|
45
49
|
openssl = "0.10.73"
|
|
46
50
|
jwt = { version = "0.16.0", features = ["openssl"] }
|
|
@@ -48,6 +52,10 @@ oauth2 = { version = "5", features = ["timing-resistant-secret-traits"] }
|
|
|
48
52
|
axum = { version = "0.8", default-features = false, features = ["http1", "tokio", "query"] }
|
|
49
53
|
webbrowser = "1"
|
|
50
54
|
http = "1"
|
|
55
|
+
http-body = "1"
|
|
56
|
+
http-body-util = "0.1"
|
|
57
|
+
pin-project-lite = "0.2"
|
|
58
|
+
tempfile = "3.21.0"
|
|
51
59
|
infer = "0.19.0"
|
|
52
60
|
|
|
53
61
|
# Proto
|
|
@@ -59,6 +67,9 @@ aws-sdk-s3 = "1.103.0"
|
|
|
59
67
|
aws-sdk-sts = "1.86.0"
|
|
60
68
|
aws-config = "1.8.5"
|
|
61
69
|
aws-credential-types = "1.2.5"
|
|
70
|
+
# Enables `ByteStream::from_body_1_x` so the S3 PUT path can stream a custom
|
|
71
|
+
# (lazily-encrypting) http-body without buffering ciphertext.
|
|
72
|
+
aws-smithy-types = { version = "1.3", features = ["http-body-1-x"] }
|
|
62
73
|
snafu = "0.8.7"
|
|
63
74
|
error_trace = { path = "../error_trace" }
|
|
64
75
|
fs2 = "0.4"
|
|
@@ -107,7 +118,6 @@ libc = "0.2"
|
|
|
107
118
|
sf_core = { path = ".", default-features = false, features = ["test-utils"] }
|
|
108
119
|
tokio = { version = "1.47.1", features = ["fs", "test-util"] }
|
|
109
120
|
opentelemetry_sdk = { version = "0.30.0", default-features = false, features = ["experimental_metrics_custom_reader"] }
|
|
110
|
-
tempfile = "3.21.0"
|
|
111
121
|
arrow_deserialize_macro = { path = "tests/common/arrow_deserialize_macro" }
|
|
112
122
|
bzip2 = "0.6.0"
|
|
113
123
|
brotli = "8.0.2"
|
|
@@ -120,6 +130,7 @@ tokio-rustls = "0.26"
|
|
|
120
130
|
tracing-test = { version = "0.2", features = ["no-env-filter"] }
|
|
121
131
|
criterion = { version = "0.5", features = ["async_tokio"] }
|
|
122
132
|
temp-env = { version = "0.3.6", features = ["async_closure"] }
|
|
133
|
+
scopeguard = "1.2"
|
|
123
134
|
|
|
124
135
|
[target.'cfg(not(target_os = "windows"))'.dev-dependencies]
|
|
125
136
|
pprof = { version = "0.14", features = ["flamegraph", "criterion"] }
|
|
@@ -160,6 +171,10 @@ path = "tests/logging_custom_file_tests.rs"
|
|
|
160
171
|
name = "logging_query_tests"
|
|
161
172
|
path = "tests/logging_query_tests.rs"
|
|
162
173
|
|
|
174
|
+
[[test]]
|
|
175
|
+
name = "byte_source_roundtrip"
|
|
176
|
+
path = "tests/byte_source_roundtrip.rs"
|
|
177
|
+
|
|
163
178
|
[[test]]
|
|
164
179
|
name = "e2e_tests"
|
|
165
180
|
path = "tests/e2e/mod.rs"
|
|
@@ -178,6 +193,11 @@ required-features = ["cli"]
|
|
|
178
193
|
name = "param_defs_export"
|
|
179
194
|
path = "src/bin/param_defs_export.rs"
|
|
180
195
|
|
|
196
|
+
[[bin]]
|
|
197
|
+
name = "spcs_probe"
|
|
198
|
+
path = "src/bin/spcs_probe.rs"
|
|
199
|
+
required-features = ["protobuf"]
|
|
200
|
+
|
|
181
201
|
[[bench]]
|
|
182
202
|
name = "prefetch_bench"
|
|
183
203
|
harness = false
|