snowflake-connector-python 4.1.1__tar.gz → 4.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/DESCRIPTION.md +16 -1
  2. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/MANIFEST.in +4 -0
  3. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/PKG-INFO +18 -2
  4. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/README.md +3 -1
  5. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/pyproject.toml +5 -0
  6. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/setup.cfg +8 -0
  7. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/setup.py +0 -1
  8. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/__init__.py +10 -0
  9. snowflake_connector_python-4.3.0/src/snowflake/connector/_utils.py +370 -0
  10. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/README.md +88 -0
  11. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/__init__.py +163 -0
  12. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_azure_storage_client.py +227 -0
  13. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_bind_upload_agent.py +69 -0
  14. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_connection.py +1216 -0
  15. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_cursor.py +1402 -0
  16. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_description.py +5 -0
  17. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_direct_file_operation_utils.py +88 -0
  18. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_file_transfer_agent.py +316 -0
  19. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_gcs_storage_client.py +360 -0
  20. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_network.py +860 -0
  21. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_ocsp_asn1crypto.py +51 -0
  22. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_ocsp_snowflake.py +608 -0
  23. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_pandas_tools.py +561 -0
  24. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_result_batch.py +442 -0
  25. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_result_set.py +309 -0
  26. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_s3_storage_client.py +460 -0
  27. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_session_manager.py +588 -0
  28. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_storage_client.py +331 -0
  29. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_telemetry.py +97 -0
  30. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_time_util.py +57 -0
  31. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/_wif_util.py +324 -0
  32. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/__init__.py +52 -0
  33. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_auth.py +401 -0
  34. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_by_plugin.py +131 -0
  35. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_default.py +28 -0
  36. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_idtoken.py +54 -0
  37. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_keypair.py +60 -0
  38. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_no_auth.py +31 -0
  39. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_oauth.py +27 -0
  40. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_oauth_code.py +117 -0
  41. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_oauth_credentials.py +100 -0
  42. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_okta.py +247 -0
  43. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_pat.py +27 -0
  44. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_usrpwdmfa.py +30 -0
  45. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_webbrowser.py +405 -0
  46. snowflake_connector_python-4.3.0/src/snowflake/connector/aio/auth/_workload_identity.py +60 -0
  47. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/arrow_context.py +8 -4
  48. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/_auth.py +27 -3
  49. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/_oauth_base.py +21 -0
  50. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/keypair.py +5 -2
  51. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/oauth_code.py +5 -0
  52. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/oauth_credentials.py +3 -0
  53. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/workload_identity.py +1 -1
  54. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/connection.py +61 -10
  55. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/constants.py +1 -0
  56. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/converter.py +3 -2
  57. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/cursor.py +99 -9
  58. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/description.py +2 -0
  59. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/errors.py +29 -9
  60. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/externals_utils/externals_setup.py +3 -0
  61. snowflake_connector_python-4.3.0/src/snowflake/connector/interval_util.py +26 -0
  62. snowflake_connector_python-4.3.0/src/snowflake/connector/minicore/linux_x86_64_glibc/libsf_mini_core.so +0 -0
  63. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.cpp +14 -1
  64. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.cpp +13 -7
  65. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.hpp +4 -1
  66. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntervalConverter.cpp +3 -3
  67. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntervalConverter.hpp +2 -1
  68. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_arrow_iterator.pyx +9 -3
  69. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/ocsp_asn1crypto.py +1 -1
  70. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/ocsp_snowflake.py +36 -11
  71. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/options.py +25 -0
  72. snowflake_connector_python-4.3.0/src/snowflake/connector/os_details.py +88 -0
  73. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/result_batch.py +69 -14
  74. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/result_set.py +26 -5
  75. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/session_manager.py +4 -3
  76. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/telemetry.py +3 -0
  77. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/test_util.py +2 -2
  78. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/url_util.py +6 -0
  79. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/_collections.py +8 -0
  80. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/_version.py +16 -3
  81. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/connection.py +6 -0
  82. snowflake_connector_python-4.3.0/src/snowflake/connector/vendored/urllib3/contrib/__init__.py +0 -0
  83. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/__init__.py +1 -0
  84. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/connection.py +6 -1
  85. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/emscripten_fetch_worker.js +8 -8
  86. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/fetch.py +6 -8
  87. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/contrib/pyopenssl.py +2 -2
  88. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/contrib/socks.py +1 -1
  89. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/exceptions.py +2 -2
  90. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/http2/connection.py +4 -4
  91. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/poolmanager.py +9 -11
  92. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/response.py +276 -103
  93. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/request.py +11 -14
  94. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/retry.py +16 -0
  95. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/ssl_.py +11 -8
  96. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/version.py +1 -1
  97. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake_connector_python.egg-info/PKG-INFO +18 -2
  98. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake_connector_python.egg-info/SOURCES.txt +40 -0
  99. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake_connector_python.egg-info/requires.txt +1 -0
  100. snowflake_connector_python-4.1.1/src/snowflake/connector/_utils.py +0 -98
  101. snowflake_connector_python-4.1.1/src/snowflake/connector/interval_util.py +0 -17
  102. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/CONTRIBUTING.md +0 -0
  103. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/LICENSE.txt +0 -0
  104. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/NOTICE +0 -0
  105. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/SECURITY.md +0 -0
  106. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/_query_context_cache.py +0 -0
  107. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/_sql_util.py +0 -0
  108. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/__init__.py +0 -0
  109. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/_http_server.py +0 -0
  110. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/by_plugin.py +0 -0
  111. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/default.py +0 -0
  112. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/idtoken.py +0 -0
  113. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/no_auth.py +0 -0
  114. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/oauth.py +0 -0
  115. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/okta.py +0 -0
  116. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/pat.py +0 -0
  117. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/usrpwdmfa.py +0 -0
  118. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/auth/webbrowser.py +0 -0
  119. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/azure_storage_client.py +0 -0
  120. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/backoff_policies.py +0 -0
  121. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/bind_upload_agent.py +0 -0
  122. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/cache.py +0 -0
  123. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/compat.py +0 -0
  124. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/config_manager.py +0 -0
  125. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/connection_diagnostic.py +0 -0
  126. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/converter_issue23517.py +0 -0
  127. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/converter_null.py +0 -0
  128. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/converter_snowsql.py +0 -0
  129. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/crl.py +0 -0
  130. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/crl_cache.py +0 -0
  131. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/dbapi.py +0 -0
  132. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/direct_file_operation_utils.py +0 -0
  133. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/encryption_util.py +0 -0
  134. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/errorcode.py +0 -0
  135. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/externals_utils/__init__.py +0 -0
  136. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/feature.py +0 -0
  137. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/file_compression_type.py +0 -0
  138. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/file_lock.py +0 -0
  139. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/file_transfer_agent.py +0 -0
  140. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/file_util.py +0 -0
  141. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/gcs_storage_client.py +0 -0
  142. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/gzip_decoder.py +0 -0
  143. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/local_storage_client.py +0 -0
  144. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/log_configuration.py +0 -0
  145. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/logging_utils/__init__.py +0 -0
  146. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/logging_utils/filters.py +0 -0
  147. {snowflake_connector_python-4.1.1/src/snowflake/connector/tool → snowflake_connector_python-4.3.0/src/snowflake/connector/minicore}/__init__.py +0 -0
  148. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
  149. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
  150. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
  151. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
  152. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
  153. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
  154. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.hpp +0 -0
  155. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
  156. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
  157. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -0
  158. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
  159. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +0 -0
  160. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +0 -0
  161. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -0
  162. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
  163. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -0
  164. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
  165. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
  166. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
  167. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
  168. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
  169. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
  170. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
  171. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -0
  172. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
  173. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
  174. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
  175. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
  176. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -0
  177. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
  178. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
  179. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
  180. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
  181. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
  182. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
  183. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -0
  184. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
  185. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
  186. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
  187. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
  188. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
  189. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
  190. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
  191. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
  192. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
  193. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
  194. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
  195. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
  196. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
  197. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
  198. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
  199. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
  200. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
  201. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
  202. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
  203. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
  204. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
  205. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
  206. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
  207. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
  208. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
  209. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
  210. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
  211. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
  212. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
  213. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
  214. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
  215. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
  216. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
  217. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
  218. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
  219. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
  220. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
  221. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
  222. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
  223. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
  224. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
  225. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
  226. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
  227. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.c +0 -0
  228. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.h +0 -0
  229. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -0
  230. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
  231. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.cpp +0 -0
  232. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.hpp +0 -0
  233. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/network.py +0 -0
  234. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/pandas_tools.py +0 -0
  235. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/platform_detection.py +0 -0
  236. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/proxy.py +0 -0
  237. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/py.typed +0 -0
  238. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/s3_storage_client.py +0 -0
  239. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/secret_detector.py +0 -0
  240. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/sf_dirs.py +0 -0
  241. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/sfbinaryformat.py +0 -0
  242. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/sfdatetime.py +0 -0
  243. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/snow_logging.py +0 -0
  244. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/sqlstate.py +0 -0
  245. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/ssd_internal_keys.py +0 -0
  246. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/ssl_wrap_socket.py +0 -0
  247. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/storage_client.py +0 -0
  248. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/telemetry_oob.py +0 -0
  249. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/time_util.py +0 -0
  250. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/token_cache.py +0 -0
  251. {snowflake_connector_python-4.1.1/src/snowflake/connector/vendored/urllib3/contrib → snowflake_connector_python-4.3.0/src/snowflake/connector/tool}/__init__.py +0 -0
  252. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/tool/dump_certs.py +0 -0
  253. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/tool/dump_ocsp_response.py +0 -0
  254. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/tool/dump_ocsp_response_cache.py +0 -0
  255. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/tool/probe_connection.py +0 -0
  256. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/util_text.py +0 -0
  257. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/__init__.py +0 -0
  258. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/LICENSE +0 -0
  259. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/__init__.py +0 -0
  260. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/__version__.py +0 -0
  261. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/_internal_utils.py +0 -0
  262. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/adapters.py +0 -0
  263. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/api.py +0 -0
  264. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/auth.py +0 -0
  265. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/certs.py +0 -0
  266. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/compat.py +0 -0
  267. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/cookies.py +0 -0
  268. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/exceptions.py +0 -0
  269. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/help.py +0 -0
  270. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/hooks.py +0 -0
  271. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/models.py +0 -0
  272. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/packages.py +0 -0
  273. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/sessions.py +0 -0
  274. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/status_codes.py +0 -0
  275. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/structures.py +0 -0
  276. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/requests/utils.py +0 -0
  277. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/LICENSE.txt +0 -0
  278. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/__init__.py +0 -0
  279. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/_base_connection.py +0 -0
  280. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/_request_methods.py +0 -0
  281. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/connectionpool.py +0 -0
  282. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/request.py +0 -0
  283. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/response.py +0 -0
  284. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/fields.py +0 -0
  285. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/filepost.py +0 -0
  286. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/http2/__init__.py +0 -0
  287. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/http2/probe.py +0 -0
  288. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/py.typed +0 -0
  289. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/__init__.py +0 -0
  290. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/connection.py +0 -0
  291. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/proxy.py +0 -0
  292. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/response.py +0 -0
  293. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/ssl_match_hostname.py +0 -0
  294. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/ssltransport.py +0 -0
  295. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/timeout.py +0 -0
  296. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/url.py +0 -0
  297. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/util.py +0 -0
  298. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/vendored/urllib3/util/wait.py +0 -0
  299. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake/connector/wif_util.py +0 -0
  300. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake_connector_python.egg-info/dependency_links.txt +0 -0
  301. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake_connector_python.egg-info/entry_points.txt +0 -0
  302. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake_connector_python.egg-info/not-zip-safe +0 -0
  303. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.3.0}/src/snowflake_connector_python.egg-info/top_level.txt +0 -0
