snowflake-connector-python 3.8.0__tar.gz → 3.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/DESCRIPTION.md +9 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/PKG-INFO +10 -1
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/__init__.py +2 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/connection.py +4 -0
- snowflake_connector_python-3.9.0/src/snowflake/connector/log_configuration.py +65 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/pandas_tools.py +7 -8
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/s3_storage_client.py +4 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/version.py +1 -1
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake_connector_python.egg-info/PKG-INFO +10 -1
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake_connector_python.egg-info/SOURCES.txt +1 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/CONTRIBUTING.md +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/LICENSE.txt +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/MANIFEST.in +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/NOTICE +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/README.md +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/SECURITY.md +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/pyproject.toml +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/setup.cfg +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/setup.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/_query_context_cache.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/_sql_util.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/arrow_context.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/_auth.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/by_plugin.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/default.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/idtoken.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/keypair.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/oauth.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/okta.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/usrpwdmfa.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/auth/webbrowser.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/azure_storage_client.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/backoff_policies.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/bind_upload_agent.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/cache.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/compat.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/config_manager.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/connection_diagnostic.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/constants.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/converter.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/converter_issue23517.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/converter_null.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/converter_snowsql.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/cursor.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/dbapi.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/description.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/encryption_util.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/errorcode.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/errors.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/feature.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/file_compression_type.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/file_transfer_agent.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/file_util.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/gcs_storage_client.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/gzip_decoder.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/local_storage_client.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_arrow_iterator.pyx +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.c +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.cpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.hpp +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/network.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/ocsp_asn1crypto.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/ocsp_snowflake.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/options.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/proxy.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/py.typed +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/result_batch.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/result_set.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/secret_detector.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/sf_dirs.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/sfbinaryformat.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/sfdatetime.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/snow_logging.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/sqlstate.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/ssd_internal_keys.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/ssl_wrap_socket.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/storage_client.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/telemetry.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/telemetry_oob.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/test_util.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/time_util.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/tool/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/tool/dump_certs.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/tool/dump_ocsp_response.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/tool/dump_ocsp_response_cache.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/tool/probe_connection.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/url_util.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/util_text.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/LICENSE +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/__version__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/_internal_utils.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/adapters.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/api.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/auth.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/certs.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/compat.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/cookies.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/exceptions.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/help.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/hooks.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/models.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/sessions.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/status_codes.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/structures.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/requests/utils.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/LICENSE.txt +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/_collections.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/_version.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/connection.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/connectionpool.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/_appengine_environ.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/_securetransport/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/_securetransport/bindings.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/_securetransport/low_level.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/appengine.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/ntlmpool.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/pyopenssl.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/securetransport.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/contrib/socks.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/exceptions.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/fields.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/filepost.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/packages/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/packages/backports/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/packages/backports/makefile.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/packages/backports/weakref_finalize.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/packages/six.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/poolmanager.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/request.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/response.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/__init__.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/connection.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/proxy.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/queue.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/request.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/response.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/retry.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/ssl_.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/ssl_match_hostname.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/ssltransport.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/timeout.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/url.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake/connector/vendored/urllib3/util/wait.py +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake_connector_python.egg-info/dependency_links.txt +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake_connector_python.egg-info/entry_points.txt +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake_connector_python.egg-info/not-zip-safe +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake_connector_python.egg-info/requires.txt +0 -0
- {snowflake-connector-python-3.8.0 → snowflake_connector_python-3.9.0}/src/snowflake_connector_python.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,15 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne
|
|
|
8
8
|
|
|
9
9
|
# Release Notes
|
|
10
10
|
|
|
11
|
+
- v3.9.0(April 20,2024)
|
|
12
|
+
|
|
13
|
+
- Added easy logging configuration so that users can easily generate log file by setup log config in `$SNOWFLAKE_HOME/config.toml`.
|
|
14
|
+
- Improved s3 acceleration logic when connecting to China endpoint.
|
|
15
|
+
|
|
16
|
+
- v3.8.1(April 09, 2024)
|
|
17
|
+
|
|
18
|
+
- Reverted the change "Updated `write_pandas` to skip TABLE IF NOT EXISTS in truncate mode." introduced in v3.8.0 (yanked) as it's a breaking change. `write_pandas` will be fixed in the future in a non-breaking way.
|
|
19
|
+
|
|
11
20
|
- v3.8.0(April 04,2024)
|
|
12
21
|
|
|
13
22
|
- Improved `externalbrowser` auth in containerized environments
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: snowflake-connector-python
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.9.0
|
|
4
4
|
Summary: Snowflake Connector for Python
|
|
5
5
|
Home-page: https://www.snowflake.com/
|
|
6
6
|
Author: Snowflake, Inc
|
|
@@ -85,6 +85,15 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne
|
|
|
85
85
|
|
|
86
86
|
# Release Notes
|
|
87
87
|
|
|
88
|
+
- v3.9.0(April 20,2024)
|
|
89
|
+
|
|
90
|
+
- Added easy logging configuration so that users can easily generate log file by setup log config in `$SNOWFLAKE_HOME/config.toml`.
|
|
91
|
+
- Improved s3 acceleration logic when connecting to China endpoint.
|
|
92
|
+
|
|
93
|
+
- v3.8.1(April 09, 2024)
|
|
94
|
+
|
|
95
|
+
- Reverted the change "Updated `write_pandas` to skip TABLE IF NOT EXISTS in truncate mode." introduced in v3.8.0 (yanked) as it's a breaking change. `write_pandas` will be fixed in the future in a non-breaking way.
|
|
96
|
+
|
|
88
97
|
- v3.8.0(April 04,2024)
|
|
89
98
|
|
|
90
99
|
- Improved `externalbrowser` auth in containerized environments
|
|
@@ -44,6 +44,7 @@ from .errors import (
|
|
|
44
44
|
ProgrammingError,
|
|
45
45
|
_Warning,
|
|
46
46
|
)
|
|
47
|
+
from .log_configuration import EasyLoggingConfigPython
|
|
47
48
|
from .version import VERSION
|
|
48
49
|
|
|
49
50
|
logging.getLogger(__name__).addHandler(NullHandler())
|
|
@@ -92,4 +93,5 @@ __all__ = [
|
|
|
92
93
|
"DATETIME",
|
|
93
94
|
"ROWID",
|
|
94
95
|
# Extended data type (experimental)
|
|
96
|
+
"EasyLoggingConfigPython",
|
|
95
97
|
]
|
|
@@ -92,6 +92,7 @@ from .errorcode import (
|
|
|
92
92
|
ER_NOT_IMPLICITY_SNOWFLAKE_DATATYPE,
|
|
93
93
|
)
|
|
94
94
|
from .errors import DatabaseError, Error, OperationalError, ProgrammingError
|
|
95
|
+
from .log_configuration import EasyLoggingConfigPython
|
|
95
96
|
from .network import (
|
|
96
97
|
DEFAULT_AUTHENTICATOR,
|
|
97
98
|
EXTERNAL_BROWSER_AUTHENTICATOR,
|
|
@@ -383,6 +384,9 @@ class SnowflakeConnection:
|
|
|
383
384
|
If overwriting values from the default connection is desirable, supply
|
|
384
385
|
the name explicitly.
|
|
385
386
|
"""
|
|
387
|
+
# initiate easy logging during every connection
|
|
388
|
+
easy_logging = EasyLoggingConfigPython()
|
|
389
|
+
easy_logging.create_log()
|
|
386
390
|
self._lock_sequence_counter = Lock()
|
|
387
391
|
self.sequence_counter = 0
|
|
388
392
|
self._errorhandler = Error.default_errorhandler
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright (c) 2012-2023 Snowflake Computing Inc. All rights reserved.
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import logging
|
|
9
|
+
import os
|
|
10
|
+
from logging.handlers import TimedRotatingFileHandler
|
|
11
|
+
|
|
12
|
+
from snowflake.connector.config_manager import CONFIG_MANAGER
|
|
13
|
+
from snowflake.connector.constants import DIRS
|
|
14
|
+
from snowflake.connector.secret_detector import SecretDetector
|
|
15
|
+
|
|
16
|
+
LOG_FILE_NAME = "python-connector.log"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class EasyLoggingConfigPython:
|
|
20
|
+
def __init__(self):
|
|
21
|
+
self.path: str | None = None
|
|
22
|
+
self.level: str | None = None
|
|
23
|
+
self.save_logs: bool = False
|
|
24
|
+
self.parse_config_file()
|
|
25
|
+
|
|
26
|
+
def parse_config_file(self):
|
|
27
|
+
CONFIG_MANAGER.read_config()
|
|
28
|
+
data = CONFIG_MANAGER.conf_file_cache
|
|
29
|
+
if log := data.get("log"):
|
|
30
|
+
self.save_logs = log.get("save_logs", False)
|
|
31
|
+
self.level = log.get("level", "INFO")
|
|
32
|
+
self.path = log.get("path", os.path.join(DIRS.user_config_path, "logs"))
|
|
33
|
+
|
|
34
|
+
if not os.path.isabs(self.path):
|
|
35
|
+
raise FileNotFoundError(
|
|
36
|
+
f"Log path must be an absolute file path: {self.path}"
|
|
37
|
+
)
|
|
38
|
+
# if log path does not exist, create it, else check accessibility
|
|
39
|
+
if not os.path.exists(self.path):
|
|
40
|
+
os.makedirs(self.path, exist_ok=True)
|
|
41
|
+
elif not os.access(self.path, os.R_OK | os.W_OK):
|
|
42
|
+
raise PermissionError(
|
|
43
|
+
f"log path: {self.path} is not accessible, please verify your config file"
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
# create_log() is called outside __init__() so that it can be easily turned off
|
|
47
|
+
def create_log(self):
|
|
48
|
+
if self.save_logs:
|
|
49
|
+
logging.basicConfig(
|
|
50
|
+
filename=os.path.join(self.path, LOG_FILE_NAME),
|
|
51
|
+
level=logging.getLevelName(self.level),
|
|
52
|
+
)
|
|
53
|
+
for logger_name in ["snowflake.connector", "botocore", "boto3"]:
|
|
54
|
+
logger = logging.getLogger(logger_name)
|
|
55
|
+
logger.setLevel(logging.getLevelName(self.level))
|
|
56
|
+
ch = TimedRotatingFileHandler(
|
|
57
|
+
os.path.join(self.path, LOG_FILE_NAME), when="midnight"
|
|
58
|
+
)
|
|
59
|
+
ch.setLevel(logging.getLevelName(self.level))
|
|
60
|
+
ch.setFormatter(
|
|
61
|
+
SecretDetector(
|
|
62
|
+
"%(asctime)s - %(threadName)s %(filename)s:%(lineno)d - %(funcName)s() - %(levelname)s - %(message)s"
|
|
63
|
+
)
|
|
64
|
+
)
|
|
65
|
+
logger.addHandler(ch)
|
|
@@ -393,14 +393,13 @@ def write_pandas(
|
|
|
393
393
|
quote_identifiers,
|
|
394
394
|
)
|
|
395
395
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
cursor.execute(create_table_sql, _is_internal=True)
|
|
396
|
+
create_table_sql = (
|
|
397
|
+
f"CREATE {table_type.upper()} TABLE IF NOT EXISTS {target_table_location} "
|
|
398
|
+
f"({create_table_columns})"
|
|
399
|
+
f" /* Python:snowflake.connector.pandas_tools.write_pandas() */ "
|
|
400
|
+
)
|
|
401
|
+
logger.debug(f"auto creating table with '{create_table_sql}'")
|
|
402
|
+
cursor.execute(create_table_sql, _is_internal=True)
|
|
404
403
|
# need explicit casting when the underlying table schema is inferred
|
|
405
404
|
parquet_columns = "$1:" + ",$1:".join(
|
|
406
405
|
f"{quote}{snowflake_col}{quote}::{column_type_mapping[col]}"
|
|
@@ -80,6 +80,7 @@ class SnowflakeS3RestClient(SnowflakeStorageClient):
|
|
|
80
80
|
)
|
|
81
81
|
)
|
|
82
82
|
self.use_s3_regional_url = use_s3_regional_url
|
|
83
|
+
self.location_type = stage_info.get("locationType")
|
|
83
84
|
|
|
84
85
|
# if GS sends us an endpoint, it's likely for FIPS. Use it.
|
|
85
86
|
self.endpoint: str | None = None
|
|
@@ -92,6 +93,9 @@ class SnowflakeS3RestClient(SnowflakeStorageClient):
|
|
|
92
93
|
def transfer_accelerate_config(
|
|
93
94
|
self, use_accelerate_endpoint: bool | None = None
|
|
94
95
|
) -> bool:
|
|
96
|
+
# accelerate cannot be used in China and us government
|
|
97
|
+
if self.location_type and "S3China" in self.location_type:
|
|
98
|
+
return False
|
|
95
99
|
# if self.endpoint has been set, e.g. by metadata, no more config is needed.
|
|
96
100
|
if self.endpoint is not None:
|
|
97
101
|
return self.endpoint.find("s3-accelerate.amazonaws.com") >= 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: snowflake-connector-python
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.9.0
|
|
4
4
|
Summary: Snowflake Connector for Python
|
|
5
5
|
Home-page: https://www.snowflake.com/
|
|
6
6
|
Author: Snowflake, Inc
|
|
@@ -85,6 +85,15 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne
|
|
|
85
85
|
|
|
86
86
|
# Release Notes
|
|
87
87
|
|
|
88
|
+
- v3.9.0(April 20,2024)
|
|
89
|
+
|
|
90
|
+
- Added easy logging configuration so that users can easily generate log file by setup log config in `$SNOWFLAKE_HOME/config.toml`.
|
|
91
|
+
- Improved s3 acceleration logic when connecting to China endpoint.
|
|
92
|
+
|
|
93
|
+
- v3.8.1(April 09, 2024)
|
|
94
|
+
|
|
95
|
+
- Reverted the change "Updated `write_pandas` to skip TABLE IF NOT EXISTS in truncate mode." introduced in v3.8.0 (yanked) as it's a breaking change. `write_pandas` will be fixed in the future in a non-breaking way.
|
|
96
|
+
|
|
88
97
|
- v3.8.0(April 04,2024)
|
|
89
98
|
|
|
90
99
|
- Improved `externalbrowser` auth in containerized environments
|
|
@@ -38,6 +38,7 @@ src/snowflake/connector/file_util.py
|
|
|
38
38
|
src/snowflake/connector/gcs_storage_client.py
|
|
39
39
|
src/snowflake/connector/gzip_decoder.py
|
|
40
40
|
src/snowflake/connector/local_storage_client.py
|
|
41
|
+
src/snowflake/connector/log_configuration.py
|
|
41
42
|
src/snowflake/connector/network.py
|
|
42
43
|
src/snowflake/connector/ocsp_asn1crypto.py
|
|
43
44
|
src/snowflake/connector/ocsp_snowflake.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|