snowflake-connector-python 4.7.0__tar.gz → 4.7.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.
Files changed (302) hide show
  1. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/DESCRIPTION.md +4 -2
  2. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/PKG-INFO +10 -7
  3. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/setup.cfg +5 -4
  4. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/ssl_wrap_socket.py +124 -3
  5. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/version.py +1 -1
  6. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake_connector_python.egg-info/PKG-INFO +10 -7
  7. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake_connector_python.egg-info/requires.txt +9 -4
  8. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/CONTRIBUTING.md +0 -0
  9. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/LICENSE.txt +0 -0
  10. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/MANIFEST.in +0 -0
  11. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/NOTICE +0 -0
  12. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/README.md +0 -0
  13. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/SECURITY.md +0 -0
  14. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/pyproject.toml +0 -0
  15. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/setup.py +0 -0
  16. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/__init__.py +0 -0
  17. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/_connection_identifier_shape.py +0 -0
  18. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/_query_context_cache.py +0 -0
  19. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/_sql_util.py +0 -0
  20. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/_utils.py +0 -0
  21. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/README.md +0 -0
  22. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/__init__.py +0 -0
  23. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_azure_storage_client.py +0 -0
  24. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_bind_upload_agent.py +0 -0
  25. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_connection.py +0 -0
  26. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_cursor.py +0 -0
  27. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_description.py +0 -0
  28. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_direct_file_operation_utils.py +0 -0
  29. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_file_transfer_agent.py +0 -0
  30. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_gcs_storage_client.py +0 -0
  31. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_network.py +0 -0
  32. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_ocsp_asn1crypto.py +0 -0
  33. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_ocsp_snowflake.py +0 -0
  34. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_pandas_tools.py +0 -0
  35. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_result_batch.py +0 -0
  36. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_result_set.py +0 -0
  37. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_s3_storage_client.py +0 -0
  38. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_session_manager.py +0 -0
  39. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_storage_client.py +0 -0
  40. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_telemetry.py +0 -0
  41. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_time_util.py +0 -0
  42. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/_wif_util.py +0 -0
  43. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/__init__.py +0 -0
  44. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_auth.py +0 -0
  45. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_by_plugin.py +0 -0
  46. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_default.py +0 -0
  47. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_idtoken.py +0 -0
  48. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_keypair.py +0 -0
  49. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_no_auth.py +0 -0
  50. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_oauth.py +0 -0
  51. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_oauth_code.py +0 -0
  52. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_oauth_credentials.py +0 -0
  53. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_okta.py +0 -0
  54. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_pat.py +0 -0
  55. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_usrpwdmfa.py +0 -0
  56. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_webbrowser.py +0 -0
  57. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/aio/auth/_workload_identity.py +0 -0
  58. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/arrow_context.py +0 -0
  59. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/__init__.py +0 -0
  60. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/_auth.py +0 -0
  61. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/_http_server.py +0 -0
  62. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/_oauth_base.py +0 -0
  63. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/by_plugin.py +0 -0
  64. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/default.py +0 -0
  65. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/idtoken.py +0 -0
  66. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/keypair.py +0 -0
  67. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/no_auth.py +0 -0
  68. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/oauth.py +0 -0
  69. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/oauth_code.py +0 -0
  70. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/oauth_credentials.py +0 -0
  71. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/okta.py +0 -0
  72. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/pat.py +0 -0
  73. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/usrpwdmfa.py +0 -0
  74. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/webbrowser.py +0 -0
  75. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/auth/workload_identity.py +0 -0
  76. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/azure_storage_client.py +0 -0
  77. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/backoff_policies.py +0 -0
  78. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/bind_upload_agent.py +0 -0
  79. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/cache.py +0 -0
  80. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/compat.py +0 -0
  81. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/config_manager.py +0 -0
  82. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/connection.py +0 -0
  83. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/connection_diagnostic.py +0 -0
  84. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/constants.py +0 -0
  85. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/converter.py +0 -0
  86. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/converter_issue23517.py +0 -0
  87. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/converter_null.py +0 -0
  88. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/converter_snowsql.py +0 -0
  89. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/crl.py +0 -0
  90. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/crl_cache.py +0 -0
  91. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/cursor.py +0 -0
  92. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/dbapi.py +0 -0
  93. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/description.py +0 -0
  94. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/direct_file_operation_utils.py +0 -0
  95. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/encryption_util.py +0 -0
  96. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/errorcode.py +0 -0
  97. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/errors.py +0 -0
  98. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/externals_utils/__init__.py +0 -0
  99. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/externals_utils/externals_setup.py +0 -0
  100. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/feature.py +0 -0
  101. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/file_compression_type.py +0 -0
  102. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/file_lock.py +0 -0
  103. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/file_transfer_agent.py +0 -0
  104. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/file_util.py +0 -0
  105. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/gcs_storage_client.py +0 -0
  106. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/gzip_decoder.py +0 -0
  107. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/interval_util.py +0 -0
  108. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/local_storage_client.py +0 -0
  109. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/log_configuration.py +0 -0
  110. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/logging_utils/__init__.py +0 -0
  111. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/logging_utils/filters.py +0 -0
  112. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/minicore/__init__.py +0 -0
  113. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/minicore/linux_x86_64_glibc/libsf_mini_core.so +0 -0
  114. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
  115. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
  116. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
  117. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
  118. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
  119. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
  120. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.cpp +0 -0
  121. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.hpp +0 -0
  122. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
  123. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
  124. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.cpp +0 -0
  125. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.hpp +0 -0
  126. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -0
  127. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
  128. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +0 -0
  129. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +0 -0
  130. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -0
  131. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
  132. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -0
  133. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
  134. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
  135. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
  136. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
  137. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
  138. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
  139. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntervalConverter.cpp +0 -0
  140. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntervalConverter.hpp +0 -0
  141. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
  142. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -0
  143. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
  144. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
  145. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
  146. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
  147. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -0
  148. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
  149. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
  150. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
  151. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
  152. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
  153. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
  154. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -0
  155. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
  156. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
  157. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
  158. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
  159. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
  160. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
  161. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
  162. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
  163. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
  164. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
  165. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
  166. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
  167. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
  168. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
  169. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
  170. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
  171. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
  172. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
  173. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
  174. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
  175. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
  176. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
  177. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
  178. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
  179. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
  180. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
  181. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
  182. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
  183. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
  184. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
  185. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
  186. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
  187. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
  188. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
  189. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
  190. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
  191. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
  192. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
  193. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
  194. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
  195. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
  196. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
  197. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
  198. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_arrow_iterator.pyx +0 -0
  199. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.c +0 -0
  200. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.h +0 -0
  201. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -0
  202. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
  203. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.cpp +0 -0
  204. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.hpp +0 -0
  205. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/network.py +0 -0
  206. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/ocsp_asn1crypto.py +0 -0
  207. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/ocsp_snowflake.py +0 -0
  208. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/options.py +0 -0
  209. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/os_details.py +0 -0
  210. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/pandas_tools.py +0 -0
  211. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/platform_detection.py +0 -0
  212. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/proxy.py +0 -0
  213. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/py.typed +0 -0
  214. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/result_batch.py +0 -0
  215. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/result_set.py +0 -0
  216. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/s3_storage_client.py +0 -0
  217. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/secret_detector.py +0 -0
  218. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/session_manager.py +0 -0
  219. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/sf_dirs.py +0 -0
  220. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/sfbinaryformat.py +0 -0
  221. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/sfdatetime.py +0 -0
  222. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/snow_logging.py +0 -0
  223. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/sqlstate.py +0 -0
  224. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/ssd_internal_keys.py +0 -0
  225. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/storage_client.py +0 -0
  226. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/telemetry.py +0 -0
  227. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/telemetry_oob.py +0 -0
  228. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/test_util.py +0 -0
  229. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/time_util.py +0 -0
  230. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/token_cache.py +0 -0
  231. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/tool/__init__.py +0 -0
  232. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/tool/dump_certs.py +0 -0
  233. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/tool/dump_ocsp_response.py +0 -0
  234. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/tool/dump_ocsp_response_cache.py +0 -0
  235. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/tool/probe_connection.py +0 -0
  236. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/url_util.py +0 -0
  237. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/util_text.py +0 -0
  238. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/__init__.py +0 -0
  239. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/LICENSE +0 -0
  240. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/__init__.py +0 -0
  241. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/__version__.py +0 -0
  242. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/_internal_utils.py +0 -0
  243. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/adapters.py +0 -0
  244. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/api.py +0 -0
  245. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/auth.py +0 -0
  246. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/certs.py +0 -0
  247. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/compat.py +0 -0
  248. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/cookies.py +0 -0
  249. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/exceptions.py +0 -0
  250. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/help.py +0 -0
  251. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/hooks.py +0 -0
  252. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/models.py +0 -0
  253. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/packages.py +0 -0
  254. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/sessions.py +0 -0
  255. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/status_codes.py +0 -0
  256. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/structures.py +0 -0
  257. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/requests/utils.py +0 -0
  258. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/LICENSE.txt +0 -0
  259. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/__init__.py +0 -0
  260. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/_base_connection.py +0 -0
  261. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/_collections.py +0 -0
  262. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/_request_methods.py +0 -0
  263. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/_version.py +0 -0
  264. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/connection.py +0 -0
  265. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/connectionpool.py +0 -0
  266. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/contrib/__init__.py +0 -0
  267. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/__init__.py +0 -0
  268. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/connection.py +0 -0
  269. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/emscripten_fetch_worker.js +0 -0
  270. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/fetch.py +0 -0
  271. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/request.py +0 -0
  272. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/response.py +0 -0
  273. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/contrib/pyopenssl.py +0 -0
  274. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/contrib/socks.py +0 -0
  275. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/exceptions.py +0 -0
  276. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/fields.py +0 -0
  277. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/filepost.py +0 -0
  278. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/http2/__init__.py +0 -0
  279. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/http2/connection.py +0 -0
  280. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/http2/probe.py +0 -0
  281. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/poolmanager.py +0 -0
  282. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/py.typed +0 -0
  283. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/response.py +0 -0
  284. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/__init__.py +0 -0
  285. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/connection.py +0 -0
  286. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/proxy.py +0 -0
  287. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/request.py +0 -0
  288. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/response.py +0 -0
  289. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/retry.py +0 -0
  290. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/ssl_.py +0 -0
  291. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/ssl_match_hostname.py +0 -0
  292. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/ssltransport.py +0 -0
  293. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/timeout.py +0 -0
  294. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/url.py +0 -0
  295. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/util.py +0 -0
  296. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/vendored/urllib3/util/wait.py +0 -0
  297. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake/connector/wif_util.py +0 -0
  298. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake_connector_python.egg-info/SOURCES.txt +0 -0
  299. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake_connector_python.egg-info/dependency_links.txt +0 -0
  300. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake_connector_python.egg-info/entry_points.txt +0 -0
  301. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake_connector_python.egg-info/not-zip-safe +0 -0
  302. {snowflake_connector_python-4.7.0 → snowflake_connector_python-4.7.1}/src/snowflake_connector_python.egg-info/top_level.txt +0 -0
