snowflake-connector-python 3.13.2__tar.gz → 3.14.1__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-3.13.2 → snowflake_connector_python-3.14.1}/DESCRIPTION.md +33 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/MANIFEST.in +1 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/PKG-INFO +44 -9
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/README.md +3 -3
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/setup.cfg +8 -7
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/setup.py +1 -3
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/__init__.py +3 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/_query_context_cache.py +0 -3
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/_sql_util.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/_utils.py +18 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/arrow_context.py +8 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/__init__.py +12 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/_auth.py +40 -267
- snowflake_connector_python-3.14.1/src/snowflake/connector/auth/_http_server.py +220 -0
- snowflake_connector_python-3.14.1/src/snowflake/connector/auth/_oauth_base.py +367 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/by_plugin.py +2 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/default.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/idtoken.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/keypair.py +0 -4
- snowflake_connector_python-3.14.1/src/snowflake/connector/auth/no_auth.py +39 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/oauth.py +0 -4
- snowflake_connector_python-3.14.1/src/snowflake/connector/auth/oauth_code.py +383 -0
- snowflake_connector_python-3.14.1/src/snowflake/connector/auth/oauth_credentials.py +64 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/okta.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/pat.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/usrpwdmfa.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/auth/webbrowser.py +1 -4
- snowflake_connector_python-3.14.1/src/snowflake/connector/auth/workload_identity.py +94 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/azure_storage_client.py +9 -23
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/backoff_policies.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/bind_upload_agent.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/cache.py +11 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/compat.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/config_manager.py +3 -11
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/connection.py +304 -46
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/connection_diagnostic.py +1 -5
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/constants.py +12 -6
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/converter.py +14 -10
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/converter_issue23517.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/converter_null.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/converter_snowsql.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/cursor.py +190 -11
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/dbapi.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/description.py +0 -4
- snowflake_connector_python-3.14.1/src/snowflake/connector/direct_file_operation_utils.py +60 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/encryption_util.py +4 -5
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/errorcode.py +7 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/errors.py +0 -4
- snowflake_connector_python-3.14.1/src/snowflake/connector/externals_utils/externals_setup.py +27 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/feature.py +0 -3
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/file_compression_type.py +0 -4
- snowflake_connector_python-3.14.1/src/snowflake/connector/file_lock.py +72 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/file_transfer_agent.py +10 -7
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/file_util.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/gcs_storage_client.py +92 -17
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/gzip_decoder.py +1 -5
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/local_storage_client.py +4 -5
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/log_configuration.py +0 -5
- snowflake_connector_python-3.14.1/src/snowflake/connector/logging_utils/filters.py +72 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.cpp +15 -6
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.hpp +6 -5
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -4
- snowflake_connector_python-3.14.1/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +83 -0
- snowflake_connector_python-3.14.1/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +35 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -3
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +1 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +1 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_arrow_iterator.pyx +10 -7
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +45 -32
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.cpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.hpp +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/network.py +17 -7
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/ocsp_asn1crypto.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/ocsp_snowflake.py +14 -19
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/options.py +11 -16
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/pandas_tools.py +52 -6
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/proxy.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/result_batch.py +14 -6
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/result_set.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/s3_storage_client.py +18 -6
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/secret_detector.py +47 -28
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/sf_dirs.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/sfbinaryformat.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/sfdatetime.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/snow_logging.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/sqlstate.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/ssd_internal_keys.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/ssl_wrap_socket.py +4 -10
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/storage_client.py +11 -5
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/telemetry.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/telemetry_oob.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/test_util.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/time_util.py +0 -4
- snowflake_connector_python-3.14.1/src/snowflake/connector/token_cache.py +402 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/tool/dump_certs.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/tool/dump_ocsp_response.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/tool/dump_ocsp_response_cache.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/tool/probe_connection.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/url_util.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/util_text.py +0 -4
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/__init__.py +0 -1
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/adapters.py +0 -1
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/exceptions.py +0 -1
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/models.py +0 -1
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/utils.py +0 -1
- snowflake_connector_python-3.14.1/src/snowflake/connector/vendored/urllib3/contrib/_securetransport/__init__.py +0 -0
- snowflake_connector_python-3.14.1/src/snowflake/connector/vendored/urllib3/packages/__init__.py +0 -0
- snowflake_connector_python-3.14.1/src/snowflake/connector/vendored/urllib3/packages/backports/__init__.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/version.py +1 -1
- snowflake_connector_python-3.14.1/src/snowflake/connector/wif_util.py +327 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake_connector_python.egg-info/PKG-INFO +44 -9
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake_connector_python.egg-info/SOURCES.txt +16 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake_connector_python.egg-info/requires.txt +6 -7
- snowflake_connector_python-3.13.2/src/snowflake/connector/tool/__init__.py +0 -3
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/CONTRIBUTING.md +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/LICENSE.txt +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/NOTICE +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/SECURITY.md +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/pyproject.toml +0 -0
- {snowflake_connector_python-3.13.2/src/snowflake/connector/vendored/urllib3/contrib → snowflake_connector_python-3.14.1/src/snowflake/connector/externals_utils}/__init__.py +0 -0
- {snowflake_connector_python-3.13.2/src/snowflake/connector/vendored/urllib3/contrib/_securetransport → snowflake_connector_python-3.14.1/src/snowflake/connector/logging_utils}/__init__.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.c +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/py.typed +0 -0
- {snowflake_connector_python-3.13.2/src/snowflake/connector/vendored/urllib3/packages → snowflake_connector_python-3.14.1/src/snowflake/connector/tool}/__init__.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/__init__.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/LICENSE +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/__version__.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/_internal_utils.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/api.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/auth.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/certs.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/compat.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/cookies.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/help.py +1 -1
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/hooks.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/sessions.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/status_codes.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/requests/structures.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/LICENSE.txt +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/__init__.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/_collections.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/_version.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/connection.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/connectionpool.py +0 -0
- {snowflake_connector_python-3.13.2/src/snowflake/connector/vendored/urllib3/packages/backports → snowflake_connector_python-3.14.1/src/snowflake/connector/vendored/urllib3/contrib}/__init__.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/contrib/_appengine_environ.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/contrib/_securetransport/bindings.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/contrib/_securetransport/low_level.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/contrib/appengine.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/contrib/ntlmpool.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/contrib/pyopenssl.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/contrib/securetransport.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/contrib/socks.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/exceptions.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/fields.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/filepost.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/packages/backports/makefile.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/packages/backports/weakref_finalize.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/packages/six.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/poolmanager.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/request.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/response.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/__init__.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/connection.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/proxy.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/queue.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/request.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/response.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/retry.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/ssl_.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/ssl_match_hostname.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/ssltransport.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/timeout.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/url.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake/connector/vendored/urllib3/util/wait.py +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake_connector_python.egg-info/dependency_links.txt +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake_connector_python.egg-info/entry_points.txt +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake_connector_python.egg-info/not-zip-safe +0 -0
- {snowflake_connector_python-3.13.2 → snowflake_connector_python-3.14.1}/src/snowflake_connector_python.egg-info/top_level.txt +0 -0
|
@@ -7,6 +7,39 @@ https://docs.snowflake.com/
|
|
|
7
7
|
Source code is also available at: https://github.com/snowflakedb/snowflake-connector-python
|
|
8
8
|
|
|
9
9
|
# Release Notes
|
|
10
|
+
- v3.15(TBD)
|
|
11
|
+
-
|
|
12
|
+
|
|
13
|
+
- v3.14.1(April 21, 2025)
|
|
14
|
+
- Added support for Python 3.13.
|
|
15
|
+
- NOTE: Windows 64 support is still experimental and should not yet be used for production environments.
|
|
16
|
+
- Dropped support for Python 3.8.
|
|
17
|
+
- Added basic decimal floating-point type support.
|
|
18
|
+
- Added experimental authentication methods.
|
|
19
|
+
- Added support of GCS regional endpoints.
|
|
20
|
+
- Added support of GCS virtual urls. See more: https://cloud.google.com/storage/docs/request-endpoints#xml-api
|
|
21
|
+
- Added `client_fetch_threads` experimental parameter to better utilize threads for fetching query results.
|
|
22
|
+
- Added `check_arrow_conversion_error_on_every_column` connection property that can be set to `False` to restore previous behaviour in which driver will ignore errors until it occurs in the last column. This flag's purpose is to unblock workflows that may be impacted by the bugfix and will be removed in later releases.
|
|
23
|
+
- Lowered log levels from info to debug for some of the messages to make the output easier to follow.
|
|
24
|
+
- Allowed the connector to inherit a UUID4 generated upstream, provided in statement parameters (field: `requestId`), rather than automatically generate a UUID4 to use for the HTTP Request ID.
|
|
25
|
+
- Improved logging in urllib3, boto3, botocore - assured data masking even after migration to the external owned library in the future.
|
|
26
|
+
- Improved error message for client-side query cancellations due to timeouts.
|
|
27
|
+
- Improved security and robustness for the temporary credentials cache storage.
|
|
28
|
+
- Fixed a bug that caused driver to fail silently on `TO_DATE` arrow to python conversion when invalid date was followed by the correct one.
|
|
29
|
+
- Fixed expired S3 credentials update and increment retry when expired credentials are found.
|
|
30
|
+
- Deprecated `insecure_mode` connection property and replaced it with `disable_ocsp_checks` with the same behavior as the former property.
|
|
31
|
+
|
|
32
|
+
- v3.14.0(March 03, 2025)
|
|
33
|
+
- Bumped pyOpenSSL dependency upper boundary from <25.0.0 to <26.0.0.
|
|
34
|
+
- Added a <19.0.0 pin to pyarrow as a workaround to a bug affecting Azure Batch.
|
|
35
|
+
- Optimized distribution package lookup to speed up import.
|
|
36
|
+
- Fixed a bug where privatelink OCSP Cache url could not be determined if privatelink account name was specified in uppercase.
|
|
37
|
+
- Added support for iceberg tables to `write_pandas`.
|
|
38
|
+
- Fixed base64 encoded private key tests.
|
|
39
|
+
- Fixed a bug where file permission check happened on Windows.
|
|
40
|
+
- Added support for File types.
|
|
41
|
+
- Added `unsafe_file_write` connection parameter that restores the previous behaviour of saving files downloaded with GET with 644 permissions.
|
|
42
|
+
|
|
10
43
|
- v3.13.2(January 29, 2025)
|
|
11
44
|
- Changed not to use scoped temporary objects.
|
|
12
45
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-connector-python
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.14.1
|
|
4
4
|
Summary: Snowflake Connector for Python
|
|
5
5
|
Home-page: https://www.snowflake.com/
|
|
6
6
|
Author: Snowflake, Inc
|
|
@@ -22,11 +22,11 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
22
22
|
Classifier: Operating System :: OS Independent
|
|
23
23
|
Classifier: Programming Language :: Python :: 3
|
|
24
24
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
25
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
26
25
|
Classifier: Programming Language :: Python :: 3.9
|
|
27
26
|
Classifier: Programming Language :: Python :: 3.10
|
|
28
27
|
Classifier: Programming Language :: Python :: 3.11
|
|
29
28
|
Classifier: Programming Language :: Python :: 3.12
|
|
29
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
30
30
|
Classifier: Programming Language :: SQL
|
|
31
31
|
Classifier: Topic :: Database
|
|
32
32
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
@@ -34,18 +34,19 @@ Classifier: Topic :: Software Development
|
|
|
34
34
|
Classifier: Topic :: Software Development :: Libraries
|
|
35
35
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
36
36
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
37
|
-
Requires-Python: >=3.
|
|
37
|
+
Requires-Python: >=3.9
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
39
39
|
License-File: LICENSE.txt
|
|
40
40
|
License-File: NOTICE
|
|
41
41
|
Requires-Dist: asn1crypto<2.0.0,>0.24.0
|
|
42
|
+
Requires-Dist: boto3>=1.0
|
|
43
|
+
Requires-Dist: botocore>=1.0
|
|
42
44
|
Requires-Dist: cffi<2.0.0,>=1.9
|
|
43
45
|
Requires-Dist: cryptography>=3.1.0
|
|
44
|
-
Requires-Dist: pyOpenSSL<
|
|
46
|
+
Requires-Dist: pyOpenSSL<26.0.0,>=22.0.0
|
|
45
47
|
Requires-Dist: pyjwt<3.0.0
|
|
46
48
|
Requires-Dist: pytz
|
|
47
49
|
Requires-Dist: requests<3.0.0
|
|
48
|
-
Requires-Dist: importlib-metadata; python_version < "3.8"
|
|
49
50
|
Requires-Dist: packaging
|
|
50
51
|
Requires-Dist: charset_normalizer<4,>=2
|
|
51
52
|
Requires-Dist: idna<4,>=2.5
|
|
@@ -60,7 +61,7 @@ Provides-Extra: development
|
|
|
60
61
|
Requires-Dist: Cython; extra == "development"
|
|
61
62
|
Requires-Dist: coverage; extra == "development"
|
|
62
63
|
Requires-Dist: more-itertools; extra == "development"
|
|
63
|
-
Requires-Dist: numpy<1.
|
|
64
|
+
Requires-Dist: numpy<2.1.0; extra == "development"
|
|
64
65
|
Requires-Dist: pendulum!=2.1.1; extra == "development"
|
|
65
66
|
Requires-Dist: pexpect; extra == "development"
|
|
66
67
|
Requires-Dist: pytest<7.5.0; extra == "development"
|
|
@@ -70,10 +71,11 @@ Requires-Dist: pytest-timeout; extra == "development"
|
|
|
70
71
|
Requires-Dist: pytest-xdist; extra == "development"
|
|
71
72
|
Requires-Dist: pytzdata; extra == "development"
|
|
72
73
|
Provides-Extra: pandas
|
|
73
|
-
Requires-Dist: pandas<3.0.0,>=1.
|
|
74
|
-
Requires-Dist: pyarrow; extra == "pandas"
|
|
74
|
+
Requires-Dist: pandas<3.0.0,>=2.1.2; extra == "pandas"
|
|
75
|
+
Requires-Dist: pyarrow<19.0.0; extra == "pandas"
|
|
75
76
|
Provides-Extra: secure-local-storage
|
|
76
77
|
Requires-Dist: keyring<26.0.0,>=23.1.0; extra == "secure-local-storage"
|
|
78
|
+
Dynamic: license-file
|
|
77
79
|
|
|
78
80
|
This package includes the Snowflake Connector for Python, which conforms to the Python DB API 2.0 specification:
|
|
79
81
|
https://www.python.org/dev/peps/pep-0249/
|
|
@@ -84,6 +86,39 @@ https://docs.snowflake.com/
|
|
|
84
86
|
Source code is also available at: https://github.com/snowflakedb/snowflake-connector-python
|
|
85
87
|
|
|
86
88
|
# Release Notes
|
|
89
|
+
- v3.15(TBD)
|
|
90
|
+
-
|
|
91
|
+
|
|
92
|
+
- v3.14.1(April 21, 2025)
|
|
93
|
+
- Added support for Python 3.13.
|
|
94
|
+
- NOTE: Windows 64 support is still experimental and should not yet be used for production environments.
|
|
95
|
+
- Dropped support for Python 3.8.
|
|
96
|
+
- Added basic decimal floating-point type support.
|
|
97
|
+
- Added experimental authentication methods.
|
|
98
|
+
- Added support of GCS regional endpoints.
|
|
99
|
+
- Added support of GCS virtual urls. See more: https://cloud.google.com/storage/docs/request-endpoints#xml-api
|
|
100
|
+
- Added `client_fetch_threads` experimental parameter to better utilize threads for fetching query results.
|
|
101
|
+
- Added `check_arrow_conversion_error_on_every_column` connection property that can be set to `False` to restore previous behaviour in which driver will ignore errors until it occurs in the last column. This flag's purpose is to unblock workflows that may be impacted by the bugfix and will be removed in later releases.
|
|
102
|
+
- Lowered log levels from info to debug for some of the messages to make the output easier to follow.
|
|
103
|
+
- Allowed the connector to inherit a UUID4 generated upstream, provided in statement parameters (field: `requestId`), rather than automatically generate a UUID4 to use for the HTTP Request ID.
|
|
104
|
+
- Improved logging in urllib3, boto3, botocore - assured data masking even after migration to the external owned library in the future.
|
|
105
|
+
- Improved error message for client-side query cancellations due to timeouts.
|
|
106
|
+
- Improved security and robustness for the temporary credentials cache storage.
|
|
107
|
+
- Fixed a bug that caused driver to fail silently on `TO_DATE` arrow to python conversion when invalid date was followed by the correct one.
|
|
108
|
+
- Fixed expired S3 credentials update and increment retry when expired credentials are found.
|
|
109
|
+
- Deprecated `insecure_mode` connection property and replaced it with `disable_ocsp_checks` with the same behavior as the former property.
|
|
110
|
+
|
|
111
|
+
- v3.14.0(March 03, 2025)
|
|
112
|
+
- Bumped pyOpenSSL dependency upper boundary from <25.0.0 to <26.0.0.
|
|
113
|
+
- Added a <19.0.0 pin to pyarrow as a workaround to a bug affecting Azure Batch.
|
|
114
|
+
- Optimized distribution package lookup to speed up import.
|
|
115
|
+
- Fixed a bug where privatelink OCSP Cache url could not be determined if privatelink account name was specified in uppercase.
|
|
116
|
+
- Added support for iceberg tables to `write_pandas`.
|
|
117
|
+
- Fixed base64 encoded private key tests.
|
|
118
|
+
- Fixed a bug where file permission check happened on Windows.
|
|
119
|
+
- Added support for File types.
|
|
120
|
+
- Added `unsafe_file_write` connection parameter that restores the previous behaviour of saving files downloaded with GET with 644 permissions.
|
|
121
|
+
|
|
87
122
|
- v3.13.2(January 29, 2025)
|
|
88
123
|
- Changed not to use scoped temporary objects.
|
|
89
124
|
|
|
@@ -15,7 +15,7 @@ using the Snowflake JDBC or ODBC drivers.
|
|
|
15
15
|
|
|
16
16
|
The connector has **no** dependencies on JDBC or ODBC.
|
|
17
17
|
It can be installed using ``pip`` on Linux, Mac OSX, and Windows platforms
|
|
18
|
-
where Python 3.
|
|
18
|
+
where Python 3.9.0 (or higher) is installed.
|
|
19
19
|
|
|
20
20
|
Snowflake Documentation is available at:
|
|
21
21
|
https://docs.snowflake.com/
|
|
@@ -27,7 +27,7 @@ https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowfl
|
|
|
27
27
|
|
|
28
28
|
### Locally
|
|
29
29
|
|
|
30
|
-
Install
|
|
30
|
+
Install a supported Python version. Clone the Snowflake Connector for Python repository, then run the following commands
|
|
31
31
|
to create a wheel package using PEP-517 build:
|
|
32
32
|
|
|
33
33
|
```shell
|
|
@@ -42,7 +42,7 @@ Find the `snowflake_connector_python*.whl` package in the `./dist` directory.
|
|
|
42
42
|
### In Docker
|
|
43
43
|
Or use our Dockerized build script `ci/build_docker.sh` and find the built wheel files in `dist/repaired_wheels`.
|
|
44
44
|
|
|
45
|
-
Note: `ci/build_docker.sh` can be used to compile only certain versions, like this: `ci/build_docker.sh "3.
|
|
45
|
+
Note: `ci/build_docker.sh` can be used to compile only certain versions, like this: `ci/build_docker.sh "3.9 3.10"`
|
|
46
46
|
|
|
47
47
|
## Code hygiene and other utilities
|
|
48
48
|
These tools are integrated into `tox` to allow us to easily set them up universally on any computer.
|
|
@@ -20,11 +20,11 @@ classifiers =
|
|
|
20
20
|
Operating System :: OS Independent
|
|
21
21
|
Programming Language :: Python :: 3
|
|
22
22
|
Programming Language :: Python :: 3 :: Only
|
|
23
|
-
Programming Language :: Python :: 3.8
|
|
24
23
|
Programming Language :: Python :: 3.9
|
|
25
24
|
Programming Language :: Python :: 3.10
|
|
26
25
|
Programming Language :: Python :: 3.11
|
|
27
26
|
Programming Language :: Python :: 3.12
|
|
27
|
+
Programming Language :: Python :: 3.13
|
|
28
28
|
Programming Language :: SQL
|
|
29
29
|
Topic :: Database
|
|
30
30
|
Topic :: Scientific/Engineering :: Information Analysis
|
|
@@ -40,17 +40,18 @@ project_urls =
|
|
|
40
40
|
Changelog=https://github.com/snowflakedb/snowflake-connector-python/blob/main/DESCRIPTION.md
|
|
41
41
|
|
|
42
42
|
[options]
|
|
43
|
-
python_requires = >=3.
|
|
43
|
+
python_requires = >=3.9
|
|
44
44
|
packages = find_namespace:
|
|
45
45
|
install_requires =
|
|
46
46
|
asn1crypto>0.24.0,<2.0.0
|
|
47
|
+
boto3>=1.0
|
|
48
|
+
botocore>=1.0
|
|
47
49
|
cffi>=1.9,<2.0.0
|
|
48
50
|
cryptography>=3.1.0
|
|
49
|
-
pyOpenSSL>=22.0.0,<
|
|
51
|
+
pyOpenSSL>=22.0.0,<26.0.0
|
|
50
52
|
pyjwt<3.0.0
|
|
51
53
|
pytz
|
|
52
54
|
requests<3.0.0
|
|
53
|
-
importlib-metadata; python_version < '3.8'
|
|
54
55
|
packaging
|
|
55
56
|
charset_normalizer>=2,<4
|
|
56
57
|
idna>=2.5,<4
|
|
@@ -82,7 +83,7 @@ development =
|
|
|
82
83
|
Cython
|
|
83
84
|
coverage
|
|
84
85
|
more-itertools
|
|
85
|
-
numpy<1.
|
|
86
|
+
numpy<2.1.0
|
|
86
87
|
pendulum!=2.1.1
|
|
87
88
|
pexpect
|
|
88
89
|
pytest<7.5.0
|
|
@@ -92,8 +93,8 @@ development =
|
|
|
92
93
|
pytest-xdist
|
|
93
94
|
pytzdata
|
|
94
95
|
pandas =
|
|
95
|
-
pandas>=1.
|
|
96
|
-
pyarrow
|
|
96
|
+
pandas>=2.1.2,<3.0.0
|
|
97
|
+
pyarrow<19.0.0
|
|
97
98
|
secure-local-storage =
|
|
98
99
|
keyring>=23.1.0,<26.0.0
|
|
99
100
|
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2012-2019 Snowflake Computing Inc. All rights reserved.
|
|
4
|
-
#
|
|
5
2
|
|
|
6
3
|
import os
|
|
7
4
|
import sys
|
|
@@ -101,6 +98,7 @@ if _ABLE_TO_COMPILE_EXTENSIONS and not SNOWFLAKE_DISABLE_COMPILE_ARROW_EXTENSION
|
|
|
101
98
|
"CArrowIterator.cpp",
|
|
102
99
|
"CArrowTableIterator.cpp",
|
|
103
100
|
"DateConverter.cpp",
|
|
101
|
+
"DecFloatConverter.cpp",
|
|
104
102
|
"DecimalConverter.cpp",
|
|
105
103
|
"FixedSizeListConverter.cpp",
|
|
106
104
|
"FloatConverter.cpp",
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2012-2023 Snowflake Computing Inc. All rights reserved.
|
|
4
|
-
#
|
|
5
|
-
|
|
6
2
|
# Python Db API v2
|
|
7
3
|
#
|
|
8
4
|
from __future__ import annotations
|
|
@@ -16,6 +12,8 @@ paramstyle = "pyformat"
|
|
|
16
12
|
import logging
|
|
17
13
|
from logging import NullHandler
|
|
18
14
|
|
|
15
|
+
from snowflake.connector.externals_utils.externals_setup import setup_external_libraries
|
|
16
|
+
|
|
19
17
|
from .connection import SnowflakeConnection
|
|
20
18
|
from .cursor import DictCursor
|
|
21
19
|
from .dbapi import (
|
|
@@ -48,6 +46,7 @@ from .log_configuration import EasyLoggingConfigPython
|
|
|
48
46
|
from .version import VERSION
|
|
49
47
|
|
|
50
48
|
logging.getLogger(__name__).addHandler(NullHandler())
|
|
49
|
+
setup_external_libraries()
|
|
51
50
|
|
|
52
51
|
|
|
53
52
|
@wraps(SnowflakeConnection.__init__)
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2012-2023 Snowflake Computing Inc. All rights reserved.
|
|
3
|
-
#
|
|
4
|
-
|
|
5
1
|
from __future__ import annotations
|
|
6
2
|
|
|
7
3
|
import string
|
|
8
4
|
from enum import Enum
|
|
9
5
|
from random import choice
|
|
10
6
|
from threading import Timer
|
|
7
|
+
from uuid import UUID
|
|
11
8
|
|
|
12
9
|
|
|
13
10
|
class TempObjectType(Enum):
|
|
@@ -33,6 +30,8 @@ _PYTHON_SNOWPARK_USE_SCOPED_TEMP_OBJECTS_STRING = (
|
|
|
33
30
|
"PYTHON_SNOWPARK_USE_SCOPED_TEMP_OBJECTS"
|
|
34
31
|
)
|
|
35
32
|
|
|
33
|
+
REQUEST_ID_STATEMENT_PARAM_NAME = "requestId"
|
|
34
|
+
|
|
36
35
|
|
|
37
36
|
def generate_random_alphanumeric(length: int = 10) -> str:
|
|
38
37
|
return "".join(choice(ALPHANUMERIC) for _ in range(length))
|
|
@@ -46,6 +45,21 @@ def get_temp_type_for_object(use_scoped_temp_objects: bool) -> str:
|
|
|
46
45
|
return SCOPED_TEMPORARY_STRING if use_scoped_temp_objects else TEMPORARY_STRING
|
|
47
46
|
|
|
48
47
|
|
|
48
|
+
def is_uuid4(str_or_uuid: str | UUID) -> bool:
|
|
49
|
+
"""Check whether provided string str is a valid UUID version4."""
|
|
50
|
+
if isinstance(str_or_uuid, UUID):
|
|
51
|
+
return str_or_uuid.version == 4
|
|
52
|
+
|
|
53
|
+
if not isinstance(str_or_uuid, str):
|
|
54
|
+
return False
|
|
55
|
+
|
|
56
|
+
try:
|
|
57
|
+
uuid_str = str(UUID(str_or_uuid, version=4))
|
|
58
|
+
except ValueError:
|
|
59
|
+
return False
|
|
60
|
+
return uuid_str == str_or_uuid
|
|
61
|
+
|
|
62
|
+
|
|
49
63
|
class _TrackedQueryCancellationTimer(Timer):
|
|
50
64
|
def __init__(self, interval, function, args=None, kwargs=None):
|
|
51
65
|
super().__init__(interval, function, args, kwargs)
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2012-2023 Snowflake Computing Inc. All rights reserved.
|
|
4
|
-
#
|
|
5
|
-
|
|
6
2
|
from __future__ import annotations
|
|
7
3
|
|
|
8
4
|
import decimal
|
|
@@ -159,3 +155,11 @@ class ArrowConverterContext:
|
|
|
159
155
|
digits = [int(digit) for digit in str(int128) if digit != "-"]
|
|
160
156
|
sign = int128 < 0
|
|
161
157
|
return decimal.Decimal((sign, digits, -scale))
|
|
158
|
+
|
|
159
|
+
def DECFLOAT_to_decimal(self, exponent: int, significand: bytes) -> decimal.Decimal:
|
|
160
|
+
# significand is two's complement big endian.
|
|
161
|
+
significand = int.from_bytes(significand, byteorder="big", signed=True)
|
|
162
|
+
return decimal.Decimal(significand).scaleb(exponent)
|
|
163
|
+
|
|
164
|
+
def DECFLOAT_to_numpy_float64(self, exponent: int, significand: bytes) -> float64:
|
|
165
|
+
return numpy.float64(self.DECFLOAT_to_decimal(exponent, significand))
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2012-2023 Snowflake Computing Inc. All rights reserved.
|
|
3
|
-
#
|
|
4
|
-
|
|
5
1
|
from __future__ import annotations
|
|
6
2
|
|
|
7
3
|
from ._auth import Auth, get_public_key_fingerprint, get_token_from_private_key
|
|
@@ -9,22 +5,30 @@ from .by_plugin import AuthByPlugin, AuthType
|
|
|
9
5
|
from .default import AuthByDefault
|
|
10
6
|
from .idtoken import AuthByIdToken
|
|
11
7
|
from .keypair import AuthByKeyPair
|
|
8
|
+
from .no_auth import AuthNoAuth
|
|
12
9
|
from .oauth import AuthByOAuth
|
|
10
|
+
from .oauth_code import AuthByOauthCode
|
|
11
|
+
from .oauth_credentials import AuthByOauthCredentials
|
|
13
12
|
from .okta import AuthByOkta
|
|
14
13
|
from .pat import AuthByPAT
|
|
15
14
|
from .usrpwdmfa import AuthByUsrPwdMfa
|
|
16
15
|
from .webbrowser import AuthByWebBrowser
|
|
16
|
+
from .workload_identity import AuthByWorkloadIdentity
|
|
17
17
|
|
|
18
18
|
FIRST_PARTY_AUTHENTICATORS = frozenset(
|
|
19
19
|
(
|
|
20
20
|
AuthByDefault,
|
|
21
21
|
AuthByKeyPair,
|
|
22
22
|
AuthByOAuth,
|
|
23
|
+
AuthByOauthCode,
|
|
24
|
+
AuthByOauthCredentials,
|
|
23
25
|
AuthByOkta,
|
|
24
26
|
AuthByUsrPwdMfa,
|
|
25
27
|
AuthByWebBrowser,
|
|
26
28
|
AuthByIdToken,
|
|
27
29
|
AuthByPAT,
|
|
30
|
+
AuthByWorkloadIdentity,
|
|
31
|
+
AuthNoAuth,
|
|
28
32
|
)
|
|
29
33
|
)
|
|
30
34
|
|
|
@@ -34,9 +38,13 @@ __all__ = [
|
|
|
34
38
|
"AuthByKeyPair",
|
|
35
39
|
"AuthByPAT",
|
|
36
40
|
"AuthByOAuth",
|
|
41
|
+
"AuthByOauthCode",
|
|
42
|
+
"AuthByOauthCredentials",
|
|
37
43
|
"AuthByOkta",
|
|
38
44
|
"AuthByUsrPwdMfa",
|
|
39
45
|
"AuthByWebBrowser",
|
|
46
|
+
"AuthByWorkloadIdentity",
|
|
47
|
+
"AuthNoAuth",
|
|
40
48
|
"Auth",
|
|
41
49
|
"AuthType",
|
|
42
50
|
"FIRST_PARTY_AUTHENTICATORS",
|