snowflake-connector-python 5.0.0rc5__tar.gz → 5.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/Cargo.lock +6 -15
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/Cargo.toml +5 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/PKG-INFO +4 -6
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/README.md +1 -4
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/hatch_build.py +57 -17
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/protobuf/database_driver_v1.proto +10 -9
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/pyproject.toml +14 -8
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/Cargo.toml +1 -6
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/build.rs +3 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/lib.rs +1 -1
- snowflake_connector_python-5.1.0/rust-toolchain.toml +4 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/CHANGELOG.md +35 -4
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/Cargo.toml +34 -43
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/README.md +26 -17
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/connection.rs +256 -98
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/database.rs +3 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/error_kind.rs +23 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/global_state.rs +70 -20
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/query.rs +5 -2
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/result_set.rs +74 -10
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/statement.rs +69 -50
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/stream_transfer.rs +6 -4
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/validation.rs +218 -20
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/auth.rs +8 -8
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/bin/collect_chunk_data.rs +9 -4
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/bin/tls_client.rs +7 -3
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/connection_config.rs +177 -5
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/ini_loader.rs +58 -18
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/mod.rs +1 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/resolver.rs +31 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/rest_parameters.rs +124 -14
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/cache.rs +76 -45
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/disk_tests.rs +6 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/error.rs +7 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/integration_test.rs +3 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/manager.rs +42 -18
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crypto/private_key.rs +22 -22
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/diagnostic/mod.rs +0 -4
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/env_vars.rs +4 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/azure_transfer.rs +17 -11
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/cloud_http.rs +19 -21
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/gcs_transfer.rs +81 -15
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/mod.rs +10 -4
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/s3_transfer.rs +142 -60
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/types.rs +15 -16
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/logging/error.rs +8 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/logging/log_manager.rs +312 -84
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/logging/mod.rs +299 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/protobuf/apis/database_driver_v1/converter.rs +9 -3
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/protobuf/apis/database_driver_v1/mod.rs +46 -62
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/query_types/statement_type.rs +24 -3
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/auth.rs +10 -8
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/heartbeat.rs +17 -10
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/mod.rs +124 -17
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/dpop.rs +1 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/error.rs +1 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/random.rs +1 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/query_response.rs +130 -90
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/workload_identity/aws.rs +547 -46
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/workload_identity/azure.rs +2 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/workload_identity/gcp.rs +2 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/workload_identity/mod.rs +12 -20
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/workload_identity/oidc.rs +1 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/stage_binding.rs +5 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/environment.rs +67 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/mod.rs +21 -15
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/platform_detection/aws.rs +9 -3
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/platform_detection/mod.rs +46 -24
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/platform_detection/tests.rs +1 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/serialization.rs +65 -3
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/session_batch.rs +13 -13
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/session_telemetry.rs +69 -62
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/snowflake_exporter.rs +33 -19
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/snowflake_processor.rs +38 -11
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/aws_http_client.rs +65 -11
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/client.rs +896 -89
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/config.rs +80 -4
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/crl_verifier.rs +87 -36
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/crypto_module.rs +25 -14
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/error.rs +18 -2
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/mod.rs +58 -72
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/x509_utils.rs +3 -13
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/config.rs +2 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/oauth.rs +17 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/password.rs +2 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/tls_proxy.rs +4 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/Cargo.lock +843 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/Cargo.toml +172 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/LICENSE +19 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/README.md +79 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/alg_tests.rs +648 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/aws_lc_rs_algs.rs +381 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/cert.rs +749 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/crl/mod.rs +374 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/crl/types.rs +1291 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/alg-rsa-pkcs1-sha256-absent-params.der +1 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/alg-rsa-pkcs1-sha384-absent-params.der +1 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/alg-rsa-pkcs1-sha512-absent-params.der +1 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/distrusted/EMDVTLSCAG3B.spki.der +0 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/distrusted/EMDVTLSCAG3C.spki.der +0 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/distrusted/EMEVTLSCAG3B.spki.der +0 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/distrusted/EMEVTLSCAG3C.spki.der +0 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/distrusted/EMOVCSCAG3B.spki.der +0 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/distrusted/EMOVCSCAG3C.spki.der +0 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/distrusted/EMOVTLSCAG3B.spki.der +0 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/data/distrusted/EMOVTLSCAG3C.spki.der +0 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/der.rs +908 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/end_entity.rs +241 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/error.rs +466 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/lib.rs +221 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/ring_algs.rs +303 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/rpk_entity.rs +84 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/signed_data.rs +269 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/subject_name/dns_name.rs +1059 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/subject_name/ip_address.rs +706 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/subject_name/mod.rs +472 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/test_utils.rs +47 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/time.rs +283 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/trust_anchor.rs +141 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/verify_cert.rs +1523 -0
- snowflake_connector_python-5.1.0/sf_core/third_party/rustls-webpki/src/x509.rs +119 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_params_spec/src/lib.rs +502 -221
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_params_spec/tests/odbc_legacy_compatibility.rs +26 -23
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/text.rs +2 -2
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/__init__.py +3 -21
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_common/wif_util.py +5 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/api_client/client_api.py +6 -4
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/connection_config_mixin.py +4 -1
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/cursor/base.py +8 -5
- snowflake_connector_python-5.1.0/src/snowflake/connector/_internal/fips.py +28 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +5 -2
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +5 -2
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +6 -2
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp +220 -220
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.pyx +1 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.cpp +1 -3
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.hpp +3 -0
- snowflake_connector_python-5.1.0/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +408 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.pyi +31 -20
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_services.py +8 -8
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/utils.py +11 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/connection/_connection.py +2 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/cursor/_base.py +47 -6
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/connection/_connection.py +2 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/connection_config.py +35 -11
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/cursor/_base.py +44 -5
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/version.py +1 -1
- snowflake_connector_python-5.0.0rc5/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +0 -408
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/.gitignore +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/build_common.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/ci/anaconda/recipe/README.md +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/error_trace/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/error_trace/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/error_trace_derive/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/error_trace_derive/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/Cargo.lock +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/README.md +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/generators/csharp_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/generators/helpers.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/generators/java_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/generators/json_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/generators/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/generators/python_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/generators/rust_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/main.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/protobuf.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_generator/src/protoc_installer.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_utils/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/proto_utils/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/async_iterator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/batch_converter.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/binary.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/boolean.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/context.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/date.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/decfloat.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/decode.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/interval.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/map.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/number.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/numpy.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/real.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/test_util.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/text.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/time.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/timestamp_ltz.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/timestamp_ntz.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/timestamp_tz.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/timezone.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/util.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/converters/vector.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/error.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/iterator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/plan.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/scaled_f64.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/stream.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/fixed.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/int_values.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/interval.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/tests.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/time.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/timestamp/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/timestamp/scale.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/timestamp/tz.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table/utils.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/table_iterator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/arrow/test_support.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/stub_gen/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/stub_gen/src/main.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/benches/prefetch_bench.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/build.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/cbindgen-xp-providers.toml +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/exports.def +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/include/sf_core_providers.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/alter_session_parser.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/async_query_registry.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/error.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/final_session_names.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/get_objects.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/heartbeat.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/like_pattern.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/logout.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/multistatement.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/query_submit.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/database_driver_v1/spcs_token.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/apis/operation_ctx.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/arrow_utils.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/bin/README.md +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/bin/spcs_probe.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/chunks/arrow_parser.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/chunks/async_arrow_batch_fetcher.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/chunks/error.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/chunks/http_downloader.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/chunks/json_parser.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/chunks/memory_budget.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/chunks/mock.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/chunks/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/chunks/prefetch.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/compression.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/compression_types.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/config_manager.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/configured_redirect_uri.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/error_context.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/logging_config_loader.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/logout.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/param_registry.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/param_store.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/path_resolver.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/private_key.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/retry.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/settings.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/token.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/config/toml_loader.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/certificate_parser.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/config.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/validator.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crl/worker.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/crypto/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/encryption.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/multipart.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/path_expansion.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/scheduler.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/file_manager/spool.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/fs_adapter.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/fs_lock.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/handle_manager.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/http/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/http/retry.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/logging/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/logging/callback_layer.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/logging/opentelemetry.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/perf_timing/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/perf_timing/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/protobuf/apis/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/protobuf/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/protobuf/config_setting_ext.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/protobuf/generated.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/protobuf/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/query_types/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/query_types/row_type.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/refresh.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/async_exec.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/browser.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/error_context.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/external_browser.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/logout.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/native_okta.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/authorization_code.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/client_credentials.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/http_client.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/loopback_server.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/pkce.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/oauth/token.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/prompt_lock.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/query_context_cache.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/query_request.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/sql_state.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/telemetry.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/rest/snowflake/workload_identity/host_allowlist.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/sensitive.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/os_details.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/platform_detection/azure.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/platform_detection/gcp.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/telemetry/types.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/revocation.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/tls/test_helpers.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/token_cache/file_cache.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/token_cache/keyring_cache.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/token_cache/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/utils/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/utils/sync.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/xp_backend/connection_settings.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/xp_backend/ffi.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/xp_backend/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/xp_backend/registry.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/src/xp_backend/response_compat.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/arrow_deserialize.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/arrow_deserialize_macro/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/arrow_deserialize_macro/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/arrow_extract_value.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/arrow_result_helper.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/browser_opener.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/cloud_gating.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/connect_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/counting_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/crypto_provider.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/dead_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/file_utils.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mitm_port_detector.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mitm_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/auth.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/external_browser.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/mfa.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/okta.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/put_get.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/query.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mocks/session.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/private_key_helper.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/put_get_common.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/snowflake_test_client.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/test_server.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/common/test_utils.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/xp_backend/fake_host.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/xp_backend/fixtures.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/tests/xp_backend/link_sf_core.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_params_spec/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/binary.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/boolean.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/civil.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/clock.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/date.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/decfloat.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/error.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/fixed.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/interval.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/nullable.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/real.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/time.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/timestamp.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/traits.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_types/src/vector.rs +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_common/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_common/extras.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_common/telemetry.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/_private_key_helper.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/api_client/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/api_client/bridge.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/arrow.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/arrow_context.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/arrow_stream_async.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/arrow_stream_iterator.pyi +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/arrow_stream_utils.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/authenticator_type.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/backward_compatibility.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/binding_converters.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/config_utils.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/connection/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/connection/connection.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/connection/connection_types.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/connection/constants.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/connection/decorators.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/connection/freezable_proxy.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/connection/queries.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/cursor/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/cursor/cursor_types.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/cursor/decorators.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/cursor/query_result.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/cursor/query_result_waiter.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/cursor/result_metadata.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/cursor/result_set_wrapper.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/decorators.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/error_kinds.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/errorcode.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/errorhandler.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/logging/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/logging/config.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/logging/core_logger.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/logging/native_extension_logger.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/logout_config_mapping.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/protobuf_gen/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/protobuf_gen/proto_exception.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/result_batch.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/snowflake_restful.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/snowpark_backcompat_helpers.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/sqlstate.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/statement_utils.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/text_utils.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/type_codes.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/_internal/write_pandas_operation.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/README.md +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/connection/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/cursor/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/cursor/_dict_cursor.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/cursor/_result_set_wrapper.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/cursor/_snowflake_cursor.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/pandas_tools.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/aio/result_batch.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/auth/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/auth/workload_identity.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/compat.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/config_manager.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/connection/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/constants.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/cursor/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/cursor/_chunked_download_reader.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/cursor/_dict_cursor.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/cursor/_result_set_wrapper.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/cursor/_snowflake_cursor.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/description.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/errors.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/network.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/pandas_tools.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/py.typed +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/result_batch.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/telemetry.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/time_util.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/types.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/src/snowflake/connector/util_text.py +0 -0
- {snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/tests/README.md +0 -0
|
@@ -2434,15 +2434,6 @@ dependencies = [
|
|
|
2434
2434
|
"either",
|
|
2435
2435
|
]
|
|
2436
2436
|
|
|
2437
|
-
[[package]]
|
|
2438
|
-
name = "itertools"
|
|
2439
|
-
version = "0.11.0"
|
|
2440
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2441
|
-
checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
|
|
2442
|
-
dependencies = [
|
|
2443
|
-
"either",
|
|
2444
|
-
]
|
|
2445
|
-
|
|
2446
2437
|
[[package]]
|
|
2447
2438
|
name = "itertools"
|
|
2448
2439
|
version = "0.14.0"
|
|
@@ -3646,7 +3637,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
3646
3637
|
checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
|
|
3647
3638
|
dependencies = [
|
|
3648
3639
|
"anyhow",
|
|
3649
|
-
"itertools 0.
|
|
3640
|
+
"itertools 0.10.5",
|
|
3650
3641
|
"proc-macro2",
|
|
3651
3642
|
"quote",
|
|
3652
3643
|
"syn 2.0.117",
|
|
@@ -4230,9 +4221,7 @@ dependencies = [
|
|
|
4230
4221
|
|
|
4231
4222
|
[[package]]
|
|
4232
4223
|
name = "rustls-webpki"
|
|
4233
|
-
version = "0.103.
|
|
4234
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4235
|
-
checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb"
|
|
4224
|
+
version = "0.103.16"
|
|
4236
4225
|
dependencies = [
|
|
4237
4226
|
"aws-lc-rs",
|
|
4238
4227
|
"ring",
|
|
@@ -4423,6 +4412,7 @@ dependencies = [
|
|
|
4423
4412
|
"async-trait",
|
|
4424
4413
|
"aws-config",
|
|
4425
4414
|
"aws-credential-types",
|
|
4415
|
+
"aws-lc-fips-sys",
|
|
4426
4416
|
"aws-lc-rs",
|
|
4427
4417
|
"aws-runtime",
|
|
4428
4418
|
"aws-sdk-s3",
|
|
@@ -4484,6 +4474,7 @@ dependencies = [
|
|
|
4484
4474
|
"rustls",
|
|
4485
4475
|
"rustls-native-certs",
|
|
4486
4476
|
"rustls-pemfile",
|
|
4477
|
+
"rustls-webpki",
|
|
4487
4478
|
"scopeguard",
|
|
4488
4479
|
"serde",
|
|
4489
4480
|
"serde_json",
|
|
@@ -5599,9 +5590,9 @@ dependencies = [
|
|
|
5599
5590
|
|
|
5600
5591
|
[[package]]
|
|
5601
5592
|
name = "webpki-roots"
|
|
5602
|
-
version = "1.0.
|
|
5593
|
+
version = "1.0.10"
|
|
5603
5594
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5604
|
-
checksum = "
|
|
5595
|
+
checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9"
|
|
5605
5596
|
dependencies = [
|
|
5606
5597
|
"rustls-pki-types",
|
|
5607
5598
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: snowflake-connector-python
|
|
3
|
-
Version: 5.0
|
|
3
|
+
Version: 5.1.0
|
|
4
4
|
Summary: Snowflake DB driver for Python
|
|
5
5
|
Project-URL: Homepage, https://github.com/snowflakedb/drivers
|
|
6
6
|
Project-URL: Bug Reports, https://github.com/snowflakedb/drivers/issues
|
|
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
|
|
19
20
|
Classifier: Topic :: Database
|
|
20
21
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
22
|
Requires-Python: >=3.11
|
|
@@ -32,7 +33,7 @@ Requires-Dist: types-protobuf; extra == 'dev'
|
|
|
32
33
|
Requires-Dist: types-pytz; extra == 'dev'
|
|
33
34
|
Provides-Extra: pandas
|
|
34
35
|
Requires-Dist: pandas<3.0.0,>=1.0.0; (python_version < '3.13') and extra == 'pandas'
|
|
35
|
-
Requires-Dist: pandas
|
|
36
|
+
Requires-Dist: pandas<3.0.0,>=2.1.2; (python_version >= '3.13') and extra == 'pandas'
|
|
36
37
|
Requires-Dist: pyarrow>=14.0.1; extra == 'pandas'
|
|
37
38
|
Provides-Extra: pyarrow
|
|
38
39
|
Requires-Dist: pyarrow>=14.0.1; extra == 'pyarrow'
|
|
@@ -58,9 +59,6 @@ Description-Content-Type: text/markdown
|
|
|
58
59
|
|
|
59
60
|
# Snowflake Connector for Python
|
|
60
61
|
|
|
61
|
-
> [!CAUTION]
|
|
62
|
-
> This version of the driver is in public preview and is not ready for use with production data and may be unstable.
|
|
63
|
-
|
|
64
62
|
This package includes the Snowflake Connector for Python, which conforms to the [Python DB API 2.0](https://www.python.org/dev/peps/pep-0249/) specification.
|
|
65
63
|
|
|
66
64
|
The Snowflake Connector for Python provides an interface for developing Python
|
|
@@ -187,4 +185,4 @@ PYTHON_REFERENCE_DRIVER_VERSION='==4.3.0' hatch run reference:test
|
|
|
187
185
|
## References
|
|
188
186
|
|
|
189
187
|
- [PEP 249 - Python Database API Specification v2.0](https://peps.python.org/pep-0249/)
|
|
190
|
-
- [Python Database API Specification v2.0](https://www.python.org/dev/peps/pep-0249/)
|
|
188
|
+
- [Python Database API Specification v2.0](https://www.python.org/dev/peps/pep-0249/)
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
# Snowflake Connector for Python
|
|
2
2
|
|
|
3
|
-
> [!CAUTION]
|
|
4
|
-
> This version of the driver is in public preview and is not ready for use with production data and may be unstable.
|
|
5
|
-
|
|
6
3
|
This package includes the Snowflake Connector for Python, which conforms to the [Python DB API 2.0](https://www.python.org/dev/peps/pep-0249/) specification.
|
|
7
4
|
|
|
8
5
|
The Snowflake Connector for Python provides an interface for developing Python
|
|
@@ -129,4 +126,4 @@ PYTHON_REFERENCE_DRIVER_VERSION='==4.3.0' hatch run reference:test
|
|
|
129
126
|
## References
|
|
130
127
|
|
|
131
128
|
- [PEP 249 - Python Database API Specification v2.0](https://peps.python.org/pep-0249/)
|
|
132
|
-
- [Python Database API Specification v2.0](https://www.python.org/dev/peps/pep-0249/)
|
|
129
|
+
- [Python Database API Specification v2.0](https://www.python.org/dev/peps/pep-0249/)
|
|
@@ -125,15 +125,38 @@ class BuildHook(BuildHookInterface):
|
|
|
125
125
|
build_data["pure_python"] = False
|
|
126
126
|
build_data["infer_tag"] = True
|
|
127
127
|
|
|
128
|
+
def _fips_requested(self) -> bool:
|
|
129
|
+
"""Return whether this build should link the FIPS module.
|
|
130
|
+
|
|
131
|
+
``SNOWFLAKE_FIPS`` applies only when the project root is an unpacked
|
|
132
|
+
sdist (it carries ``PKG-INFO``). A checkout, an editable install, or a
|
|
133
|
+
wheel build fails when the variable is set.
|
|
134
|
+
"""
|
|
135
|
+
if os.environ.get("SNOWFLAKE_FIPS", "").lower() not in ("1", "true"):
|
|
136
|
+
return False
|
|
137
|
+
if (Path(self.root) / "PKG-INFO").is_file():
|
|
138
|
+
return True
|
|
139
|
+
raise RuntimeError(
|
|
140
|
+
"SNOWFLAKE_FIPS is set, but this build is not an unpacked sdist "
|
|
141
|
+
"(PKG-INFO is absent). The variable applies only to an sdist install."
|
|
142
|
+
)
|
|
143
|
+
|
|
128
144
|
def _select_core_extension(self, build_data: dict[str, Any]) -> None:
|
|
129
145
|
"""Force-include only the sf_core_python binary matching this interpreter."""
|
|
130
146
|
ext_name = f"sf_core_python{sysconfig.get_config_var('EXT_SUFFIX')}"
|
|
131
|
-
|
|
147
|
+
core_dir = Path(self.root) / "src" / "snowflake" / "connector" / "_core"
|
|
148
|
+
core_ext = core_dir / ext_name
|
|
132
149
|
if not core_ext.is_file():
|
|
133
150
|
return
|
|
134
|
-
build_data.setdefault("force_include", {})
|
|
135
|
-
|
|
136
|
-
|
|
151
|
+
force_include = build_data.setdefault("force_include", {})
|
|
152
|
+
force_include[str(core_ext)] = f"snowflake/connector/_core/{ext_name}"
|
|
153
|
+
# macOS and Windows sdist installs link shared aws-lc libraries that
|
|
154
|
+
# must ship beside the extension. Linux links that module statically.
|
|
155
|
+
if not self._fips_requested():
|
|
156
|
+
return
|
|
157
|
+
for lib in core_dir.iterdir():
|
|
158
|
+
if lib.is_file() and "aws_lc_fips" in lib.name and lib.suffix in (".dylib", ".so", ".dll"):
|
|
159
|
+
force_include[str(lib)] = f"snowflake/connector/_core/{lib.name}"
|
|
137
160
|
|
|
138
161
|
def _generate_protobuf(self) -> None:
|
|
139
162
|
"""Generate Python protobuf code using the Rust proto_generator binary."""
|
|
@@ -146,8 +169,7 @@ class BuildHook(BuildHookInterface):
|
|
|
146
169
|
|
|
147
170
|
if not proto_input.exists():
|
|
148
171
|
raise RuntimeError(
|
|
149
|
-
f"Proto file not found at {proto_input}. "
|
|
150
|
-
"Cannot build package without protobuf definitions."
|
|
172
|
+
f"Proto file not found at {proto_input}. Cannot build package without protobuf definitions."
|
|
151
173
|
)
|
|
152
174
|
|
|
153
175
|
cargo_manifest = python_dir / "Cargo.toml"
|
|
@@ -156,8 +178,7 @@ class BuildHook(BuildHookInterface):
|
|
|
156
178
|
# Rust toolchain), fall back to previously generated files if they exist.
|
|
157
179
|
if any(protobuf_gen_dir.glob("*_pb2.py")):
|
|
158
180
|
warnings.warn(
|
|
159
|
-
"Cargo.toml not found; skipping protobuf regeneration. "
|
|
160
|
-
"Using previously generated protobuf files.",
|
|
181
|
+
"Cargo.toml not found; skipping protobuf regeneration. Using previously generated protobuf files.",
|
|
161
182
|
stacklevel=1,
|
|
162
183
|
)
|
|
163
184
|
return
|
|
@@ -315,11 +336,13 @@ class BuildHook(BuildHookInterface):
|
|
|
315
336
|
# Suppress warnings for vendored/generated C files (Unix only, GCC/Clang flags)
|
|
316
337
|
if is_unix and src.endswith(vendored_c_files):
|
|
317
338
|
extra_postargs = list(extra_postargs)
|
|
318
|
-
extra_postargs.extend(
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
339
|
+
extra_postargs.extend(
|
|
340
|
+
[
|
|
341
|
+
"-Wno-unused-variable",
|
|
342
|
+
"-Wno-unused-const-variable",
|
|
343
|
+
"-Wno-unreachable-code",
|
|
344
|
+
]
|
|
345
|
+
)
|
|
323
346
|
return original_compile(obj, src, ext_arg, cc_args, extra_postargs, pp_opts)
|
|
324
347
|
|
|
325
348
|
self.compiler._compile = new_compile
|
|
@@ -344,7 +367,6 @@ class BuildHook(BuildHookInterface):
|
|
|
344
367
|
Produces a version-tagged ``sf_core_python.<EXT_SUFFIX>`` native
|
|
345
368
|
extension (e.g. ``.cpython-313-darwin.so`` / ``.cp313-win_amd64.pyd``).
|
|
346
369
|
"""
|
|
347
|
-
|
|
348
370
|
if os.environ.get("SKIP_CORE_BUILD", "").lower() in self.POSITIVE_VALUES:
|
|
349
371
|
return
|
|
350
372
|
|
|
@@ -380,6 +402,9 @@ class BuildHook(BuildHookInterface):
|
|
|
380
402
|
if os.environ.get("SF_PERF_METRICS", "").lower() in ("1", "true"):
|
|
381
403
|
extra_cargo_args.extend(["--features", "sf_core/perf_timing"])
|
|
382
404
|
|
|
405
|
+
if self._fips_requested():
|
|
406
|
+
extra_cargo_args.extend(["--features", "fips"])
|
|
407
|
+
|
|
383
408
|
# Use a stable target dir when CORE_CARGO_TARGET_DIR is set (enables
|
|
384
409
|
# incremental Rust compilation and CI caching). Otherwise fall back to a
|
|
385
410
|
# temporary directory that is cleaned up after the build.
|
|
@@ -461,9 +486,24 @@ class BuildHook(BuildHookInterface):
|
|
|
461
486
|
found_core = True
|
|
462
487
|
break
|
|
463
488
|
if not found_core:
|
|
464
|
-
raise Exception(
|
|
465
|
-
|
|
466
|
-
|
|
489
|
+
raise Exception(f"No sf_core_python shared library (.dll/.so/.dylib) found in {release_dir}")
|
|
490
|
+
|
|
491
|
+
# aws-lc-fips-sys emits its shared libraries under release/build/, not
|
|
492
|
+
# release/. Copy those by name; do not bundle the rest of the tree.
|
|
493
|
+
copied_fips: set[str] = set()
|
|
494
|
+
if self._fips_requested():
|
|
495
|
+
for lib in release_dir.rglob("*"):
|
|
496
|
+
if not lib.is_file() or "aws_lc_fips" not in lib.name:
|
|
497
|
+
continue
|
|
498
|
+
if lib.suffix not in (".dylib", ".so", ".dll") or lib.name in copied_fips:
|
|
499
|
+
continue
|
|
500
|
+
copied_fips.add(lib.name)
|
|
501
|
+
lib_tmp = target_dir / (lib.name + ".tmp")
|
|
502
|
+
shutil.copy2(lib, lib_tmp)
|
|
503
|
+
os.replace(lib_tmp, target_dir / lib.name)
|
|
504
|
+
for old in target_dir.iterdir():
|
|
505
|
+
if old.is_file() and "aws_lc_fips" in old.name and old.name not in copied_fips:
|
|
506
|
+
old.unlink()
|
|
467
507
|
|
|
468
508
|
# No OpenSSL DLLs are bundled next to sf_core_python. The driver
|
|
469
509
|
# stopped linking OpenSSL entirely; `openssl` survives only as an
|
|
@@ -302,6 +302,7 @@ message WrapperIdentity {
|
|
|
302
302
|
optional string language_version = 4;
|
|
303
303
|
optional string language_compiler = 5;
|
|
304
304
|
optional string release_type = 6;
|
|
305
|
+
optional string application_path = 7;
|
|
305
306
|
}
|
|
306
307
|
|
|
307
308
|
message ConnectionInitRequest {
|
|
@@ -1029,15 +1030,13 @@ message ConfigGetPathsResponse {
|
|
|
1029
1030
|
string connections_file = 2;
|
|
1030
1031
|
}
|
|
1031
1032
|
|
|
1032
|
-
// Reports this
|
|
1033
|
-
|
|
1034
|
-
message DriverGetTlsStatusRequest {}
|
|
1033
|
+
// Reports whether this process is the FIPS driver. Does not open a connection.
|
|
1034
|
+
message DriverGetFipsStatusRequest {}
|
|
1035
1035
|
|
|
1036
|
-
message
|
|
1037
|
-
//
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
bool fips_tls_build_enabled = 2;
|
|
1036
|
+
message DriverGetFipsStatusResponse {
|
|
1037
|
+
// True when this binary was built with the fips feature and its linked TLS
|
|
1038
|
+
// provider is in FIPS mode. A standard build returns false.
|
|
1039
|
+
bool is_fips = 1;
|
|
1041
1040
|
}
|
|
1042
1041
|
|
|
1043
1042
|
// =============================================================================
|
|
@@ -1064,6 +1063,8 @@ message WifCreateAttestationRequest {
|
|
|
1064
1063
|
// of the default pre-signed GetCallerIdentity attestation. Takes precedence
|
|
1065
1064
|
// over SNOWFLAKE_ENABLE_AWS_WIF_OUTBOUND_TOKEN.
|
|
1066
1065
|
optional bool aws_use_outbound_token = 5;
|
|
1066
|
+
// AWS STS hostname override. Empty/unset uses the regional STS default.
|
|
1067
|
+
optional string wif_host = 6;
|
|
1067
1068
|
}
|
|
1068
1069
|
|
|
1069
1070
|
message WifCreateAttestationResponse {
|
|
@@ -1107,7 +1108,7 @@ message TelemetrySendLogRequest {
|
|
|
1107
1108
|
service DatabaseDriver {
|
|
1108
1109
|
option (service_error) = "DriverException";
|
|
1109
1110
|
// Available without a database or connection handle, even in standard builds.
|
|
1110
|
-
rpc
|
|
1111
|
+
rpc DriverGetFipsStatus(DriverGetFipsStatusRequest) returns (DriverGetFipsStatusResponse);
|
|
1111
1112
|
|
|
1112
1113
|
// Database operations
|
|
1113
1114
|
rpc DatabaseNew(DatabaseNewRequest) returns (DatabaseNewResponse);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["hatchling", "editables", "Cython", "setuptools", "mypy-protobuf~=5.0"]
|
|
2
|
+
requires = ["hatchling", "editables", "Cython>=3.1", "setuptools", "mypy-protobuf~=5.0"]
|
|
3
3
|
build-backend = "hatchling.build"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
@@ -20,6 +20,7 @@ classifiers = [
|
|
|
20
20
|
"Programming Language :: Python :: 3.12",
|
|
21
21
|
"Programming Language :: Python :: 3.13",
|
|
22
22
|
"Programming Language :: Python :: 3.14",
|
|
23
|
+
"Programming Language :: Python :: Free Threading :: 2 - Beta",
|
|
23
24
|
]
|
|
24
25
|
requires-python = ">=3.11"
|
|
25
26
|
dependencies = [
|
|
@@ -47,7 +48,7 @@ pyarrow = [
|
|
|
47
48
|
pandas = [
|
|
48
49
|
"pyarrow>=14.0.1",
|
|
49
50
|
"pandas>=1.0.0,<3.0.0; python_version < '3.13'",
|
|
50
|
-
"pandas>=2.1.2; python_version >= '3.13'",
|
|
51
|
+
"pandas>=2.1.2,<3.0.0; python_version >= '3.13'",
|
|
51
52
|
]
|
|
52
53
|
test = [
|
|
53
54
|
"pytest>=8",
|
|
@@ -102,6 +103,7 @@ exclude = [
|
|
|
102
103
|
"src/snowflake/connector/_internal/nanoarrow_cpp/scripts",
|
|
103
104
|
# Exclude Rust build artifacts
|
|
104
105
|
"sf_core/target/",
|
|
106
|
+
"sf_core/third_party/rustls-webpki/target/",
|
|
105
107
|
"python_bridge/target/",
|
|
106
108
|
"sf_params_spec/target/",
|
|
107
109
|
"sf_types/target/",
|
|
@@ -110,6 +112,9 @@ exclude = [
|
|
|
110
112
|
"sf_core/tests/e2e/",
|
|
111
113
|
"sf_core/tests/integration/",
|
|
112
114
|
"sf_core/tests/*.rs",
|
|
115
|
+
# Vendored rustls-webpki unit-test fixtures. The library build does not read them.
|
|
116
|
+
"sf_core/third_party/rustls-webpki/tests/",
|
|
117
|
+
"sf_core/third_party/rustls-webpki/third-party/",
|
|
113
118
|
]
|
|
114
119
|
|
|
115
120
|
# Individual files need force-include (file symlinks are not dereferenced)
|
|
@@ -117,6 +122,7 @@ exclude = [
|
|
|
117
122
|
"Cargo.toml.sdist" = "Cargo.toml"
|
|
118
123
|
"Cargo.lock.sdist" = "Cargo.lock"
|
|
119
124
|
"../build_common.rs" = "build_common.rs"
|
|
125
|
+
"../rust-toolchain.toml" = "rust-toolchain.toml"
|
|
120
126
|
|
|
121
127
|
[tool.hatch.build.targets.wheel]
|
|
122
128
|
packages = ["src/snowflake"]
|
|
@@ -289,7 +295,7 @@ fix = [
|
|
|
289
295
|
skip-install = false
|
|
290
296
|
dev-mode = true
|
|
291
297
|
dependencies = [
|
|
292
|
-
"Cython",
|
|
298
|
+
"Cython>=3.1",
|
|
293
299
|
"setuptools",
|
|
294
300
|
]
|
|
295
301
|
|
|
@@ -300,7 +306,7 @@ PARAMETER_PATH = "{env:PARAMETER_PATH:../parameters.json}"
|
|
|
300
306
|
SKIP_CORE_BUILD = "{env:SKIP_CORE_BUILD:1}"
|
|
301
307
|
|
|
302
308
|
[[tool.hatch.envs.dev.matrix]]
|
|
303
|
-
python = ["3.11", "3.12", "3.13", "3.14"]
|
|
309
|
+
python = ["3.11", "3.12", "3.13", "3.14", "3.14t"]
|
|
304
310
|
|
|
305
311
|
[tool.hatch.envs.dev.scripts]
|
|
306
312
|
# Per-test retries come from addopts --reruns 2 (not a second whole-suite run).
|
|
@@ -323,7 +329,7 @@ skip-install = true
|
|
|
323
329
|
dev-mode = false
|
|
324
330
|
|
|
325
331
|
[[tool.hatch.envs.test.matrix]]
|
|
326
|
-
python = ["3.11", "3.12", "3.13", "3.14"]
|
|
332
|
+
python = ["3.11", "3.12", "3.13", "3.14", "3.14t"]
|
|
327
333
|
|
|
328
334
|
[tool.hatch.envs.test.scripts]
|
|
329
335
|
# Install from wheel
|
|
@@ -345,7 +351,7 @@ no_mfa = "pytest tests/e2e/authentication/test_user_password.py -m requires_no_m
|
|
|
345
351
|
template = "test"
|
|
346
352
|
|
|
347
353
|
[[tool.hatch.envs.test-native-arrow.matrix]]
|
|
348
|
-
python = ["3.13"]
|
|
354
|
+
python = ["3.13", "3.14t"]
|
|
349
355
|
|
|
350
356
|
[tool.hatch.envs.test-native-arrow.env-vars]
|
|
351
357
|
SNOWFLAKE_TEST_USE_CORE_ARROW = "1"
|
|
@@ -356,7 +362,7 @@ template = "test"
|
|
|
356
362
|
features = ["test", "dev", "pandas"]
|
|
357
363
|
|
|
358
364
|
[[tool.hatch.envs.test-pandas.matrix]]
|
|
359
|
-
python = ["3.11", "3.12", "3.13", "3.14"]
|
|
365
|
+
python = ["3.11", "3.12", "3.13", "3.14", "3.14t"]
|
|
360
366
|
|
|
361
367
|
[tool.hatch.envs.test-pandas.scripts]
|
|
362
368
|
cov = "pytest tests/e2e/pandas tests/e2e/numpy --cov=src/snowflake --cov-report=xml --cov-report=html {args}"
|
|
@@ -365,7 +371,7 @@ cov = "pytest tests/e2e/pandas tests/e2e/numpy --cov=src/snowflake --cov-report=
|
|
|
365
371
|
[tool.hatch.envs.packaging]
|
|
366
372
|
features = ["test"]
|
|
367
373
|
installer = "uv"
|
|
368
|
-
extra-dependencies = ["build"]
|
|
374
|
+
extra-dependencies = ["build", "hatchling"]
|
|
369
375
|
|
|
370
376
|
[[tool.hatch.envs.packaging.matrix]]
|
|
371
377
|
python = ["3.13"]
|
{snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/Cargo.toml
RENAMED
|
@@ -11,12 +11,7 @@ crate-type = ["cdylib", "rlib"]
|
|
|
11
11
|
default = ["extension-module", "native-arrow"]
|
|
12
12
|
extension-module = ["pyo3/extension-module"]
|
|
13
13
|
native-arrow = ["dep:arrow", "dep:snafu", "dep:error_trace", "dep:sf_types", "dep:chrono", "pyo3/chrono"]
|
|
14
|
-
|
|
15
|
-
# aws-lc-sys. Despite the name it is no longer TLS-only: JWT signing, DPoP,
|
|
16
|
-
# stage file encryption and private-key parsing now run on the same module. The
|
|
17
|
-
# name and the caveat both stand -- see the `fips-tls` feature comment in
|
|
18
|
-
# sf_core/Cargo.toml for why this is still not a FIPS artifact on its own.
|
|
19
|
-
fips-tls = ["sf_core/fips-tls"]
|
|
14
|
+
fips = ["sf_core/fips"]
|
|
20
15
|
|
|
21
16
|
[dependencies]
|
|
22
17
|
arrow = { version = ">=54.0.0, <59", features = ["ffi"], optional = true }
|
{snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/build.rs
RENAMED
|
@@ -2,8 +2,11 @@ fn main() {
|
|
|
2
2
|
// On macOS, Python extension modules leave Python symbols undefined at
|
|
3
3
|
// link time - they are resolved at load time by the interpreter. Without
|
|
4
4
|
// this flag the linker rejects the build with "symbol(s) not found".
|
|
5
|
+
// FIPS builds also link shared aws-lc libraries whose install name is
|
|
6
|
+
// `@rpath`, so the extension looks beside itself.
|
|
5
7
|
if std::env::var("CARGO_CFG_TARGET_OS").as_deref() == Ok("macos") {
|
|
6
8
|
println!("cargo:rustc-cdylib-link-arg=-undefined");
|
|
7
9
|
println!("cargo:rustc-cdylib-link-arg=dynamic_lookup");
|
|
10
|
+
println!("cargo:rustc-cdylib-link-arg=-Wl,-rpath,@loader_path");
|
|
8
11
|
}
|
|
9
12
|
}
|
{snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/python_bridge/src/lib.rs
RENAMED
|
@@ -262,7 +262,7 @@ fn native_arrow_enabled() -> bool {
|
|
|
262
262
|
cfg!(feature = "native-arrow")
|
|
263
263
|
}
|
|
264
264
|
|
|
265
|
-
#[pymodule]
|
|
265
|
+
#[pymodule(gil_used = false)]
|
|
266
266
|
fn sf_core_python(m: &Bound<'_, PyModule>) -> PyResult<()> {
|
|
267
267
|
m.add_function(wrap_pyfunction!(init, m)?)?;
|
|
268
268
|
m.add_function(wrap_pyfunction!(log_event, m)?)?;
|
{snowflake_connector_python-5.0.0rc5 → snowflake_connector_python-5.1.0}/sf_core/CHANGELOG.md
RENAMED
|
@@ -4,13 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
New features:
|
|
6
6
|
|
|
7
|
+
- Added a `wif_host` connection parameter that sets the AWS STS endpoint for Workload Identity Federation, including the pre-signed GetCallerIdentity request, AssumeRole impersonation, and outbound GetWebIdentityToken; unset keeps the AWS SDK regional STS hostname. (snowflakedb/drivers#2439)
|
|
8
|
+
- Added JDBC aliases `wifHost`, `workloadIdentityHost`, and `workload_identity_host`, a Python alias `workload_identity_host`, and a Node.js alias `wifHost` for the `wif_host` connection parameter. (snowflakedb/drivers#2439)
|
|
7
9
|
- Added `workload_identity_azure_client_id` so Azure WIF can select a user-assigned managed identity from a connection option, with `MANAGED_IDENTITY_CLIENT_ID` as fallback. (snowflakedb/drivers#2226)
|
|
8
10
|
- Added PAT-with-external-session authentication (`authenticator=PAT_WITH_EXTERNAL_SESSION`) so a programmatic access token plus `external_session_id` can reuse a server-side session without a login request, sending `Authorization: Bearer` and `X-Snowflake-External-Session-ID` on subsequent requests. (snowflakedb/drivers#1996)
|
|
9
|
-
- Added
|
|
11
|
+
- Added `APPLICATION_PATH` to the login `CLIENT_ENVIRONMENT` payload. Wrappers pass it through `WrapperIdentity.application_path`. An unset or blank path is reported as `UNKNOWN`. (snowflakedb/drivers#2535)
|
|
12
|
+
- Added a connection-free status call that reports whether this process is the FIPS driver. Python `get_fips_status()`, JDBC `getFipsStatus()`, Node.js `getFipsStatus()`, .NET `GetFipsStatus()`, and ODBC `SFGetFipsStatus` return the same `is_fips` value. (snowflakedb/drivers#2562)
|
|
10
13
|
- Added Duo push continuation for username/password MFA so a pending Duo challenge can wait for device approval and then finish login. (snowflakedb/drivers#2021)
|
|
11
14
|
- Added a Python `platform_detection_timeout_seconds` connection parameter that limits each cloud-metadata platform check. Setting it to `0` skips those HTTP and STS queries and keeps only environment-based detection, matching the legacy Python connector. (snowflakedb/drivers#2186)
|
|
12
15
|
- Added Azure blob Content-MD5 on PUT (single Put Blob and Put Block List), hashed in the same streaming pass as SHA-256 and over ciphertext when client-side encryption is on. (snowflakedb/drivers#2232)
|
|
13
|
-
- Added an opt-in `fips
|
|
16
|
+
- Added an opt-in `fips` build that routes TLS through AWS-LC-FIPS and fails closed if a non-FIPS crypto provider is active. (snowflakedb/drivers#2055)
|
|
17
|
+
- Added a Python source-distribution install with `SNOWFLAKE_FIPS=1` that links the FIPS module, so `snowflake.connector.get_fips_status()` reports `is_fips` as true. (snowflakedb/drivers#2489)
|
|
14
18
|
- Added `IS_FIPS` to the login `CLIENT_ENVIRONMENT` payload so Snowflake can tell whether the driver's linked TLS provider is FIPS-approved. (snowflakedb/drivers#2384)
|
|
15
19
|
- Added a `put_compress_level` connection setting that selects the gzip level (0–9) used when PUT AUTO_COMPRESS rewrites a file. (snowflakedb/drivers#2083)
|
|
16
20
|
- Added a `put_tempdir` connection setting that selects the directory for gzip tempfiles created by PUT AUTO_COMPRESS. Unset and empty values keep the process temp directory. Nested directories are created. (snowflakedb/drivers#2084)
|
|
@@ -48,10 +52,20 @@ New features:
|
|
|
48
52
|
- Added `RustTransport::database_driver()` so an in-process wrapper can call `result_set_get_async_stream` without boxing the result as a C stream pointer. (snowflakedb/drivers#1949)
|
|
49
53
|
- Added file-level parallelism to PUT and GET: a multi-file transfer now uploads or downloads several files at once instead of one at a time, bounded by the statement's `PARALLEL` value, and result rows keep their original file order. Fail-fast now lets files already in flight (up to `PARALLEL` of them) finish and land on the stage after the first error, instead of stopping after only the current file. (snowflakedb/drivers#1451)
|
|
50
54
|
- Added the `FILE` (18), `INTERVAL_YEAR_MONTH` (19) and `INTERVAL_DAY_TIME` (20) type codes to the Python type-code table, matching legacy `snowflake-connector-python`. Columns of these types previously reported as `TEXT` in `cursor.description`. (snowflakedb/drivers#1697)
|
|
55
|
+
- Added `ApiError::terminates_session()` so an in-process wrapper can tell from the error alone that `connection_is_usable` now reports the connection as terminated. (snowflakedb/drivers#2696)
|
|
51
56
|
|
|
52
57
|
Changes:
|
|
53
58
|
|
|
54
|
-
- Changed
|
|
59
|
+
- Changed login to omit `CLIENT_SESSION_KEEP_ALIVE` and `CLIENT_PREFETCH_THREADS` unless the caller sets them. (snowflakedb/drivers#2728)
|
|
60
|
+
- Changed login to send `CLIENT_SESSION_KEEP_ALIVE`, `CLIENT_PREFETCH_THREADS`, `QUERY_TAG`, and a heartbeat frequency clamped to 900–3600 seconds as session parameters, and to send a set `validate_default_parameters` value, true or false, as `CLIENT_VALIDATE_DEFAULT_PARAMETERS`, leaving that parameter off the login request when it is unset. (snowflakedb/drivers#2722)
|
|
61
|
+
- Improved connection setup time by loading system root certificates once per driver instead of on every connection. OS trust changes after the first connection apply on process restart. (snowflakedb/drivers#2586)
|
|
62
|
+
- Changed a Python build with `SNOWFLAKE_FIPS` set outside an unpacked source distribution to fail instead of linking the standard module. (snowflakedb/drivers#2489)
|
|
63
|
+
- Standardized the opt-in build feature as `fips` and build/test environment variables as `SF_CORE_FIPS` and `SF_CORE_EXPECT_FIPS`. (SNOW-3927213)
|
|
64
|
+
- Pinned `fips` builds to AWS-LC FIPS 3.6.0 (`aws-lc-fips-sys 0.13.17`) and added runtime module-version diagnostics and a FIPS smoke assertion. (SNOW-3927213)
|
|
65
|
+
- Changed `fips` builds to reject `verify_certificates=false` and `tls_skip_verify=true`; standard builds still allow these insecure settings. Consequently, `NODE_TLS_REJECT_UNAUTHORIZED=0` now fails connection in FIPS Node builds. HTTPS CRL downloads now use the linked crypto module explicitly, preserving default trust and proxy behavior. (SNOW-3927213)
|
|
66
|
+
- Changed a `fips` build to reject a private key encrypted with 3DES-CBC and to name `openssl pkcs8 -topk8 -v2 aes-256-cbc` as the conversion, while a standard build still unwraps those keys (snowflakedb/drivers#2488).
|
|
67
|
+
- Expanded the `fips` smoke lane to cover in-module crypto unit paths, negotiated TLS suites, AES-encrypted key-pair login, rejection of 3DES and legacy PEM keys, and multi-chunk query downloads on AWS, Azure and GCP. (SNOW-3927213)
|
|
68
|
+
- Changed the Python connector so it reads `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` unless `use_proxy_env` is set to false. (snowflakedb/drivers#2579)
|
|
55
69
|
- Changed platform detection to run by default, once per driver in the background, and to report the result as in-band `platform_detection_status` telemetry when a session closes instead of in the login request. Connect never waits for detection, and a session that closes before detection finishes reports nothing. Each probe is limited to 2 seconds, so `platform_detection_timeout_seconds` is still accepted but no longer has an effect. `SNOWFLAKE_EXPERIMENTAL_ENABLE_PLATFORM_DETECTION` is removed; `SNOWFLAKE_DISABLE_PLATFORM_DETECTION` still turns detection off. (snowflakedb/drivers#2399)
|
|
56
70
|
- Changed verified connection and cloud-storage TLS clients to select the configured crypto module's rustls provider explicitly, including CRL-enabled clients, instead of depending on process-global provider initialization order. Inverted TLS version bounds now fail rather than restoring default protocols. (snowflakedb/drivers#1356)
|
|
57
71
|
- Routed first-party SHA-256 hashing for CRL cache filenames, token-cache keys, S3 credential fingerprints, and certificate-name map keys through AWS-LC. Their stored key formats remain unchanged. (snowflakedb/drivers#1352)
|
|
@@ -61,10 +75,17 @@ Changes:
|
|
|
61
75
|
- Changed `client_store_temporary_credential` to default to true when the caller has not set it. An explicit value always wins. (snowflakedb/drivers#2057)
|
|
62
76
|
- Added a `validate_session_token` wrapper preset, on for every wrapper but Node.js. When off, a login with pre-acquired session and master tokens adopts the pair as handed over instead of proving it with a token-request RENEW first, so the pair is not rotated and adopting it costs no round-trip. Such a connection has no server-reported session id and therefore emits no per-operation telemetry; authentication, queries and logout are unaffected. This restores the legacy `snowflake-connector-nodejs` `deserializeConnection` contract. (snowflakedb/drivers#2042)
|
|
63
77
|
- Changed the session-parameter cache to read `ALTER SESSION SET` values out of the submitted SQL for Python only. Every other wrapper now updates the cache from the parameters a query response carries, so `ConnectionGetParameter` and `ConnectionGetAllParameters` no longer report a parameter the server did not echo back. (snowflakedb/drivers#2080)
|
|
78
|
+
- Changed TLS certificate checks for RUSTSEC-2026-0382 by updating bundled root certificates and distrusting compromised intermediate Certificate Authority (CA) certificates. (snowflakedb/drivers#2859)
|
|
64
79
|
- Changed the message on a failed login to carry the server's own text: `ApiError::Login` renders as `Failed to login: <server text>` instead of a bare `Failed to login`, and for coded server errors as `Failed to login: Login error: <server text>, code: <code>`. The server sentence previously reached applications only through the error trace. This is what `DriverException.message` carries; error kinds, vendor codes and SQLSTATEs are unchanged. (snowflakedb/drivers#1881)
|
|
65
80
|
|
|
66
81
|
Bug fixes:
|
|
67
82
|
|
|
83
|
+
- Fixed statement-level TIMEZONE overrides so a registered TIMEZONE can be set on a statement and is sent on the query request. (snowflakedb/drivers#2753)
|
|
84
|
+
- Fixed Python `Cursor.request_id` to return a `uuid.UUID` when a request id is present and `None` otherwise. `Cursor._request_id` returns that same value and warns on use. (snowflakedb/drivers#2594)
|
|
85
|
+
- Fixed PAT_WITH_EXTERNAL_SESSION connections always failing `connection_heartbeat` / `isValid` checks because the driver sent a Snowflake session-token heartbeat instead of `Authorization: Bearer` and `X-Snowflake-External-Session-ID`. (snowflakedb/drivers#2600)
|
|
86
|
+
- Fixed Python `cursor.executemany()` so it accepts `num_statements` and applies that count to each statement, matching the v4 driver. (snowflakedb/drivers#2541)
|
|
87
|
+
- Fixed `sf.odbc.ini` discovery treating a candidate path that is a directory (or otherwise not a regular file) as a match and aborting the search, instead of skipping it and trying the next candidate; a `SF_ODBC_INI` pointing at a directory no longer hides the standard per-user `sf.odbc.ini`. (snowflakedb/drivers#2591)
|
|
88
|
+
- Fixed UNLOAD and PARTITIONED_UNLOAD so they are classified as cursor results. ODBC and Python report the file count as `rows_affected`. JDBC and Node.js store 0 on that field; JDBC `getUpdateCount` stays 0 for a plain unload, and Node.js `getNumUpdatedRows` stays -1. (snowflakedb/drivers#2625)
|
|
68
89
|
- Fixed JDBC I/O errors so a failed stage upload, a failed stage download, a full local disk during a transfer, and a network failure each report the vendor code and SQLState the previous JDBC driver uses for that failure. A disabled file transfer still reports no vendor code. (snowflakedb/drivers#2507)
|
|
69
90
|
- Improved configuration errors for PAT with external session so an invalid `external_session_id` is reported without echoing the supplied identifier. (snowflakedb/drivers#1996)
|
|
70
91
|
- Fixed Python `cursor.description` reporting GEOGRAPHY and GEOMETRY columns as OBJECT when the server sent those names in a separate extended type field. (snowflakedb/drivers#2326)
|
|
@@ -121,11 +142,21 @@ Internal improvements:
|
|
|
121
142
|
- Raised the default multipart block size for PUT uploads to internal Azure stages from 4 MiB to 8 MiB, matching the S3/GCS default and improving throughput for typical file sizes.
|
|
122
143
|
- Response-body reads for the OAuth token exchange and GCP metadata server now stream against a fixed size limit using a running byte count (shared `read_body_capped` helper) rather than relying on the advertised `Content-Length`. (snowflakedb/drivers#1053)
|
|
123
144
|
- Improved on-disk CRL cache file handling: cache files are written with owner-only permissions and each cache entry is read through a single file handle. (snowflakedb/drivers#1056)
|
|
124
|
-
- Changed `SessionTokens.session_id` to `Option<i64>` so a token pair the server has not yet reported a session id for is no longer carried as `0`.
|
|
145
|
+
- Changed `SessionTokens.session_id` to `Option<i64>` so a token pair the server has not yet reported a session id for is no longer carried as `0`. (snowflakedb/drivers#2041)
|
|
125
146
|
|
|
126
147
|
Internal changes:
|
|
127
148
|
|
|
149
|
+
- Applied an omitted `use_proxy_env` from the wrapper preset, true for Python and Node.js and false otherwise, so a connection profile or an explicit value wins over that preset. (snowflakedb/drivers#2650)
|
|
150
|
+
- Added hot-swappable file logging: `LogManager` exposes a `LogReloadHandle` that re-applies the core and troubleshooting file sinks (log level and destination path) in place, without rebuilding the tracing dispatch, session registry, or negotiated encoding, so a wrapper can re-read its logging configuration at runtime. (snowflakedb/drivers#2588)
|
|
128
151
|
- Moved CRL cache and background refresh onto the driver so the last driver drop cancels and joins the `crl-refresh` thread. (snowflakedb/drivers#2429)
|
|
152
|
+
- Keyed telemetry by connection handle instead of session id and added the session id to span entries at send time, so a connection that adopted session tokens without a session id now sends telemetry. (snowflakedb/drivers#2607)
|
|
153
|
+
- Removed OCSP_MODE from the login CLIENT_ENVIRONMENT payload and from connection diagnostics. The driver does not perform OCSP; certificate revocation continues to be reported as CERT_REVOCATION_CHECK_MODE. (snowflakedb/drivers#2724)
|
|
154
|
+
- Changed the platform-detection and Workload Identity attestation clients to reuse the driver's cached system root certificates, and stopped the plain-HTTP IMDS region lookup from loading the OS trust store. (snowflakedb/drivers#2690)
|
|
155
|
+
- Removed the synchronous default-TLS client builder. Auxiliary clients build from a root-store snapshot. (snowflakedb/drivers#2690)
|
|
156
|
+
- Narrowed platform detection's config and entry point to crate visibility. (snowflakedb/drivers#2690)
|
|
157
|
+
- Changed the CRL download client to reuse the driver's cached system root certificates. (snowflakedb/drivers#2691)
|
|
158
|
+
- Changed custom-CA revocation checks to load system root certificates on a blocking thread, and only for the first CRL cache. (snowflakedb/drivers#2691)
|
|
159
|
+
- Changed storage clients to retry a failed system root certificate load on a blocking thread. (snowflakedb/drivers#2706)
|
|
129
160
|
|
|
130
161
|
Test improvements:
|
|
131
162
|
|