@@ -7,14 +7,16 @@ 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
- - v4.7.0(Jul 2,2026)
10
+ - v4.7.1(Jul 15,2026)
11
+ - Added support for Python 3.14t (free-threaded).
12
+ - **Note:** Python 3.14t CI testing excludes `win_arm64` (no `cryptography` wheels available) and `mitmproxy` proxy tests on all platforms (transitive dependencies `aioquic`/`pylsqpack` lack free-threaded-compatible wheels).
13
+ - Improved verification of TLS connections (SNOW-3675579).
11
14
  - Fixed `python-connector.log` not rotating on Windows, and every record being logged twice, when easy logging is enabled via `config.toml` (SNOW-3680325).
12
15
  - **Note:** As part of this fix, easy logging no longer calls `logging.basicConfig()` and therefore no longer configures the root logger. `python-connector.log` now captures only the `snowflake.connector`, `botocore`, and `boto3`.
13
16
  - Improved URL validation reliability by replacing the hand-rolled regex in `is_valid_url()` with `urllib.parse.urlparse` (SNOW-3392651).
14
17
  - Fixed OAuth infinite loop when tokens expire by ensuring `reauthenticate()` calls `_request_tokens()` directly instead of looping through `prepare()`. Token cache is now read exactly once per connection, and `_store_tokens()` preserves macOS Keychain ACL by never calling `remove()`. The async OAuth `reauthenticate()` now runs the synchronous OAuth flow on a worker thread instead of blocking the event loop.