@@ -7,7 +7,22 @@ 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.1.1(TBD)
10
+ - v4.3.0(February 12,2026)
11
+ - Ensured proper list conversion - the converter runs to_snowflake on all list elements.
12
+ - Made the parameter `server_session_keep_alive` in `SnowflakeConnection` skip checking for pending async queries, providing faster connection close times especially when many async queries are executed.
13
+ - Fix string representation of INTERVAL YEAR and INTERVAL MONTH types.
14
+ - Log a warning when using http protocol for OAuth urls.
15
+ - Deprecated support for custom revocation error classes in OCSP response cache deserialization. By default, only `RevocationCheckError` exceptions are deserialized from OCSP cache. Custom exception classes can be temporarily enabled by setting the `SNOWFLAKE_ENABLE_CUSTOM_REVOCATION_ERRORS` environment variable to `true` or `1`, but this support will be removed in a future release.
16
+ - Bumped up vendored `urllib3` to `2.6.3`
17
+ - Added `force_microseconds_precision` to `cursor.fetch_arrow_all` and `cursor.fetch_pandas_all` to avoid PyArrow schema incosistency between batches.
18
+
19
+ - v4.2.0(January 07,2026)
20
+ - Added `SnowflakeCursor.stats` property to expose granular DML statistics (rows inserted, deleted, updated, and duplicates) for operations like CTAS where `rowcount` is insufficient.
21
+ - Added support for injecting SPCS service identifier token (`SPCS_TOKEN`) into login requests when present in SPCS containers.
22
+ - Introduced shared library([source code](https://github.com/snowflakedb/universal-driver/tree/main/sf_mini_core)) for extended telemetry to identify and prepare testing platform for native rust extensions.
23
+ - Added `private_key_passphrase` connection parameter for key pair authentication with encrypted private keys.
24
+
25
+ - v4.1.1(December 12,2025)
11
26
  - Relaxed pandas dependency requirements for Python below 3.12.
12
27
  - Changed CRL cache cleanup background task to daemon to avoid blocking main thread.
13
28
  - Fixed NO_PROXY issues with PUT operations
@@ -4,6 +4,7 @@ include LICENSE.txt
4
4
  include NOTICE
5
5
  include pyproject.toml
6
6
  include src/snowflake/connector/nanoarrow_cpp/ArrowIterator/LICENSE.txt
7
+ include src/snowflake/connector/aio/README.md
7
8
  recursive-include src/snowflake/connector py.typed *.py *.pyx *.js
8
9
  recursive-include src/snowflake/connector/vendored LICENSE*
9
10
 
@@ -13,6 +14,9 @@ exclude src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_arrow_iter
13
14
  exclude src/snowflake/connector/nanoarrow_cpp/scripts/.clang-format
14
15
  exclude src/snowflake/connector/nanoarrow_cpp/scripts/format.sh
15
16
 
17
+ include src/snowflake/connector/minicore __init__.py
18
+ recursive-include src/snowflake/connector/minicore *.so *.dll *.dylib *.a *.h *.lib
19
+
16
20
  exclude .git-blame-ignore-revs
17
21
  exclude .pre-commit-config.yaml
18
22
  exclude license_header.txt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-connector-python
3
- Version: 4.1.1
3
+ Version: 4.3.0
4
4
  Summary: Snowflake Connector for Python
5
5
  Home-page: https://www.snowflake.com/
6
6
  Author: Snowflake, Inc
@@ -68,6 +68,7 @@ Requires-Dist: numpy<=2.2.4; extra == "development"
68
68
  Requires-Dist: pendulum!=2.1.1; extra == "development"
69
69
  Requires-Dist: pexpect; extra == "development"
70
70
  Requires-Dist: pytest<7.5.0; extra == "development"
71
+ Requires-Dist: pytest-asyncio; extra == "development"
71
72
  Requires-Dist: pytest-cov; extra == "development"
72
73
  Requires-Dist: pytest-rerunfailures<16.0; extra == "development"
73
74
  Requires-Dist: pytest-timeout; extra == "development"
@@ -92,7 +93,22 @@ https://docs.snowflake.com/
92
93
  Source code is also available at: https://github.com/snowflakedb/snowflake-connector-python
93
94
 
94
95
  # Release Notes
95
- - v4.1.1(TBD)
96
+ - v4.3.0(February 12,2026)
97
+ - Ensured proper list conversion - the converter runs to_snowflake on all list elements.
98
+ - Made the parameter `server_session_keep_alive` in `SnowflakeConnection` skip checking for pending async queries, providing faster connection close times especially when many async queries are executed.
99
+ - Fix string representation of INTERVAL YEAR and INTERVAL MONTH types.
100
+ - Log a warning when using http protocol for OAuth urls.
101
+ - Deprecated support for custom revocation error classes in OCSP response cache deserialization. By default, only `RevocationCheckError` exceptions are deserialized from OCSP cache. Custom exception classes can be temporarily enabled by setting the `SNOWFLAKE_ENABLE_CUSTOM_REVOCATION_ERRORS` environment variable to `true` or `1`, but this support will be removed in a future release.
102
+ - Bumped up vendored `urllib3` to `2.6.3`
103
+ - Added `force_microseconds_precision` to `cursor.fetch_arrow_all` and `cursor.fetch_pandas_all` to avoid PyArrow schema incosistency between batches.
104
+
105
+ - v4.2.0(January 07,2026)
106
+ - Added `SnowflakeCursor.stats` property to expose granular DML statistics (rows inserted, deleted, updated, and duplicates) for operations like CTAS where `rowcount` is insufficient.
107
+ - Added support for injecting SPCS service identifier token (`SPCS_TOKEN`) into login requests when present in SPCS containers.
108
+ - Introduced shared library([source code](https://github.com/snowflakedb/universal-driver/tree/main/sf_mini_core)) for extended telemetry to identify and prepare testing platform for native rust extensions.
109
+ - Added `private_key_passphrase` connection parameter for key pair authentication with encrypted private keys.
110
+
111
+ - v4.1.1(December 12,2025)
96
112
  - Relaxed pandas dependency requirements for Python below 3.12.
97
113
  - Changed CRL cache cleanup background task to daemon to avoid blocking main thread.
98
114
  - Fixed NO_PROXY issues with PUT operations
@@ -103,6 +103,8 @@ To ensure the authenticity and integrity of the Python package, follow the steps
103
103
  Verified OK
104
104
  ````
105
105
 
106
- ## NOTE
106
+ ## Notes
107
107
 
108
108
  This library currently does not support GCP regional endpoints. Please ensure that any workloads using through this library do not require support for regional endpoints on GCP. If you have questions about this, please contact [Snowflake Support](https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge).
109
+
110
+ The driver uses Rust library called sf_mini_core, you can find its source code [here](https://github.com/snowflakedb/universal-driver/tree/main/sf_mini_core)
@@ -15,6 +15,8 @@ build-verbosity = 1
15
15
 
16
16
  [tool.cibuildwheel.linux]
17
17
  archs = ["x86_64", "aarch64"]
18
+ # Exclude pre-built minicore libraries from auditwheel repair
19
+ repair-wheel-command = ""
18
20
 
19
21
  [tool.cibuildwheel.macos]
20
22
  archs = ["x86_64", "arm64"]
@@ -23,3 +25,6 @@ repair-wheel-command = ""
23
25
 
24
26
  [tool.cibuildwheel.windows]
25
27
  archs = ["AMD64"]
28
+
29
+ [tool.check-manifest]
30
+ ignore-bad-ideas = ["src/snowflake/connector/minicore/**"]
@@ -69,6 +69,13 @@ where = src
69
69
  exclude = snowflake.connector.cpp*
70
70
  include = snowflake.*
71
71
 
72
+ [options.package_data]
73
+ snowflake.connector.minicore =
74
+ *.so
75
+ *.dll
76
+ *.dylib
77
+ *.a
78
+
72
79
  [options.entry_points]
73
80
  console_scripts =
74
81
  snowflake-dump-ocsp-response = snowflake.connector.tool.dump_ocsp_response:main
@@ -88,6 +95,7 @@ development =
88
95
  pendulum!=2.1.1
89
96
  pexpect
90
97
  pytest<7.5.0
98
+ pytest-asyncio
91
99
  pytest-cov
92
100
  pytest-rerunfailures<16.0
93
101
  pytest-timeout
@@ -186,7 +186,6 @@ class SetDefaultInstallationExtras(egg_info):
186
186
 
187
187
  def finalize_options(self):
188
188
  super().finalize_options()
189
-
190
189
  # if not explicitly excluded, add boto dependencies to install_requires
191
190
  if not SNOWFLAKE_NO_BOTO:
192
191
  boto_extras = self.distribution.extras_require.get("boto", [])
@@ -5,6 +5,8 @@ from __future__ import annotations
5
5
 
6
6
  from functools import wraps
7
7
 
8
+ from ._utils import _core_loader
9
+
8
10
  apilevel = "2.0"
9
11
  threadsafety = 2
10
12
  paramstyle = "pyformat"
@@ -45,6 +47,14 @@ from .errors import (
45
47
  from .log_configuration import EasyLoggingConfigPython
46
48
  from .version import VERSION
47
49
 
50
+ # Load the core library - failures are captured in core_loader and don't prevent module loading
51
+ try:
52
+ _core_loader.load()
53
+ except Exception:
54
+ # Silently continue if core loading fails - the error is already captured in core_loader
55
+ # This ensures the connector module loads even if the minicore library is unavailable
56
+ pass
57
+
48
58
  logging.getLogger(__name__).addHandler(NullHandler())
49
59
  setup_external_libraries()
50
60
 
@@ -0,0 +1,370 @@
1
+ from __future__ import annotations
2
+
3
+ import ctypes
4
+ import importlib
5
+ import logging
6
+ import os
7
+ import platform
8
+ import string
9
+ import threading
10
+ import time
11
+ from enum import Enum
12
+ from inspect import stack
13
+ from pathlib import Path
14
+ from random import choice
15
+ from threading import Timer
16
+ from uuid import UUID
17
+
18
+ from snowflake.connector.description import ISA, OPERATING_SYSTEM, OS_VERSION
19
+
20
+ logger = logging.getLogger(__name__)
21
+
22
+
23
+ class TempObjectType(Enum):
24
+ TABLE = "TABLE"
25
+ VIEW = "VIEW"
26
+ STAGE = "STAGE"
27
+ FUNCTION = "FUNCTION"
28
+ FILE_FORMAT = "FILE_FORMAT"
29
+ QUERY_TAG = "QUERY_TAG"
30
+ COLUMN = "COLUMN"
31
+ PROCEDURE = "PROCEDURE"
32
+ TABLE_FUNCTION = "TABLE_FUNCTION"
33
+ DYNAMIC_TABLE = "DYNAMIC_TABLE"
34
+ AGGREGATE_FUNCTION = "AGGREGATE_FUNCTION"
35
+ CTE = "CTE"
36
+
37
+
38
+ TEMP_OBJECT_NAME_PREFIX = "SNOWPARK_TEMP_"
39
+ ALPHANUMERIC = string.digits + string.ascii_lowercase
40
+ TEMPORARY_STRING = "TEMP"
41
+ SCOPED_TEMPORARY_STRING = "SCOPED TEMPORARY"
42
+ _PYTHON_SNOWPARK_USE_SCOPED_TEMP_OBJECTS_STRING = (
43
+ "PYTHON_SNOWPARK_USE_SCOPED_TEMP_OBJECTS"
44
+ )
45
+
46
+ REQUEST_ID_STATEMENT_PARAM_NAME = "requestId"
47
+
48
+ # Default server side cap on Degree of Parallelism for file transfer
49
+ # This default value is set to 2^30 (~ 10^9), such that it will not
50
+ # throttle regular sessions.
51
+ _DEFAULT_VALUE_SERVER_DOP_CAP_FOR_FILE_TRANSFER = 1 << 30
52
+ # Variable name of server DoP cap for file transfer
53
+ _VARIABLE_NAME_SERVER_DOP_CAP_FOR_FILE_TRANSFER = (
54
+ "snowflake_server_dop_cap_for_file_transfer"
55
+ )
56
+
57
+
58
+ def generate_random_alphanumeric(length: int = 10) -> str:
59
+ return "".join(choice(ALPHANUMERIC) for _ in range(length))
60
+
61
+
62
+ def random_name_for_temp_object(object_type: TempObjectType) -> str:
63
+ return f"{TEMP_OBJECT_NAME_PREFIX}{object_type.value}_{generate_random_alphanumeric().upper()}"
64
+
65
+
66
+ def get_temp_type_for_object(use_scoped_temp_objects: bool) -> str:
67
+ return SCOPED_TEMPORARY_STRING if use_scoped_temp_objects else TEMPORARY_STRING
68
+
69
+
70
+ def is_uuid4(str_or_uuid: str | UUID) -> bool:
71
+ """Check whether provided string str is a valid UUID version4."""
72
+ if isinstance(str_or_uuid, UUID):
73
+ return str_or_uuid.version == 4
74
+
75
+ if not isinstance(str_or_uuid, str):
76
+ return False
77
+
78
+ try:
79
+ uuid_str = str(UUID(str_or_uuid, version=4))
80
+ except ValueError:
81
+ return False
82
+ return uuid_str == str_or_uuid
83
+
84
+
85
+ def _snowflake_max_parallelism_for_file_transfer(connection):
86
+ """Returns the server side cap on max parallelism for file transfer for the given connection."""
87
+ return getattr(
88
+ connection,
89
+ f"_{_VARIABLE_NAME_SERVER_DOP_CAP_FOR_FILE_TRANSFER}",
90
+ _DEFAULT_VALUE_SERVER_DOP_CAP_FOR_FILE_TRANSFER,
91
+ )
92
+
93
+
94
+ class _TrackedQueryCancellationTimer(Timer):
95
+ def __init__(self, interval, function, args=None, kwargs=None):
96
+ super().__init__(interval, function, args, kwargs)
97
+ self.executed = False
98
+
99
+ def run(self):
100
+ super().run()
101
+ self.executed = True
102
+
103
+
104
+ def get_application_path() -> str:
105
+ """Get the path of the application script using the connector."""
106
+ try:
107
+ outermost_frame = stack()[-1]
108
+ return outermost_frame.filename
109
+ except Exception:
110
+ return "unknown"
111
+
112
+
113
+ _SPCS_TOKEN_ENV_VAR_NAME = "SF_SPCS_TOKEN_PATH"
114
+ _SPCS_TOKEN_DEFAULT_PATH = "/snowflake/session/spcs_token"
115
+
116
+
117
+ def get_spcs_token() -> str | None:
118
+ """Return the SPCS token read from the configured path, or None.
119
+
120
+ The path is determined by the SF_SPCS_TOKEN_PATH environment variable,
121
+ falling back to ``/snowflake/session/spcs_token`` when unset.
122
+
123
+ Any I/O errors or missing/empty files are treated as \"no token\" and
124
+ will not cause authentication to fail.
125
+ """
126
+ path = os.getenv(_SPCS_TOKEN_ENV_VAR_NAME) or _SPCS_TOKEN_DEFAULT_PATH
127
+ try:
128
+ if not os.path.isfile(path):
129
+ return None
130
+ with open(path, encoding="utf-8") as f:
131
+ token = f.read().strip()
132
+ if not token:
133
+ return None
134
+ return token
135
+ except Exception as exc: # pragma: no cover - best-effort logging only
136
+ logger.debug("Failed to read SPCS token from %s: %s", path, exc)
137
+ return None
138
+
139
+
140
+ class _NanoarrowLoader:
141
+ def __init__(self):
142
+ self._error: Exception | None = None
143
+
144
+ def set_load_error(self, err: Exception):
145
+ self._error = err
146
+
147
+ def get_load_error(self) -> str:
148
+ return str(self._error)
149
+
150
+
151
+ class _CoreLoader:
152
+ def __init__(self):
153
+ self._version: bytes | None = None
154
+ self._error: Exception | None = None
155
+ self._path: str | None = None
156
+ self._load_time: float | None = None
157
+
158
+ @staticmethod
159
+ def _detect_os() -> str:
160
+ """Detect the operating system."""
161
+ system = platform.system().lower()
162
+ if system == "linux":
163
+ return "linux"
164
+ elif system == "darwin":
165
+ return "macos"
166
+ elif system == "windows":
167
+ return "windows"
168
+ elif system == "aix":
169
+ return "aix"
170
+ else:
171
+ return "unknown"
172
+
173
+ @staticmethod
174
+ def _detect_arch() -> str:
175
+ """Detect the CPU architecture."""
176
+ machine = platform.machine().lower()
177
+ if machine in ("x86_64", "amd64"):
178
+ return "x86_64"
179
+ elif machine in ("aarch64", "arm64"):
180
+ return "aarch64"
181
+ elif machine in ("i686", "i386", "x86"):
182
+ return "i686"
183
+ elif machine == "ppc64":
184
+ return "ppc64"
185
+ else:
186
+ return "unknown"
187
+
188
+ @staticmethod
189
+ def _detect_libc() -> str:
190
+ """Detect libc type on Linux (glibc vs musl)."""
191
+ # Check if we're on Alpine/musl
192
+ if Path("/etc/alpine-release").exists():
193
+ return "musl"
194
+
195
+ # Check for musl by looking at the libc library
196
+ try:
197
+ import subprocess
198
+
199
+ result = subprocess.run(
200
+ ["ldd", "--version"],
201
+ capture_output=True,
202
+ text=True,
203
+ )
204
+ if "musl" in result.stdout.lower() or "musl" in result.stderr.lower():
205
+ return "musl"
206
+ except Exception:
207
+ pass
208
+
209
+ # Default to glibc
210
+ return "glibc"
211
+
212
+ @staticmethod
213
+ def _get_platform_subdir() -> str:
214
+ """Get the platform-specific subdirectory name."""
215
+ os_name = _CoreLoader._detect_os()
216
+ arch = _CoreLoader._detect_arch()
217
+
218
+ if os_name == "linux":
219
+ libc = _CoreLoader._detect_libc()
220
+ return f"linux_{arch}_{libc}"
221
+ elif os_name == "macos":
222
+ return f"macos_{arch}"
223
+ elif os_name == "windows":
224
+ return f"windows_{arch}"
225
+ elif os_name == "aix":
226
+ return f"aix_{arch}"
227
+
228
+ raise OSError(f"Mini core binary for {os_name} {arch} not found")
229
+
230
+ @staticmethod
231
+ def _get_lib_name() -> str:
232
+ """Get the library filename for the current platform."""
233
+ os_name = _CoreLoader._detect_os()
234
+ if os_name == "windows":
235
+ return "sf_mini_core.dll"
236
+ elif os_name == "macos":
237
+ return "libsf_mini_core.dylib"
238
+ elif os_name == "aix":
239
+ return "libsf_mini_core.a"
240
+ else:
241
+ # Linux and other Unix-like systems
242
+ return "libsf_mini_core.so"
243
+
244
+ @staticmethod
245
+ def _get_core_path():
246
+ """Get the path to the minicore library for the current platform."""
247
+ subdir = _CoreLoader._get_platform_subdir()
248
+ lib_name = _CoreLoader._get_lib_name()
249
+
250
+ files = importlib.resources.files("snowflake.connector.minicore")
251
+
252
+ return files.joinpath(subdir, lib_name)
253
+
254
+ @staticmethod
255
+ def _register_functions(core: ctypes.CDLL):
256
+ core.sf_core_full_version.argtypes = []
257
+ core.sf_core_full_version.restype = ctypes.c_char_p
258
+
259
+ @staticmethod
260
+ def _load_minicore(path: str) -> ctypes.CDLL:
261
+ # This context manager is the safe way to get a
262
+ # file path from importlib.resources. It handles cases
263
+ # where the file is inside a zip and needs to be extracted
264
+ # to a temporary location.
265
+ with importlib.resources.as_file(path) as lib_path:
266
+ core = ctypes.CDLL(str(lib_path))
267
+ return core
268
+
269
+ def get_present_binaries(self) -> str:
270
+ present_binaries = []
271
+ try:
272
+ minicore_files = importlib.resources.files("snowflake.connector.minicore")
273
+ # Iterate through all items in the minicore module
274
+ for item in minicore_files.iterdir():
275
+ # Skip non-platform directories like __pycache__
276
+ if item.is_dir() and not item.name.startswith("__"):
277
+ # This is a platform subdirectory
278
+ platform_name = item.name
279
+ try:
280
+ # List all files in this subdirectory
281
+ for binary_file in item.iterdir():
282
+ if binary_file.is_file():
283
+ # Store as "platform/filename"
284
+ present_binaries.append(
285
+ f"{platform_name}/{binary_file.name}"
286
+ )
287
+ except Exception as e:
288
+ logger.debug(f"Error listing binaries in {platform_name}: {e}")
289
+ except Exception as e:
290
+ logger.debug(f"Error populating present binaries: {e}")
291
+
292
+ return ",".join(present_binaries)
293
+
294
+ def _is_core_disabled(self) -> bool:
295
+ value = str(os.getenv("SNOWFLAKE_DISABLE_MINICORE", None)).lower()
296
+ return value in ["1", "true"]
297
+
298
+ def _load(self) -> None:
299
+ start_time = time.perf_counter()
300
+ try:
301
+ path = self._get_core_path()
302
+ self._path = str(path)
303
+ core = self._load_minicore(path)
304
+ self._register_functions(core)
305
+ self._version = core.sf_core_full_version()
306
+ self._error = None
307
+ except Exception as err:
308
+ self._error = err
309
+ end_time = time.perf_counter()
310
+ # Store load time in milliseconds (with sub-millisecond precision)
311
+ self._load_time = (end_time - start_time) * 1000
312
+
313
+ def load(self):
314
+ """Spawn a separate thread to load the minicore library (non-blocking)."""
315
+ if self._is_core_disabled():
316
+ self._error = "mini-core-disabled"
317
+ return
318
+ self._error = "still-loading"
319
+ thread = threading.Thread(target=self._load, daemon=True)
320
+ thread.start()
321
+
322
+ def get_load_error(self) -> str:
323
+ return str(self._error)
324
+
325
+ def get_core_version(self) -> str | None:
326
+ if self._version:
327
+ try:
328
+ return self._version.decode("utf-8")
329
+ except Exception:
330
+ pass
331
+ return None
332
+
333
+ def get_file_name(self) -> str:
334
+ return self._path
335
+
336
+ def get_load_time(self) -> float | None:
337
+ """Return the time it took to load the minicore binary in milliseconds."""
338
+ return self._load_time
339
+
340
+
341
+ _core_loader = _CoreLoader()
342
+ _nanoarrow_loader = _NanoarrowLoader()
343
+
344
+
345
+ def build_minicore_usage_for_session() -> dict[str, str | None]:
346
+ return {
347
+ "ISA": ISA,
348
+ "CORE_VERSION": _core_loader.get_core_version(),
349
+ "CORE_FILE_NAME": _core_loader.get_file_name(),
350
+ }
351
+
352
+
353
+ def build_minicore_usage_for_telemetry() -> dict[str, str | None]:
354
+ return {
355
+ "OS": OPERATING_SYSTEM,
356
+ "OS_VERSION": OS_VERSION,
357
+ "CORE_LOAD_ERROR": _core_loader.get_load_error(),
358
+ "CORE_BINARIES_PRESENT": _core_loader.get_present_binaries(),
359
+ "CORE_LOAD_TIME": _core_loader.get_load_time(),
360
+ **build_minicore_usage_for_session(),
361
+ }
362
+
363
+
364
+ def build_nanoarrow_usage_for_telemetry() -> dict[str, str | None]:
365
+ return {
366
+ "OS": OPERATING_SYSTEM,
367
+ "OS_VERSION": OS_VERSION,
368
+ "NANOARROW_LOAD_ERROR": _nanoarrow_loader.get_load_error(),
369
+ "ISA": ISA,
370
+ }
@@ -0,0 +1,88 @@
1
+ # Notice
2
+
3
+ **This component is a Preview feature provided for experimental purposes only.
4
+ It is provided "AS IS" and without warranty of any kind. This module is not
5
+ supported by Snowflake Support. Use of this code is at your own risk and it
6
+ is not intended for production environments.**
7
+
8
+ ## Features NOT Supported
9
+
10
+
11
+ - ❌ `conn.errorhandler` (get/set) - no support for async errorhandlers
12
+ - ❌ `enable_connection_diag=True` - no connection diagnostic
13
+ - ❌ `authenticator='PAT_WITH_EXTERNAL_SESSION'` - not supported
14
+ - ❌ `mfa_callback` / `password_callback` - not supported
15
+ - ❌ `_probe_connection=True` - no connection diagnostic
16
+ - ❌ Raw binary response handling - not supported
17
+ - ❌ CRL (Certificate Revocation List) - not supported (only OCSP is supported)
18
+
19
+ ## Installation & Import
20
+
21
+ Using aio version requires additional installation of `aiohttp` dependency.
22
+
23
+ ```python
24
+ # Same package, different import
25
+ from snowflake.connector.aio import connect, SnowflakeConnection, DictCursor
26
+ ```
27
+
28
+
29
+ ## Connection Patterns
30
+
31
+
32
+ ```python
33
+ # Pattern 1: Async context manager (recommended)
34
+ async with connect(user='...', password='...', account='...') as conn:
35
+ # Use connection
36
+ pass
37
+
38
+
39
+ # Pattern 2: Direct await
40
+ conn = await connect(user='...', password='...', account='...')
41
+ await conn.close()
42
+
43
+
44
+ # Pattern 3: Manual
45
+ conn = SnowflakeConnection(user='...', password='...', account='...')
46
+ await conn.connect()
47
+ await conn.close()
48
+ ```
49
+
50
+
51
+ ## Basic Operations Comparison
52
+
53
+
54
+ | Operation | Sync | Async |
55
+ |-----------|------|-------|
56
+ | **Connect** | `conn = connect(...)` | `conn = await connect(...)` |
57
+ | **Create cursor** | `cur = conn.cursor()` | `cur = conn.cursor()` *(same)* |
58
+ | **Execute** | `cur.execute(sql)` | `await cur.execute(sql)` |
59
+ | **Fetch one** | `cur.fetchone()` | `await cur.fetchone()` |
60
+ | **Fetch many** | `cur.fetchmany(n)` | `await cur.fetchmany(n)` |
61
+ | **Fetch all** | `cur.fetchall()` | `await cur.fetchall()` |
62
+ | **Iterate** | `for row in cur:` | `async for row in cur:` |
63
+ | **Commit** | `conn.commit()` | `await conn.commit()` |
64
+ | **Rollback** | `conn.rollback()` | `await conn.rollback()` |
65
+ | **Close** | `conn.close()` | `await conn.close()` |
66
+
67
+
68
+ ## Quick Examples
69
+
70
+
71
+ ### Simple Query
72
+
73
+
74
+ ```python
75
+ import asyncio
76
+ from snowflake.connector.aio import connect
77
+
78
+
79
+ async def query_data():
80
+ async with connect(user='...', password='...', account='...') as conn:
81
+ async with conn.cursor() as cur:
82
+ await cur.execute("SELECT * FROM table WHERE id < %s", (100,))
83
+ async for row in cur:
84
+ print(row)
85
+
86
+
87
+ asyncio.run(query_data())
88
+ ```