snowflake-connector-python 5.0.0rc2__tar.gz → 5.0.0rc3__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.
Potentially problematic release.
This version of snowflake-connector-python might be problematic. Click here for more details.
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/Cargo.lock +15 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/Cargo.toml +1 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/PKG-INFO +6 -7
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/README.md +3 -3
- snowflake_connector_python-5.0.0rc3/ci/anaconda/recipe/README.md +39 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/protobuf/database_driver_v1.proto +6 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/pyproject.toml +24 -13
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/Cargo.toml +4 -1
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/binary.rs +58 -0
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/boolean.rs +52 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/arrow/converters/context.rs +24 -11
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/date.rs +140 -0
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/decfloat.rs +196 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/arrow/converters/decode.rs +12 -12
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/mod.rs +65 -0
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/number.rs +263 -0
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/real.rs +52 -0
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/test_util.rs +131 -0
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/text.rs +70 -0
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/time.rs +185 -0
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/timestamp_ntz.rs +238 -0
- snowflake_connector_python-5.0.0rc3/python_bridge/src/arrow/converters/util.rs +170 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/arrow/error.rs +0 -101
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/arrow/mod.rs +0 -3
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/arrow/plan.rs +37 -3
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/arrow/stream.rs +0 -4
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/arrow/test_support.rs +0 -2
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/lib.rs +107 -13
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/CHANGELOG.md +12 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/Cargo.toml +1 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/benches/prefetch_bench.rs +10 -6
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/connection.rs +678 -160
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/database.rs +28 -3
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/error_kind.rs +68 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/get_objects.rs +19 -11
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/global_state.rs +246 -9
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/heartbeat.rs +1 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/logout.rs +60 -33
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/mod.rs +2 -2
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/query.rs +338 -61
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/result_set.rs +398 -48
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/statement.rs +61 -18
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/stream_transfer.rs +26 -4
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/validation.rs +9 -1
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/arrow_utils.rs +32 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/bin/collect_chunk_data.rs +1 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/bin/tls_client.rs +1 -1
- snowflake_connector_python-5.0.0rc3/sf_core/src/chunks/async_arrow_batch_fetcher.rs +383 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/chunks/error.rs +5 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/chunks/json_parser.rs +3 -1
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/chunks/mod.rs +108 -58
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/chunks/prefetch.rs +90 -71
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/param_store.rs +58 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/resolver.rs +293 -1
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/rest_parameters.rs +75 -3
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/env_vars.rs +5 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/azure_transfer.rs +95 -66
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/cloud_http.rs +168 -4
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/gcs_transfer.rs +98 -40
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/mod.rs +882 -79
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/multipart.rs +47 -3
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/s3_transfer.rs +53 -44
- snowflake_connector_python-5.0.0rc3/sf_core/src/file_manager/scheduler.rs +380 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/types.rs +40 -11
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/http/retry.rs +97 -11
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/lib.rs +1 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/protobuf/apis/database_driver_v1/converter.rs +6 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/protobuf/c_api.rs +122 -28
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/query_types/row_type.rs +22 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/async_exec.rs +47 -19
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/error_context.rs +26 -1
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/mod.rs +422 -39
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/query_response.rs +65 -15
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/telemetry.rs +1 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/stage_binding.rs +9 -1
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/session_telemetry.rs +1 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/tls/client.rs +153 -66
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/tls/config.rs +37 -9
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/tls/crl_verifier.rs +2 -2
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/token_cache/file_cache.rs +52 -11
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/token_cache/mod.rs +5 -2
- snowflake_connector_python-5.0.0rc3/sf_core/src/xp_backend/mod.rs +315 -0
- snowflake_connector_python-5.0.0rc3/sf_core/src/xp_backend/registry.rs +174 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/query.rs +12 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/put_get_common.rs +18 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_params_spec/src/lib.rs +291 -1
- snowflake_connector_python-5.0.0rc3/sf_types/Cargo.toml +11 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/binary.rs +69 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/boolean.rs +53 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/civil.rs +73 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/clock.rs +122 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/date.rs +105 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/decfloat.rs +301 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/error.rs +25 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/fixed.rs +107 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/interval.rs +190 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/lib.rs +57 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/nullable.rs +89 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/real.rs +122 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/text.rs +76 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/time.rs +137 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/timestamp.rs +677 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/traits.rs +34 -0
- snowflake_connector_python-5.0.0rc3/sf_types/src/vector.rs +155 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/authenticator_type.py +2 -10
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/binding_converters.py +33 -12
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/cursor/base.py +12 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/cursor/query_result.py +20 -7
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/cursor/result_metadata.py +20 -15
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/decorators.py +19 -6
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/logout_config_mapping.py +3 -3
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.cpp +71 -34
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.cpp +33 -8
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.cpp +17 -1
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +2 -9
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +7 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +12 -1
- snowflake_connector_python-5.0.0rc3/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +402 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.pyi +12 -1
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/type_codes.py +13 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/cursor/_base.py +20 -3
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/connection_config.py +8 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/cursor/__init__.py +2 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/cursor/_base.py +27 -8
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/errors.py +8 -9
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/telemetry.py +3 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/version.py +1 -1
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/tests/README.md +2 -2
- snowflake_connector_python-5.0.0rc2/python_bridge/src/arrow/converters/mod.rs +0 -18
- snowflake_connector_python-5.0.0rc2/python_bridge/src/arrow/converters/test_util.rs +0 -7
- snowflake_connector_python-5.0.0rc2/python_bridge/src/arrow/converters/util.rs +0 -80
- snowflake_connector_python-5.0.0rc2/python_bridge/src/arrow/odbc_decode/error.rs +0 -58
- snowflake_connector_python-5.0.0rc2/python_bridge/src/arrow/odbc_decode/mod.rs +0 -19
- snowflake_connector_python-5.0.0rc2/python_bridge/src/arrow/odbc_decode/traits.rs +0 -22
- snowflake_connector_python-5.0.0rc2/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +0 -402
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/.gitignore +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/build_common.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/error_trace/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/error_trace/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/error_trace_derive/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/error_trace_derive/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/hatch_build.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/Cargo.lock +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/README.md +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/generators/csharp_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/generators/helpers.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/generators/java_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/generators/json_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/generators/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/generators/python_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/generators/rust_generator.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/main.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/protobuf.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_generator/src/protoc_installer.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_utils/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/proto_utils/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/build.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/arrow/batch_converter.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/src/arrow/iterator.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/stub_gen/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/stub_gen/src/main.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/README.md +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/build.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/exports.def +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/alter_session_parser.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/async_query_registry.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/error.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/final_session_names.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/like_pattern.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/multistatement.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/database_driver_v1/spcs_token.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/apis/operation_ctx.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/auth.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/bin/README.md +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/bin/spcs_probe.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/chunks/arrow_parser.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/chunks/http_downloader.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/chunks/memory_budget.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/chunks/mock.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/compression.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/compression_types.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/config_manager.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/configured_redirect_uri.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/connection_config.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/error_context.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/ini_loader.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/logging_config_loader.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/logout.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/param_registry.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/path_resolver.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/private_key.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/retry.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/settings.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/token.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/config/toml_loader.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/crl/cache.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/crl/certificate_parser.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/crl/config.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/crl/disk_tests.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/crl/error.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/crl/integration_test.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/crl/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/crl/validator.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/crl/worker.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/diagnostic/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/encryption.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/path_expansion.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/file_manager/spool.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/fs_adapter.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/fs_lock.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/handle_manager.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/http/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/logging/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/logging/callback_layer.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/logging/error.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/logging/log_manager.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/logging/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/logging/opentelemetry.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/perf_timing/c_api.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/perf_timing/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/protobuf/apis/database_driver_v1/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/protobuf/apis/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/protobuf/config_setting_ext.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/protobuf/generated.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/protobuf/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/query_types/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/query_types/statement_type.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/refresh.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/auth.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/browser.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/external_browser.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/heartbeat.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/logout.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/native_okta.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/oauth/authorization_code.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/oauth/client_credentials.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/oauth/dpop.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/oauth/error.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/oauth/http_client.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/oauth/loopback_server.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/oauth/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/oauth/pkce.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/oauth/token.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/prompt_lock.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/query_context_cache.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/query_request.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/sql_state.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/workload_identity/aws.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/workload_identity/azure.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/workload_identity/gcp.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/workload_identity/host_allowlist.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/workload_identity/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/rest/snowflake/workload_identity/oidc.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/sensitive.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/environment.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/os_details.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/platform_detection/aws.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/platform_detection/azure.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/platform_detection/gcp.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/platform_detection/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/platform_detection/tests.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/serialization.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/session_batch.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/snowflake_exporter.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/snowflake_processor.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/telemetry/types.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/tls/aws_http_client.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/tls/error.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/tls/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/tls/revocation.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/tls/test_helpers.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/tls/x509_utils.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/token_cache/keyring_cache.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/utils/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/src/utils/sync.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/arrow_deserialize.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/arrow_deserialize_macro/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/arrow_deserialize_macro/src/lib.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/arrow_extract_value.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/arrow_result_helper.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/cloud_gating.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/config.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/connect_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/dead_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/file_utils.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mitm_port_detector.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mitm_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/auth.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/external_browser.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/mfa.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/oauth.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/okta.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/password.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/put_get.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mocks/session.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/mod.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/private_key_helper.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/snowflake_test_client.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/test_server.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/test_utils.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_core/tests/common/tls_proxy.rs +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/sf_params_spec/Cargo.toml +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_common/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_common/extras.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_common/telemetry.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_common/wif_util.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/_private_key_helper.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/api_client/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/api_client/bridge.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/api_client/client_api.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/arrow.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/arrow_context.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/arrow_stream_async.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/arrow_stream_iterator.pyi +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/arrow_stream_utils.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/backward_compatibility.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/config_utils.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/connection/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/connection/connection.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/connection/connection_types.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/connection/constants.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/connection/decorators.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/connection/freezable_proxy.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/connection/queries.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/connection_config_mixin.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/cursor/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/cursor/cursor_types.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/cursor/decorators.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/cursor/query_result_waiter.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/cursor/result_set_wrapper.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/error_kinds.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/errorcode.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/errorhandler.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/logging/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/logging/config.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/logging/core_logger.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/logging/native_extension_logger.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.pyx +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.cpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.hpp +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/protobuf_gen/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_services.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/protobuf_gen/proto_exception.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/result_batch.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/snowflake_restful.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/sqlstate.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/statement_utils.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/text_utils.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/utils.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/_internal/write_pandas_operation.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/README.md +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/connection/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/connection/_connection.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/cursor/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/cursor/_dict_cursor.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/cursor/_result_set_wrapper.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/cursor/_snowflake_cursor.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/pandas_tools.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/aio/result_batch.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/auth/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/auth/workload_identity.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/compat.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/config_manager.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/connection/__init__.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/connection/_connection.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/constants.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/cursor/_chunked_download_reader.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/cursor/_dict_cursor.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/cursor/_result_set_wrapper.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/cursor/_snowflake_cursor.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/description.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/network.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/pandas_tools.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/py.typed +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/result_batch.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/time_util.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/types.py +0 -0
- {snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/src/snowflake/connector/util_text.py +0 -0
|
@@ -3920,6 +3920,7 @@ version = "0.29.0"
|
|
|
3920
3920
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3921
3921
|
checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
|
|
3922
3922
|
dependencies = [
|
|
3923
|
+
"chrono",
|
|
3923
3924
|
"libc",
|
|
3924
3925
|
"once_cell",
|
|
3925
3926
|
"portable-atomic",
|
|
@@ -3990,16 +3991,19 @@ name = "python_bridge"
|
|
|
3990
3991
|
version = "0.1.0"
|
|
3991
3992
|
dependencies = [
|
|
3992
3993
|
"arrow",
|
|
3994
|
+
"chrono",
|
|
3993
3995
|
"error_trace",
|
|
3994
3996
|
"futures",
|
|
3995
3997
|
"proto_utils",
|
|
3996
3998
|
"pyo3",
|
|
3997
3999
|
"pyo3-async-runtimes",
|
|
3998
4000
|
"sf_core",
|
|
4001
|
+
"sf_types",
|
|
3999
4002
|
"snafu 0.8.9",
|
|
4000
4003
|
"tokio",
|
|
4001
4004
|
"tokio-util",
|
|
4002
4005
|
"tracing",
|
|
4006
|
+
"tracing-subscriber",
|
|
4003
4007
|
]
|
|
4004
4008
|
|
|
4005
4009
|
[[package]]
|
|
@@ -4709,6 +4713,7 @@ dependencies = [
|
|
|
4709
4713
|
"arrow",
|
|
4710
4714
|
"arrow-ipc",
|
|
4711
4715
|
"arrow_deserialize_macro",
|
|
4716
|
+
"async-trait",
|
|
4712
4717
|
"aws-config",
|
|
4713
4718
|
"aws-credential-types",
|
|
4714
4719
|
"aws-lc-rs",
|
|
@@ -4811,6 +4816,16 @@ dependencies = [
|
|
|
4811
4816
|
name = "sf_params_spec"
|
|
4812
4817
|
version = "0.0.0"
|
|
4813
4818
|
|
|
4819
|
+
[[package]]
|
|
4820
|
+
name = "sf_types"
|
|
4821
|
+
version = "0.1.0"
|
|
4822
|
+
dependencies = [
|
|
4823
|
+
"arrow",
|
|
4824
|
+
"chrono",
|
|
4825
|
+
"error_trace",
|
|
4826
|
+
"snafu 0.8.9",
|
|
4827
|
+
]
|
|
4828
|
+
|
|
4814
4829
|
[[package]]
|
|
4815
4830
|
name = "sha1"
|
|
4816
4831
|
version = "0.10.6"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: snowflake-connector-python
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.0rc3
|
|
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
|
|
@@ -12,16 +12,15 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.14
|
|
20
19
|
Classifier: Topic :: Database
|
|
21
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
-
Requires-Python: >=3.
|
|
21
|
+
Requires-Python: >=3.11
|
|
23
22
|
Requires-Dist: cryptography>=46.0.5
|
|
24
|
-
Requires-Dist: protobuf
|
|
23
|
+
Requires-Dist: protobuf<7,>=6.32.1
|
|
25
24
|
Requires-Dist: pytz
|
|
26
25
|
Requires-Dist: tomlkit>=0.13
|
|
27
26
|
Provides-Extra: dev
|
|
@@ -70,13 +69,13 @@ using the Snowflake JDBC or ODBC drivers.
|
|
|
70
69
|
|
|
71
70
|
The connector has **no** dependencies on JDBC or ODBC.
|
|
72
71
|
It can be installed using ``pip`` on Linux, Mac OSX, and Windows platforms
|
|
73
|
-
where Python 3.
|
|
72
|
+
where Python 3.11.0 (or higher) is installed.
|
|
74
73
|
|
|
75
74
|
|
|
76
75
|
## Development
|
|
77
76
|
|
|
78
77
|
### Prerequisites
|
|
79
|
-
- Python 3.
|
|
78
|
+
- Python 3.11+
|
|
80
79
|
- [uv](https://docs.astral.sh/uv/) package manager
|
|
81
80
|
- [Hatch](https://hatch.pypa.io/) build tool
|
|
82
81
|
- Rust toolchain (for building core library)
|
|
@@ -115,7 +114,7 @@ The `dev` environment is designed for **human developers** during active develop
|
|
|
115
114
|
- Installs from sources (`skip-install = false`)
|
|
116
115
|
- Editable mode enabled (`dev-mode = true`)
|
|
117
116
|
- Changes to source code are immediately available
|
|
118
|
-
- Supports Python matrix: 3.
|
|
117
|
+
- Supports Python matrix: 3.11, 3.12, 3.13, 3.14
|
|
119
118
|
|
|
120
119
|
**Usage:**
|
|
121
120
|
```bash
|
|
@@ -12,13 +12,13 @@ using the Snowflake JDBC or ODBC drivers.
|
|
|
12
12
|
|
|
13
13
|
The connector has **no** dependencies on JDBC or ODBC.
|
|
14
14
|
It can be installed using ``pip`` on Linux, Mac OSX, and Windows platforms
|
|
15
|
-
where Python 3.
|
|
15
|
+
where Python 3.11.0 (or higher) is installed.
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
## Development
|
|
19
19
|
|
|
20
20
|
### Prerequisites
|
|
21
|
-
- Python 3.
|
|
21
|
+
- Python 3.11+
|
|
22
22
|
- [uv](https://docs.astral.sh/uv/) package manager
|
|
23
23
|
- [Hatch](https://hatch.pypa.io/) build tool
|
|
24
24
|
- Rust toolchain (for building core library)
|
|
@@ -57,7 +57,7 @@ The `dev` environment is designed for **human developers** during active develop
|
|
|
57
57
|
- Installs from sources (`skip-install = false`)
|
|
58
58
|
- Editable mode enabled (`dev-mode = true`)
|
|
59
59
|
- Changes to source code are immediately available
|
|
60
|
-
- Supports Python matrix: 3.
|
|
60
|
+
- Supports Python matrix: 3.11, 3.12, 3.13, 3.14
|
|
61
61
|
|
|
62
62
|
**Usage:**
|
|
63
63
|
```bash
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Conda recipe
|
|
2
|
+
|
|
3
|
+
Builds `snowflake-connector-python` from this repository. The package is not
|
|
4
|
+
`noarch`: it ships two ABI-tagged native extensions (the PyO3 core bridge and
|
|
5
|
+
the Cython/C++ Arrow reader), so it is built per Python version and per
|
|
6
|
+
architecture.
|
|
7
|
+
|
|
8
|
+
`source.path` is the repository root. The Python wrapper reaches the Rust
|
|
9
|
+
workspace through relative symlinks (`python/Cargo.toml`, `python/sf_core`,
|
|
10
|
+
`python/python_bridge`) that only resolve when the whole workspace is present.
|
|
11
|
+
Build from a clean checkout, or remove `target/` first — conda-build copies the
|
|
12
|
+
source tree.
|
|
13
|
+
|
|
14
|
+
## Build
|
|
15
|
+
|
|
16
|
+
From the repository root, with conda-build installed (`conda install -c
|
|
17
|
+
conda-forge conda-build`):
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
conda build python/ci/anaconda/recipe --python 3.12
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The C/C++ and Rust toolchains come from `requirements.build`. Version is read
|
|
24
|
+
from `python/src/snowflake/connector/version.py`; override with
|
|
25
|
+
`SNOWFLAKE_CONNECTOR_PYTHON_VERSION`. Build number defaults to `0`; override
|
|
26
|
+
with `UNIVERSAL_DRIVER_BUILD_NUMBER`.
|
|
27
|
+
|
|
28
|
+
`conda_build_config.yaml` pins the sysroot (glibc floor) to 2.17. That is the
|
|
29
|
+
oldest conda-forge publishes for both `linux-64` and `linux-aarch64`. Without
|
|
30
|
+
it, current compilers select sysroot 2.34.
|
|
31
|
+
|
|
32
|
+
`libprotobuf` is capped to match the runtime available in Snowflake's
|
|
33
|
+
in-platform channel.
|
|
34
|
+
|
|
35
|
+
Optional `script_env` passthroughs for iteration: `SKIP_CORE_BUILD`,
|
|
36
|
+
`SNOWFLAKE_DISABLE_COMPILE_ARROW_EXTENSIONS`, `SKIP_PROTO_GENERATION`,
|
|
37
|
+
`CORE_CARGO_TARGET_DIR`, `PROTO_CARGO_TARGET_DIR`, `CARGO_NET_OFFLINE`. A
|
|
38
|
+
`_core/` binary is tagged with `sysconfig` `EXT_SUFFIX`, so a 3.13 build is not
|
|
39
|
+
reusable for 3.12. `test.imports` fails the package if an extension is missing.
|
|
@@ -139,6 +139,12 @@ message ColumnMetadata {
|
|
|
139
139
|
bool is_auto_increment = 13;
|
|
140
140
|
string ext_col_type_name = 14;
|
|
141
141
|
string udt_output_type = 15;
|
|
142
|
+
// Nested column metadata for structured types. Carries the element type for
|
|
143
|
+
// VECTOR and ARRAY, the key and value types for MAP, and one entry per
|
|
144
|
+
// attribute for structured OBJECT. Empty for every other type, and also for
|
|
145
|
+
// semi-structured (unstructured) ARRAY/OBJECT/MAP, which the server sends
|
|
146
|
+
// without a nested field list.
|
|
147
|
+
repeated ColumnMetadata fields = 16;
|
|
142
148
|
}
|
|
143
149
|
|
|
144
150
|
// DML operation statistics
|
|
@@ -16,16 +16,20 @@ classifiers = [
|
|
|
16
16
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
17
17
|
"License :: OSI Approved :: Apache Software License",
|
|
18
18
|
"Programming Language :: Python :: 3",
|
|
19
|
-
"Programming Language :: Python :: 3.10",
|
|
20
19
|
"Programming Language :: Python :: 3.11",
|
|
21
20
|
"Programming Language :: Python :: 3.12",
|
|
22
21
|
"Programming Language :: Python :: 3.13",
|
|
23
22
|
"Programming Language :: Python :: 3.14",
|
|
24
23
|
]
|
|
25
|
-
requires-python = ">=3.
|
|
24
|
+
requires-python = ">=3.11"
|
|
26
25
|
dependencies = [
|
|
27
26
|
"cryptography>=46.0.5",
|
|
28
|
-
|
|
27
|
+
# Snowflake's in-platform Anaconda channel (Python UDF / stored-procedure
|
|
28
|
+
# resolve) tops out at protobuf 6.33.5; 7.x is not mirrored. A 7.x protoc
|
|
29
|
+
# bakes gencode that fails sproc import with
|
|
30
|
+
# VersionError: gencode 7.x runtime 6.33.5. Cap here so conda recipe run
|
|
31
|
+
# deps stay in lockstep (validate_deps_sync.py) and pip cannot pull 7.x.
|
|
32
|
+
"protobuf>=6.32.1,<7",
|
|
29
33
|
"pytz",
|
|
30
34
|
"tomlkit>=0.13",
|
|
31
35
|
]
|
|
@@ -85,6 +89,7 @@ include = [
|
|
|
85
89
|
"sf_core/",
|
|
86
90
|
"python_bridge/",
|
|
87
91
|
"sf_params_spec/",
|
|
92
|
+
"sf_types/",
|
|
88
93
|
"proto_utils/",
|
|
89
94
|
"proto_generator/",
|
|
90
95
|
"protobuf/",
|
|
@@ -98,6 +103,7 @@ exclude = [
|
|
|
98
103
|
"sf_core/target/",
|
|
99
104
|
"python_bridge/target/",
|
|
100
105
|
"sf_params_spec/target/",
|
|
106
|
+
"sf_types/target/",
|
|
101
107
|
"proto_utils/target/",
|
|
102
108
|
# Exclude sf_core tests (except arrow_deserialize_macro which is a dev-dependency)
|
|
103
109
|
"sf_core/tests/e2e/",
|
|
@@ -125,6 +131,9 @@ path = "hatch_build.py"
|
|
|
125
131
|
|
|
126
132
|
[tool.hatch.build.hooks.custom]
|
|
127
133
|
|
|
134
|
+
[tool.cibuildwheel.windows]
|
|
135
|
+
repair-wheel-command = "delvewheel repair --namespace-pkg snowflake -w {dest_dir} -v {wheel}"
|
|
136
|
+
|
|
128
137
|
[tool.pytest.ini_options]
|
|
129
138
|
testpaths = ["tests"]
|
|
130
139
|
python_files = ["test_*.py"]
|
|
@@ -183,7 +192,7 @@ exclude_lines = [
|
|
|
183
192
|
]
|
|
184
193
|
|
|
185
194
|
[tool.mypy]
|
|
186
|
-
python_version = "3.
|
|
195
|
+
python_version = "3.11"
|
|
187
196
|
warn_return_any = true
|
|
188
197
|
warn_unused_configs = true
|
|
189
198
|
disallow_untyped_defs = true
|
|
@@ -240,13 +249,13 @@ dependencies = [
|
|
|
240
249
|
# Keep in sync with `[project].dependencies` plus numpy (referenced by
|
|
241
250
|
# arrow_context.py type hints).
|
|
242
251
|
"cryptography>=46.0.5",
|
|
243
|
-
"protobuf>=6.32.1",
|
|
252
|
+
"protobuf>=6.32.1,<7",
|
|
244
253
|
"pytz",
|
|
245
254
|
"tomlkit>=0.13",
|
|
246
|
-
# Cap < 2.3 to match the mypy `python_version = "3.
|
|
247
|
-
#
|
|
248
|
-
#
|
|
249
|
-
#
|
|
255
|
+
# Cap < 2.3 to match the mypy `python_version = "3.11"` target: numpy 2.3+
|
|
256
|
+
# stubs use PEP-695 `type` statements, which mypy rejects below a 3.12
|
|
257
|
+
# target. A 3.11 install still resolves numpy < 2.3, so this is the numpy
|
|
258
|
+
# we should type-check against.
|
|
250
259
|
"numpy>=2.1.0,<2.3",
|
|
251
260
|
]
|
|
252
261
|
|
|
@@ -284,7 +293,7 @@ PARAMETER_PATH = "{env:PARAMETER_PATH:../parameters.json}"
|
|
|
284
293
|
SKIP_CORE_BUILD = "{env:SKIP_CORE_BUILD:1}"
|
|
285
294
|
|
|
286
295
|
[[tool.hatch.envs.dev.matrix]]
|
|
287
|
-
python = ["3.
|
|
296
|
+
python = ["3.11", "3.12", "3.13", "3.14"]
|
|
288
297
|
|
|
289
298
|
[tool.hatch.envs.dev.scripts]
|
|
290
299
|
# Unit / integ: on failure, once-rerun last-failed tests (cap at 5 failures)
|
|
@@ -308,7 +317,7 @@ skip-install = true
|
|
|
308
317
|
dev-mode = false
|
|
309
318
|
|
|
310
319
|
[[tool.hatch.envs.test.matrix]]
|
|
311
|
-
python = ["3.
|
|
320
|
+
python = ["3.11", "3.12", "3.13", "3.14"]
|
|
312
321
|
|
|
313
322
|
[tool.hatch.envs.test.scripts]
|
|
314
323
|
# Install from wheel
|
|
@@ -340,7 +349,9 @@ install-wheel = [
|
|
|
340
349
|
"uv pip install {env:WHEEL_PATH:dist/*.whl}",
|
|
341
350
|
"python hatch_native_arrow.py",
|
|
342
351
|
]
|
|
343
|
-
|
|
352
|
+
# BOOLEAN, REAL, TEXT, BINARY, NUMBER, DECFLOAT, DATE, and TIME converters are live.
|
|
353
|
+
# Table and insert cases can run because execute_query status rows are NUMBER.
|
|
354
|
+
cov = "pytest tests/e2e/types/test_boolean.py tests/e2e/types/test_float.py tests/e2e/types/test_string.py tests/e2e/types/test_binary.py tests/e2e/types/test_number.py tests/e2e/types/test_int.py tests/e2e/types/test_decfloat.py tests/e2e/types/test_date.py tests/e2e/types/test_time.py --cov=src/snowflake --cov-report=xml --cov-report=html {args}"
|
|
344
355
|
|
|
345
356
|
# Pandas-specific CI test environment
|
|
346
357
|
[tool.hatch.envs.test-pandas]
|
|
@@ -348,7 +359,7 @@ template = "test"
|
|
|
348
359
|
features = ["test", "dev", "pandas"]
|
|
349
360
|
|
|
350
361
|
[[tool.hatch.envs.test-pandas.matrix]]
|
|
351
|
-
python = ["3.
|
|
362
|
+
python = ["3.11", "3.12", "3.13", "3.14"]
|
|
352
363
|
|
|
353
364
|
[tool.hatch.envs.test-pandas.scripts]
|
|
354
365
|
cov = "pytest tests/e2e/pandas --cov=src/snowflake --cov-report=xml --cov-report=html {args}"
|
{snowflake_connector_python-5.0.0rc2 → snowflake_connector_python-5.0.0rc3}/python_bridge/Cargo.toml
RENAMED
|
@@ -11,12 +11,14 @@ crate-type = ["cdylib", "rlib"]
|
|
|
11
11
|
default = ["extension-module"]
|
|
12
12
|
extension-module = ["pyo3/extension-module"]
|
|
13
13
|
vendored-openssl = ["sf_core/vendored-openssl"]
|
|
14
|
-
native-arrow = ["dep:arrow", "dep:snafu", "dep:error_trace"]
|
|
14
|
+
native-arrow = ["dep:arrow", "dep:snafu", "dep:error_trace", "dep:sf_types", "dep:chrono", "pyo3/chrono"]
|
|
15
15
|
|
|
16
16
|
[dependencies]
|
|
17
17
|
arrow = { version = ">=54.0.0, <59", features = ["ffi"], optional = true }
|
|
18
18
|
snafu = { version = "0.8", optional = true }
|
|
19
19
|
error_trace = { path = "../error_trace", optional = true }
|
|
20
|
+
sf_types = { path = "../sf_types", optional = true }
|
|
21
|
+
chrono = { version = "0.4.43", optional = true }
|
|
20
22
|
|
|
21
23
|
sf_core = { path = "../sf_core" }
|
|
22
24
|
proto_utils = { path = "../proto_utils" }
|
|
@@ -31,3 +33,4 @@ tracing = "0.1.41"
|
|
|
31
33
|
# Tests for the native path use --features native-arrow (activates optional arrow).
|
|
32
34
|
pyo3 = { version = "0.29.0", features = ["auto-initialize"] }
|
|
33
35
|
arrow = { version = ">=54.0.0, <59", features = ["ffi"] }
|
|
36
|
+
tracing-subscriber = { version = "0.3.19", features = ["fmt"] }
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
use arrow::array::{ArrayRef, BinaryArray};
|
|
2
|
+
use pyo3::prelude::*;
|
|
3
|
+
use pyo3::types::PyByteArray;
|
|
4
|
+
use sf_types::SnowflakeBinary;
|
|
5
|
+
|
|
6
|
+
use super::Column;
|
|
7
|
+
use super::decode::{PyMaterializer, TypedColumn};
|
|
8
|
+
use crate::arrow::converters::util::downcast_column;
|
|
9
|
+
use crate::arrow::plan::SnowflakeFieldType;
|
|
10
|
+
|
|
11
|
+
pub(super) fn from_column(array: &ArrayRef, field_type: &SnowflakeFieldType) -> PyResult<Column> {
|
|
12
|
+
downcast_column::<BinaryArray>(array, field_type)
|
|
13
|
+
.map(|array| Column::Binary(TypedColumn::new(array, SnowflakeBinary, BinaryMaterializer)))
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
pub(crate) struct BinaryMaterializer;
|
|
17
|
+
|
|
18
|
+
impl PyMaterializer<SnowflakeBinary> for BinaryMaterializer {
|
|
19
|
+
fn materialize<'py>(&self, py: Python<'py>, value: &[u8]) -> PyResult<Bound<'py, PyAny>> {
|
|
20
|
+
Ok(PyByteArray::new(py, value).into_any())
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
#[cfg(test)]
|
|
25
|
+
mod tests {
|
|
26
|
+
use std::sync::Arc;
|
|
27
|
+
|
|
28
|
+
use arrow::array::{ArrayRef, BinaryArray};
|
|
29
|
+
use arrow::datatypes::Schema;
|
|
30
|
+
use pyo3::prelude::*;
|
|
31
|
+
|
|
32
|
+
use crate::arrow::converters::ConversionContext;
|
|
33
|
+
use crate::arrow::converters::test_util::{assert_py_bytes, assert_py_none};
|
|
34
|
+
use crate::arrow::plan::SnowflakeFieldType;
|
|
35
|
+
|
|
36
|
+
fn binary() -> SnowflakeFieldType {
|
|
37
|
+
SnowflakeFieldType::Binary { len: 8_388_608 }
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
#[test]
|
|
41
|
+
fn binary_converts_to_python_bytearray() {
|
|
42
|
+
Python::initialize();
|
|
43
|
+
let ctx = ConversionContext::new(&Schema::empty()).unwrap();
|
|
44
|
+
|
|
45
|
+
let array: ArrayRef = Arc::new(BinaryArray::from_opt_vec(vec![
|
|
46
|
+
Some(b"hello".as_slice()),
|
|
47
|
+
None,
|
|
48
|
+
Some(b"".as_slice()),
|
|
49
|
+
]));
|
|
50
|
+
let column = ctx.converter_from_column(&array, &binary()).unwrap();
|
|
51
|
+
|
|
52
|
+
Python::attach(|py| {
|
|
53
|
+
assert_py_bytes(&column.to_py(py, 0).unwrap(), b"hello");
|
|
54
|
+
assert_py_none(&column.to_py(py, 1).unwrap());
|
|
55
|
+
assert_py_bytes(&column.to_py(py, 2).unwrap(), b"");
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
use arrow::array::{ArrayRef, BooleanArray};
|
|
2
|
+
use pyo3::prelude::*;
|
|
3
|
+
use pyo3::types::PyBool;
|
|
4
|
+
use sf_types::SnowflakeBoolean;
|
|
5
|
+
|
|
6
|
+
use super::Column;
|
|
7
|
+
use super::decode::{PyMaterializer, TypedColumn};
|
|
8
|
+
use crate::arrow::converters::util::downcast_column;
|
|
9
|
+
use crate::arrow::plan::SnowflakeFieldType;
|
|
10
|
+
|
|
11
|
+
pub(super) fn from_column(array: &ArrayRef, field_type: &SnowflakeFieldType) -> PyResult<Column> {
|
|
12
|
+
downcast_column::<BooleanArray>(array, field_type)
|
|
13
|
+
.map(|array| Column::Bool(TypedColumn::new(array, SnowflakeBoolean, BoolMaterializer)))
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
pub(crate) struct BoolMaterializer;
|
|
17
|
+
|
|
18
|
+
impl PyMaterializer<SnowflakeBoolean> for BoolMaterializer {
|
|
19
|
+
fn materialize<'py>(&self, py: Python<'py>, value: bool) -> PyResult<Bound<'py, PyAny>> {
|
|
20
|
+
Ok(PyBool::new(py, value).to_owned().into_any())
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
#[cfg(test)]
|
|
25
|
+
mod tests {
|
|
26
|
+
use std::sync::Arc;
|
|
27
|
+
|
|
28
|
+
use arrow::array::{ArrayRef, BooleanArray};
|
|
29
|
+
use arrow::datatypes::Schema;
|
|
30
|
+
use pyo3::prelude::*;
|
|
31
|
+
|
|
32
|
+
use crate::arrow::converters::ConversionContext;
|
|
33
|
+
use crate::arrow::converters::test_util::{assert_py_bool, assert_py_none};
|
|
34
|
+
use crate::arrow::plan::SnowflakeFieldType;
|
|
35
|
+
|
|
36
|
+
#[test]
|
|
37
|
+
fn boolean_array_converts_to_python_bool() {
|
|
38
|
+
Python::initialize();
|
|
39
|
+
let ctx = ConversionContext::new(&Schema::empty()).unwrap();
|
|
40
|
+
|
|
41
|
+
let array: ArrayRef = Arc::new(BooleanArray::from(vec![Some(true), None, Some(false)]));
|
|
42
|
+
let column = ctx
|
|
43
|
+
.converter_from_column(&array, &SnowflakeFieldType::Boolean)
|
|
44
|
+
.unwrap();
|
|
45
|
+
|
|
46
|
+
Python::attach(|py| {
|
|
47
|
+
assert_py_bool(&column.to_py(py, 0).unwrap(), true);
|
|
48
|
+
assert_py_none(&column.to_py(py, 1).unwrap());
|
|
49
|
+
assert_py_bool(&column.to_py(py, 2).unwrap(), false);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -7,6 +7,15 @@ use crate::arrow::batch_converter::BatchConverter;
|
|
|
7
7
|
use crate::arrow::plan::{LogicalPlan, SnowflakeFieldType};
|
|
8
8
|
|
|
9
9
|
use super::Column;
|
|
10
|
+
use super::binary;
|
|
11
|
+
use super::boolean;
|
|
12
|
+
use super::date;
|
|
13
|
+
use super::decfloat;
|
|
14
|
+
use super::number;
|
|
15
|
+
use super::real;
|
|
16
|
+
use super::text;
|
|
17
|
+
use super::time;
|
|
18
|
+
use super::timestamp_ntz;
|
|
10
19
|
|
|
11
20
|
pub(crate) struct ConversionContext {
|
|
12
21
|
plan: LogicalPlan,
|
|
@@ -32,21 +41,25 @@ impl ConversionContext {
|
|
|
32
41
|
|
|
33
42
|
pub(crate) fn converter_from_column(
|
|
34
43
|
&self,
|
|
35
|
-
|
|
44
|
+
array: &ArrayRef,
|
|
36
45
|
field_type: &SnowflakeFieldType,
|
|
37
46
|
) -> PyResult<Column> {
|
|
38
47
|
match *field_type {
|
|
39
|
-
SnowflakeFieldType::
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
SnowflakeFieldType::Boolean => boolean::from_column(array, field_type),
|
|
49
|
+
SnowflakeFieldType::Number { scale, .. } => {
|
|
50
|
+
number::from_column(array, field_type, scale)
|
|
51
|
+
}
|
|
52
|
+
SnowflakeFieldType::Real => real::from_column(array, field_type),
|
|
53
|
+
SnowflakeFieldType::Varchar { .. } => text::from_column(array, field_type),
|
|
54
|
+
SnowflakeFieldType::Binary { .. } => binary::from_column(array, field_type),
|
|
55
|
+
SnowflakeFieldType::Decfloat { .. } => decfloat::from_column(array, field_type),
|
|
56
|
+
SnowflakeFieldType::Date => date::from_column(array, field_type),
|
|
57
|
+
SnowflakeFieldType::Time { scale } => time::from_column(array, field_type, scale),
|
|
58
|
+
SnowflakeFieldType::TimestampNtz { scale } => {
|
|
59
|
+
timestamp_ntz::from_column(array, field_type, scale)
|
|
60
|
+
}
|
|
61
|
+
SnowflakeFieldType::TimestampLtz { .. }
|
|
45
62
|
| SnowflakeFieldType::TimestampTz { .. }
|
|
46
|
-
| SnowflakeFieldType::Boolean
|
|
47
|
-
| SnowflakeFieldType::Binary { .. }
|
|
48
|
-
| SnowflakeFieldType::Real
|
|
49
|
-
| SnowflakeFieldType::Decfloat { .. }
|
|
50
63
|
| SnowflakeFieldType::Vector { .. } => Err(PyNotImplementedError::new_err(format!(
|
|
51
64
|
"native Arrow conversion is not implemented for logical type {}",
|
|
52
65
|
field_type.logical_type_name()
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
use arrow::array::{ArrayRef, Date32Array};
|
|
2
|
+
use chrono::{Datelike, NaiveDate};
|
|
3
|
+
use pyo3::exceptions::PyValueError;
|
|
4
|
+
use pyo3::prelude::*;
|
|
5
|
+
use sf_types::SnowflakeDate;
|
|
6
|
+
|
|
7
|
+
use super::Column;
|
|
8
|
+
use super::decode::{PyMaterializer, TypedColumn};
|
|
9
|
+
use crate::arrow::converters::util::downcast_column;
|
|
10
|
+
use crate::arrow::plan::SnowflakeFieldType;
|
|
11
|
+
|
|
12
|
+
pub(super) fn from_column(array: &ArrayRef, field_type: &SnowflakeFieldType) -> PyResult<Column> {
|
|
13
|
+
downcast_column::<Date32Array>(array, field_type)
|
|
14
|
+
.map(|array| Column::Date(TypedColumn::new(array, SnowflakeDate, DateMaterializer)))
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
pub(crate) struct DateMaterializer;
|
|
18
|
+
|
|
19
|
+
impl PyMaterializer<SnowflakeDate> for DateMaterializer {
|
|
20
|
+
fn materialize<'py>(&self, py: Python<'py>, value: NaiveDate) -> PyResult<Bound<'py, PyAny>> {
|
|
21
|
+
let year = value.year();
|
|
22
|
+
if !(1..=9999).contains(&year) {
|
|
23
|
+
return Err(PyValueError::new_err(format!(
|
|
24
|
+
"DATE {value} is outside the datetime.date year range 1..=9999"
|
|
25
|
+
)));
|
|
26
|
+
}
|
|
27
|
+
Ok(value.into_pyobject(py)?.into_any())
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
#[cfg(test)]
|
|
32
|
+
mod tests {
|
|
33
|
+
use std::sync::Arc;
|
|
34
|
+
|
|
35
|
+
use arrow::array::{ArrayRef, Date32Array, Int32Array};
|
|
36
|
+
use arrow::datatypes::Schema;
|
|
37
|
+
use pyo3::exceptions::PyValueError;
|
|
38
|
+
use pyo3::prelude::*;
|
|
39
|
+
|
|
40
|
+
use crate::arrow::converters::ConversionContext;
|
|
41
|
+
use crate::arrow::converters::test_util::{assert_py_date, assert_py_none};
|
|
42
|
+
use crate::arrow::plan::SnowflakeFieldType;
|
|
43
|
+
|
|
44
|
+
#[test]
|
|
45
|
+
fn date_converts_to_python_date_with_nulls() {
|
|
46
|
+
Python::initialize();
|
|
47
|
+
let ctx = ConversionContext::new(&Schema::empty()).unwrap();
|
|
48
|
+
|
|
49
|
+
let array: ArrayRef = Arc::new(Date32Array::from(vec![
|
|
50
|
+
Some(0),
|
|
51
|
+
None,
|
|
52
|
+
Some(-1),
|
|
53
|
+
Some(-719162),
|
|
54
|
+
Some(2932896),
|
|
55
|
+
]));
|
|
56
|
+
let column = ctx
|
|
57
|
+
.converter_from_column(&array, &SnowflakeFieldType::Date)
|
|
58
|
+
.unwrap();
|
|
59
|
+
|
|
60
|
+
Python::attach(|py| {
|
|
61
|
+
assert_py_date(&column.to_py(py, 0).unwrap(), 1970, 1, 1);
|
|
62
|
+
assert_py_none(&column.to_py(py, 1).unwrap());
|
|
63
|
+
assert_py_date(&column.to_py(py, 2).unwrap(), 1969, 12, 31);
|
|
64
|
+
assert_py_date(&column.to_py(py, 3).unwrap(), 1, 1, 1);
|
|
65
|
+
assert_py_date(&column.to_py(py, 4).unwrap(), 9999, 12, 31);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
#[test]
|
|
70
|
+
fn rejects_physical_mismatch_for_date() {
|
|
71
|
+
Python::initialize();
|
|
72
|
+
let ctx = ConversionContext::new(&Schema::empty()).unwrap();
|
|
73
|
+
let array: ArrayRef = Arc::new(Int32Array::from(vec![Some(0)]));
|
|
74
|
+
let err = match ctx.converter_from_column(&array, &SnowflakeFieldType::Date) {
|
|
75
|
+
Ok(_) => panic!("expected physical mismatch for Int32 DATE"),
|
|
76
|
+
Err(err) => err,
|
|
77
|
+
};
|
|
78
|
+
Python::attach(|py| {
|
|
79
|
+
assert!(
|
|
80
|
+
err.is_instance_of::<PyValueError>(py),
|
|
81
|
+
"expected PyValueError, got {err}"
|
|
82
|
+
);
|
|
83
|
+
let text = err.value(py).str().unwrap().to_string_lossy().into_owned();
|
|
84
|
+
assert!(
|
|
85
|
+
text.contains("logical/physical type mismatch")
|
|
86
|
+
&& text.contains("DATE")
|
|
87
|
+
&& text.contains("Int32"),
|
|
88
|
+
"got {text}"
|
|
89
|
+
);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
#[test]
|
|
94
|
+
fn rejects_day_offset_outside_calendar_range() {
|
|
95
|
+
Python::initialize();
|
|
96
|
+
let ctx = ConversionContext::new(&Schema::empty()).unwrap();
|
|
97
|
+
let array: ArrayRef = Arc::new(Date32Array::from(vec![Some(i32::MAX)]));
|
|
98
|
+
let column = ctx
|
|
99
|
+
.converter_from_column(&array, &SnowflakeFieldType::Date)
|
|
100
|
+
.unwrap();
|
|
101
|
+
|
|
102
|
+
Python::attach(|py| {
|
|
103
|
+
let err = column.to_py(py, 0).unwrap_err();
|
|
104
|
+
assert!(
|
|
105
|
+
err.is_instance_of::<PyValueError>(py),
|
|
106
|
+
"expected PyValueError, got {err}"
|
|
107
|
+
);
|
|
108
|
+
let text = err.value(py).str().unwrap().to_string_lossy().into_owned();
|
|
109
|
+
assert!(
|
|
110
|
+
text.contains("Invalid Arrow value") && text.contains("DATE"),
|
|
111
|
+
"got {text}"
|
|
112
|
+
);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
#[test]
|
|
117
|
+
fn rejects_dates_outside_python_date_year_range() {
|
|
118
|
+
Python::initialize();
|
|
119
|
+
let ctx = ConversionContext::new(&Schema::empty()).unwrap();
|
|
120
|
+
let array: ArrayRef = Arc::new(Date32Array::from(vec![Some(-719163), Some(2932897)]));
|
|
121
|
+
let column = ctx
|
|
122
|
+
.converter_from_column(&array, &SnowflakeFieldType::Date)
|
|
123
|
+
.unwrap();
|
|
124
|
+
|
|
125
|
+
Python::attach(|py| {
|
|
126
|
+
for row in [0, 1] {
|
|
127
|
+
let err = column.to_py(py, row).unwrap_err();
|
|
128
|
+
assert!(
|
|
129
|
+
err.is_instance_of::<PyValueError>(py),
|
|
130
|
+
"expected PyValueError, got {err}"
|
|
131
|
+
);
|
|
132
|
+
let text = err.value(py).str().unwrap().to_string_lossy().into_owned();
|
|
133
|
+
assert!(
|
|
134
|
+
text.contains("datetime.date year range 1..=9999"),
|
|
135
|
+
"got {text}"
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|