15
18
  - Fixed OAuth scope handling for Snowflake custom OAuth: when refresh tokens are enabled, the connector no longer appends the OIDC `offline_access` scope for token endpoints on `*.snowflakecomputing.com` or `*.snowflakecomputing.cn`, which caused `invalid_scope` errors. Snowflake custom OAuth expects `refresh_token` in scope instead. External IdP behavior is unchanged.
16
19
  - Fixed input validation for `scale` metadata in Arrow result set processing for `TIME`, `TIMESTAMP_NTZ`, `TIMESTAMP_LTZ`, and `TIMESTAMP_TZ` columns (SNOW-3388299).
17
- - Removed pandas upper bound dependency constraint on the `[pandas]` extra to allow installation of pandas 3.0.0 and later.
18
20
  - Fixed S3 storage client to correctly handle 307/308 (method-preserving) and 301/302 (GET/HEAD only) redirects by disabling automatic redirect following and re-signing each request with AWS SigV4 credentials for the redirect target. The region is updated from the `x-amz-bucket-region` response header on each redirect. Redirects are capped at 5 hops.
19
21
  - Added native AKS (Azure Kubernetes Service) workload identity support. When running on AKS with workload identity configured, the connector automatically uses `WorkloadIdentityCredential` to authenticate via the injected service account credentials. OIDC backward compatibility is also supported.
