snowflake-connector-python 3.13.2__tar.gz → 3.14.1__tar.gz

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