20
22
  - Added the `workload_identity_aws_use_outbound_token` connection option (default `false`) to opt into AWS WIF JWT attestation via STS `GetWebIdentityToken` instead of the default SigV4 `GetCallerIdentity` method.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-connector-python
3
- Version: 4.7.0
3
+ Version: 4.7.1
4
4
  Summary: Snowflake Connector for Python
5
5
  Home-page: https://www.snowflake.com/
6
6
  Author: Snowflake, Inc
@@ -64,7 +64,7 @@ Provides-Extra: development
64
64
  Requires-Dist: Cython; extra == "development"
65
65
  Requires-Dist: azure-identity>=1.16; extra == "development"
66
66
  Requires-Dist: coverage; extra == "development"
67
- Requires-Dist: mitmproxy>=12.0.0; python_version >= "3.12" and extra == "development"
67
+ Requires-Dist: mitmproxy>=12.0.0; (python_version >= "3.12" and python_version < "3.14") and extra == "development"
68
68
  Requires-Dist: more-itertools; extra == "development"
69
69
  Requires-Dist: numpy<=2.4.3; extra == "development"
70
70
  Requires-Dist: pendulum!=2.1.1; extra == "development"
@@ -78,9 +78,10 @@ Requires-Dist: pytest-xdist; extra == "development"
78
78
  Requires-Dist: pytzdata; extra == "development"
79
79
  Requires-Dist: responses; extra == "development"
80
80
  Provides-Extra: pandas
81
- Requires-Dist: pandas>=1.0.0; python_version < "3.13" and extra == "pandas"
82
- Requires-Dist: pandas>=2.1.2; python_version >= "3.13" and extra == "pandas"
83
- Requires-Dist: pyarrow>=14.0.1; extra == "pandas"
81
+ Requires-Dist: pandas<3.0.0,>=1.0.0; python_version < "3.13" and extra == "pandas"
82
+ Requires-Dist: pandas<3.0.0,>=2.1.2; python_version >= "3.13" and extra == "pandas"
83
+ Requires-Dist: pyarrow<24,>=14.0.1; python_version >= "3.14" and extra == "pandas"
84
+ Requires-Dist: pyarrow>=14.0.1; python_version < "3.14" and extra == "pandas"
84
85
  Provides-Extra: secure-local-storage
85
86
  Requires-Dist: keyring<26.0.0,>=23.1.0; extra == "secure-local-storage"
86
87
  Dynamic: license-file
@@ -95,14 +96,16 @@ https://docs.snowflake.com/
95
96
  Source code is also available at: https://github.com/snowflakedb/snowflake-connector-python
96
97
 
97
98
  # Release Notes
98
- - v4.7.0(Jul 2,2026)
99
+ - v4.7.1(Jul 15,2026)
100
+ - Added support for Python 3.14t (free-threaded).
101
+ - **Note:** Python 3.14t CI testing excludes `win_arm64` (no `cryptography` wheels available) and `mitmproxy` proxy tests on all platforms (transitive dependencies `aioquic`/`pylsqpack` lack free-threaded-compatible wheels).
102
+ - Improved verification of TLS connections (SNOW-3675579).
99
103
  - Fixed `python-connector.log` not rotating on Windows, and every record being logged twice, when easy logging is enabled via `config.toml` (SNOW-3680325).
100
104
  - **Note:** As part of this fix, easy logging no longer calls `logging.basicConfig()` and therefore no longer configures the root logger. `python-connector.log` now captures only the `snowflake.connector`, `botocore`, and `boto3`.
101
105
  - Improved URL validation reliability by replacing the hand-rolled regex in `is_valid_url()` with `urllib.parse.urlparse` (SNOW-3392651).
102
106
  - Fixed OAuth infinite loop when tokens expire by ensuring `reauthenticate()` calls `_request_tokens()` directly instead of looping through `prepare()`. Token cache is now read exactly once per connection, and `_store_tokens()` preserves macOS Keychain ACL by never calling `remove()`. The async OAuth `reauthenticate()` now runs the synchronous OAuth flow on a worker thread instead of blocking the event loop.
103
107
  - Fixed OAuth scope handling for Snowflake custom OAuth: when refresh tokens are enabled, the connector no longer appends the OIDC `offline_access` scope for token endpoints on `*.snowflakecomputing.com` or `*.snowflakecomputing.cn`, which caused `invalid_scope` errors. Snowflake custom OAuth expects `refresh_token` in scope instead. External IdP behavior is unchanged.
104
108
  - Fixed input validation for `scale` metadata in Arrow result set processing for `TIME`, `TIMESTAMP_NTZ`, `TIMESTAMP_LTZ`, and `TIMESTAMP_TZ` columns (SNOW-3388299).
105
- - Removed pandas upper bound dependency constraint on the `[pandas]` extra to allow installation of pandas 3.0.0 and later.
106
109
  - Fixed S3 storage client to correctly handle 307/308 (method-preserving) and 301/302 (GET/HEAD only) redirects by disabling automatic redirect following and re-signing each request with AWS SigV4 credentials for the redirect target. The region is updated from the `x-amz-bucket-region` response header on each redirect. Redirects are capped at 5 hops.
107
110
  - Added native AKS (Azure Kubernetes Service) workload identity support. When running on AKS with workload identity configured, the connector automatically uses `WorkloadIdentityCredential` to authenticate via the injected service account credentials. OIDC backward compatibility is also supported.
108
111
  - Added the `workload_identity_aws_use_outbound_token` connection option (default `false`) to opt into AWS WIF JWT attestation via STS `GetWebIdentityToken` instead of the default SigV4 `GetCallerIdentity` method.
@@ -91,7 +91,7 @@ development =
91
91
  Cython
92
92
  azure-identity>=1.16
93
93
  coverage
94
- mitmproxy>=12.0.0; python_version >= '3.12'
94
+ mitmproxy>=12.0.0; python_version >= '3.12' and python_version < '3.14'
95
95
  more-itertools
96
96
  numpy<=2.4.3
97
97
  pendulum!=2.1.1
@@ -105,9 +105,10 @@ development =
105
105
  pytzdata
106
106
  responses
107
107
  pandas =
108
- pandas>=1.0.0; python_version < '3.13'
109
- pandas>=2.1.2; python_version >= '3.13'
110
- pyarrow>=14.0.1
108
+ pandas>=1.0.0,<3.0.0; python_version < '3.13'
109
+ pandas>=2.1.2,<3.0.0; python_version >= '3.13'
110
+ pyarrow>=14.0.1,<24; python_version >= '3.14'
111
+ pyarrow>=14.0.1; python_version < '3.14'
111
112
  secure-local-storage =
112
113
  keyring>=23.1.0,<26.0.0
113
114
 
@@ -29,6 +29,7 @@ from .session_manager import SessionManager, SessionManagerFactory
29
29
  from .vendored.urllib3 import connection as connection_
30
30
  from .vendored.urllib3.contrib.pyopenssl import PyOpenSSLContext, WrappedSocket
31
31
  from .vendored.urllib3.util import ssl_ as ssl_
32
+ from .vendored.urllib3.util.ssl_match_hostname import CertificateError, match_hostname
32
33
 
33
34
  if TYPE_CHECKING:
34
35
  from cryptography import x509
@@ -85,13 +86,79 @@ def _ensure_partial_chain_on_context(ctx: PyOpenSSLContext, cafile: str | None)
85
86
  pass
86
87
 
87
88
 
88
- def _build_context_with_partial_chain(cafile: str | None) -> PyOpenSSLContext:
89
- """Create PyOpenSSL context configured for CERT_REQUIRED and partial-chain trust."""
89
+ def _nonnegative_options(value: int) -> int:
90
+ """Return *value* as the non-negative bitmask pyOpenSSL/cryptography expects.
91
+
92
+ ``ssl.SSLContext.options`` is exposed through a signed, platform-width C
93
+ ``long``. On Windows that type is 32 bits, so the common default mask (which
94
+ has bit 31 set, e.g. ``0x82520050``) is returned as a *negative* Python int.
95
+ cryptography's binding marshals the value into an unsigned parameter and
96
+ rejects negatives with ``OverflowError: can't convert negative number to
97
+ unsigned`` -- which previously aborted every Windows TLS handshake the
98
+ moment we carried these options onto the substituted ``PyOpenSSLContext``.
99
+ Recover the intended unsigned 32-bit mask; values that are already
100
+ non-negative (every other platform) pass through unchanged.
101
+ """
102
+ return value & 0xFFFFFFFF if value < 0 else value
103
+
104
+
105
+ def _apply_stdlib_hardening(dst: PyOpenSSLContext, src: ssl.SSLContext | None) -> None:
106
+ """Carry TLS hardening from a stdlib ``SSLContext`` onto ``dst``.
107
+
108
+ The connector replaces the stdlib ``ssl.SSLContext`` that urllib3 builds
109
+ (or that a caller supplied) with a ``PyOpenSSLContext``. Without copying the
110
+ original context's hardening forward, the substitution silently drops the
111
+ TLS-version floor and ``OP_NO_*`` options urllib3 configured and
112
+ any hardening a caller set on a supplied context. Copy the
113
+ settings we can read back; fall back to urllib3's default floor when there
114
+ is no source context to mirror.
115
+
116
+ Limitation: cipher restrictions and pinned CA material (``cadata`` /
117
+ ``load_verify_locations``) cannot be read back out of an ``ssl.SSLContext``,
118
+ so they cannot be transferred here. Honoring caller-supplied pinning needs a
119
+ dedicated, supported channel and is tracked as a follow-up.
120
+ """
121
+ if isinstance(src, ssl.SSLContext):
122
+ # Mirror the protocol-version floor/ceiling and OpenSSL options the
123
+ # original context carried (e.g. TLS 1.2 minimum, OP_NO_SSLv3,
124
+ # OP_NO_COMPRESSION) plus any caller hardening (e.g. VERIFY_X509_STRICT).
125
+ for attr in ("minimum_version", "maximum_version", "verify_flags"):
126
+ try:
127
+ setattr(dst, attr, getattr(src, attr))
128
+ except (ValueError, OSError, OpenSSL.SSL.Error):
129
+ # Best-effort; an unsupported value must not break the handshake.
130
+ pass
131
+ try:
132
+ dst.options |= _nonnegative_options(src.options)
133
+ except (ValueError, OSError, OpenSSL.SSL.Error, OverflowError, TypeError):
134
+ # Best-effort; carrying options forward must never break the
135
+ # handshake even if a value can't be marshalled into pyOpenSSL.
136
+ pass
137
+ else:
138
+ # No source context to mirror (no ssl_context was supplied): restore the
139
+ # hardening urllib3's create_urllib3_context() would have applied.
140
+ try:
141
+ dst.minimum_version = ssl.TLSVersion.TLSv1_2
142
+ dst.options |= ssl.OP_NO_COMPRESSION
143
+ except (ValueError, OSError, OpenSSL.SSL.Error, OverflowError, TypeError):
144
+ pass
145
+
146
+
147
+ def _build_context_with_partial_chain(
148
+ cafile: str | None, src_context: ssl.SSLContext | None = None
149
+ ) -> PyOpenSSLContext:
150
+ """Create PyOpenSSL context configured for CERT_REQUIRED and partial-chain trust.
151
+
152
+ When ``src_context`` is the stdlib context being replaced, its TLS hardening
153
+ (version floor, options, verify flags) is carried forward so the
154
+ substitution does not weaken the connection.
155
+ """
90
156
  ctx = PyOpenSSLContext(ssl_.PROTOCOL_TLS_CLIENT)
91
157
  try:
92
158
  ctx.verify_mode = ssl.CERT_REQUIRED
93
159
  except Exception:
94
160
  pass
161
+ _apply_stdlib_hardening(ctx, src_context)
95
162
  _ensure_partial_chain_on_context(ctx, cafile)
96
163
  return ctx
97
164
 
@@ -168,6 +235,54 @@ def _load_trusted_certificates(cafile: str | None) -> list[x509.Certificate]:
168
235
  return [load_der_x509_certificate(cert, default_backend()) for cert in certs]
169
236
 
170
237
 
238
+ def _verify_hostname_after_handshake(
239
+ wrapped_socket: WrappedSocket,
240
+ server_hostname: str | None,
241
+ ssl_context: Any,
242
+ ) -> None:
243
+ """Match the peer certificate against *server_hostname*."""
244
+ # Honor explicitly-disabled certificate verification (CERT_NONE) first; when
245
+ # verification is off there is nothing to assert about server identity, so a
246
+ # missing hostname is acceptable. Check this before the hostname so we only
247
+ # skip when the caller genuinely opted out of verification.
248
+ verify_mode = getattr(ssl_context, "verify_mode", ssl.CERT_REQUIRED)
249
+ if verify_mode == ssl.CERT_NONE:
250
+ return
251
+
252
+ # Verification is required but there is no host to match against (e.g. TLS
253
+ # without SNI). Fail closed rather than accepting the peer: without a
254
+ # hostname we cannot assert server identity.
255
+ if not server_hostname:
256
+ raise CertificateError(
257
+ "no server hostname supplied to match against the peer certificate; "
258
+ "cannot verify server identity"
259
+ )
260
+
261
+ # Normalize bracketed / scoped IPv6 literals the same way urllib3 does:
262
+ # strip the brackets and drop any "%scope" suffix before testing for an IP,
263
+ # since Python's ssl module treats scoped addresses as DNS hostnames.
264
+ normalized = server_hostname.strip("[]")
265
+ if "%" in normalized:
266
+ normalized = normalized[: normalized.rfind("%")]
267
+ if ssl_.is_ipaddress(normalized):
268
+ server_hostname = normalized
269
+
270
+ cert = wrapped_socket.getpeercert()
271
+ try:
272
+ match_hostname(cert, server_hostname)
273
+ except CertificateError as e:
274
+ log.warning(
275
+ "Certificate did not match expected hostname: %s. Certificate: %s",
276
+ server_hostname,
277
+ cert,
278
+ )
279
+ # Attach the cert so callers catching CertificateError can inspect it,
280
+ # matching urllib3's own _match_hostname behavior.
281
+ e._peer_cert = cert
282
+ wrapped_socket.close()
283
+ raise
284
+
285
+
171
286
  @wraps(ssl_.ssl_wrap_socket)
172
287
  def ssl_wrap_socket_with_cert_revocation_checks(
173
288
  *args: Any, **kwargs: Any
@@ -186,13 +301,19 @@ def ssl_wrap_socket_with_cert_revocation_checks(
186
301
  provided_ctx = params.get("ssl_context")
187
302
  cafile_for_ctx = _resolve_cafile(params)
188
303
  if not isinstance(provided_ctx, PyOpenSSLContext):
189
- params["ssl_context"] = _build_context_with_partial_chain(cafile_for_ctx)
304
+ # Carry the replaced stdlib context's TLS hardening forward so the
305
+ # substitution doesn't silently weaken the connection.
306
+ params["ssl_context"] = _build_context_with_partial_chain(
307
+ cafile_for_ctx, src_context=provided_ctx
308
+ )
190
309
  else:
191
310
  # If a PyOpenSSLContext is provided, ensure it trusts the provided CA and partial-chain is enabled
192
311
  _ensure_partial_chain_on_context(provided_ctx, cafile_for_ctx)
193
312
 
194
313
  ret = ssl_.ssl_wrap_socket(**params)
195
314
 
315
+ _verify_hostname_after_handshake(ret, server_hostname, params.get("ssl_context"))
316
+
196
317
  log.debug(
197
318
  "CRL Check Mode: %s",
198
319
  FEATURE_CRL_CONFIG.cert_revocation_check_mode.name,
@@ -1,3 +1,3 @@
1
1
  # Update this for the versions
2
2
  # Don't change the fourth version number from None
3
- VERSION = (4, 7, 0, None)
3
+ VERSION = (4, 7, 1, None)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-connector-python
3
- Version: 4.7.0
3
+ Version: 4.7.1
4
4
  Summary: Snowflake Connector for Python
5
5
  Home-page: https://www.snowflake.com/
6
6
  Author: Snowflake, Inc
@@ -64,7 +64,7 @@ Provides-Extra: development
64
64
  Requires-Dist: Cython; extra == "development"
65
65
  Requires-Dist: azure-identity>=1.16; extra == "development"
66
66
  Requires-Dist: coverage; extra == "development"
67
- Requires-Dist: mitmproxy>=12.0.0; python_version >= "3.12" and extra == "development"
67
+ Requires-Dist: mitmproxy>=12.0.0; (python_version >= "3.12" and python_version < "3.14") and extra == "development"
68
68
  Requires-Dist: more-itertools; extra == "development"
69
69
  Requires-Dist: numpy<=2.4.3; extra == "development"
70
70
  Requires-Dist: pendulum!=2.1.1; extra == "development"
@@ -78,9 +78,10 @@ Requires-Dist: pytest-xdist; extra == "development"
78
78
  Requires-Dist: pytzdata; extra == "development"
79
79
  Requires-Dist: responses; extra == "development"
80
80
  Provides-Extra: pandas
81
- Requires-Dist: pandas>=1.0.0; python_version < "3.13" and extra == "pandas"
82
- Requires-Dist: pandas>=2.1.2; python_version >= "3.13" and extra == "pandas"
83
- Requires-Dist: pyarrow>=14.0.1; extra == "pandas"
81
+ Requires-Dist: pandas<3.0.0,>=1.0.0; python_version < "3.13" and extra == "pandas"
82
+ Requires-Dist: pandas<3.0.0,>=2.1.2; python_version >= "3.13" and extra == "pandas"
83
+ Requires-Dist: pyarrow<24,>=14.0.1; python_version >= "3.14" and extra == "pandas"
84
+ Requires-Dist: pyarrow>=14.0.1; python_version < "3.14" and extra == "pandas"
84
85
  Provides-Extra: secure-local-storage
85
86
  Requires-Dist: keyring<26.0.0,>=23.1.0; extra == "secure-local-storage"
86
87
  Dynamic: license-file
@@ -95,14 +96,16 @@ https://docs.snowflake.com/
95
96
  Source code is also available at: https://github.com/snowflakedb/snowflake-connector-python
96
97
 
97
98
  # Release Notes
98
- - v4.7.0(Jul 2,2026)
99
+ - v4.7.1(Jul 15,2026)
100
+ - Added support for Python 3.14t (free-threaded).
101
+ - **Note:** Python 3.14t CI testing excludes `win_arm64` (no `cryptography` wheels available) and `mitmproxy` proxy tests on all platforms (transitive dependencies `aioquic`/`pylsqpack` lack free-threaded-compatible wheels).
102
+ - Improved verification of TLS connections (SNOW-3675579).
99
103
  - Fixed `python-connector.log` not rotating on Windows, and every record being logged twice, when easy logging is enabled via `config.toml` (SNOW-3680325).
100
104
  - **Note:** As part of this fix, easy logging no longer calls `logging.basicConfig()` and therefore no longer configures the root logger. `python-connector.log` now captures only the `snowflake.connector`, `botocore`, and `boto3`.
101
105
  - Improved URL validation reliability by replacing the hand-rolled regex in `is_valid_url()` with `urllib.parse.urlparse` (SNOW-3392651).
102
106
  - Fixed OAuth infinite loop when tokens expire by ensuring `reauthenticate()` calls `_request_tokens()` directly instead of looping through `prepare()`. Token cache is now read exactly once per connection, and `_store_tokens()` preserves macOS Keychain ACL by never calling `remove()`. The async OAuth `reauthenticate()` now runs the synchronous OAuth flow on a worker thread instead of blocking the event loop.
103
107
  - Fixed OAuth scope handling for Snowflake custom OAuth: when refresh tokens are enabled, the connector no longer appends the OIDC `offline_access` scope for token endpoints on `*.snowflakecomputing.com` or `*.snowflakecomputing.cn`, which caused `invalid_scope` errors. Snowflake custom OAuth expects `refresh_token` in scope instead. External IdP behavior is unchanged.
104
108
  - Fixed input validation for `scale` metadata in Arrow result set processing for `TIME`, `TIMESTAMP_NTZ`, `TIMESTAMP_LTZ`, and `TIMESTAMP_TZ` columns (SNOW-3388299).
105
- - Removed pandas upper bound dependency constraint on the `[pandas]` extra to allow installation of pandas 3.0.0 and later.
106
109
  - Fixed S3 storage client to correctly handle 307/308 (method-preserving) and 301/302 (GET/HEAD only) redirects by disabling automatic redirect following and re-signing each request with AWS SigV4 credentials for the redirect target. The region is updated from the `x-amz-bucket-region` response header on each redirect. Redirects are capped at 5 hops.
107
110
  - Added native AKS (Azure Kubernetes Service) workload identity support. When running on AKS with workload identity configured, the connector automatically uses `WorkloadIdentityCredential` to authenticate via the injected service account credentials. OIDC backward compatibility is also supported.
108
111
  - Added the `workload_identity_aws_use_outbound_token` connection option (default `false`) to opt into AWS WIF JWT attestation via STS `GetWebIdentityToken` instead of the default SigV4 `GetCallerIdentity` method.
@@ -40,17 +40,22 @@ pytest-xdist
40
40
  pytzdata
41
41
  responses
42
42
 
43
- [development:python_version >= "3.12"]
43
+ [development:python_version >= "3.12" and python_version < "3.14"]
44
44
  mitmproxy>=12.0.0
45
45
 
46
46
  [pandas]
47
- pyarrow>=14.0.1
48
47
 
49
48
  [pandas:python_version < "3.13"]
50
- pandas>=1.0.0
49
+ pandas<3.0.0,>=1.0.0
50
+
51
+ [pandas:python_version < "3.14"]
52
+ pyarrow>=14.0.1
51
53
 
52
54
  [pandas:python_version >= "3.13"]
53
- pandas>=2.1.2
55
+ pandas<3.0.0,>=2.1.2
56
+
57
+ [pandas:python_version >= "3.14"]
58
+ pyarrow<24,>=14.0.1
54
59
 
55
60
  [secure-local-storage]
56
61
  keyring<26.0.0,>=23.1.0