snowflake-connector-python 4.1.1__tar.gz → 4.2.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 (300) hide show
  1. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/DESCRIPTION.md +6 -1
  2. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/MANIFEST.in +3 -0
  3. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/PKG-INFO +8 -2
  4. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/pyproject.toml +5 -0
  5. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/setup.cfg +8 -0
  6. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/setup.py +0 -1
  7. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/__init__.py +10 -0
  8. snowflake_connector_python-4.2.0/src/snowflake/connector/_utils.py +312 -0
  9. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/__init__.py +167 -0
  10. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_azure_storage_client.py +227 -0
  11. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_bind_upload_agent.py +69 -0
  12. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_connection.py +1204 -0
  13. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_cursor.py +1402 -0
  14. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_description.py +5 -0
  15. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_direct_file_operation_utils.py +88 -0
  16. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_file_transfer_agent.py +316 -0
  17. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_gcs_storage_client.py +360 -0
  18. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_network.py +860 -0
  19. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_ocsp_asn1crypto.py +51 -0
  20. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_ocsp_snowflake.py +608 -0
  21. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_pandas_tools.py +561 -0
  22. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_result_batch.py +442 -0
  23. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_result_set.py +309 -0
  24. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_s3_storage_client.py +460 -0
  25. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_session_manager.py +588 -0
  26. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_storage_client.py +331 -0
  27. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_telemetry.py +97 -0
  28. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_time_util.py +57 -0
  29. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/_wif_util.py +324 -0
  30. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/__init__.py +52 -0
  31. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_auth.py +401 -0
  32. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_by_plugin.py +131 -0
  33. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_default.py +28 -0
  34. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_idtoken.py +54 -0
  35. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_keypair.py +60 -0
  36. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_no_auth.py +31 -0
  37. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_oauth.py +27 -0
  38. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_oauth_code.py +117 -0
  39. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_oauth_credentials.py +100 -0
  40. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_okta.py +247 -0
  41. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_pat.py +27 -0
  42. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_usrpwdmfa.py +30 -0
  43. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_webbrowser.py +405 -0
  44. snowflake_connector_python-4.2.0/src/snowflake/connector/aio/auth/_workload_identity.py +60 -0
  45. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/_auth.py +23 -1
  46. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/workload_identity.py +1 -1
  47. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/connection.py +24 -0
  48. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/cursor.py +48 -0
  49. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/description.py +2 -0
  50. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/errors.py +29 -9
  51. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/externals_utils/externals_setup.py +3 -0
  52. snowflake_connector_python-4.2.0/src/snowflake/connector/minicore/linux_x86_64_glibc/libsf_mini_core.so +0 -0
  53. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/options.py +25 -0
  54. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/result_batch.py +1 -1
  55. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/session_manager.py +4 -3
  56. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/telemetry.py +2 -0
  57. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/url_util.py +6 -0
  58. snowflake_connector_python-4.2.0/src/snowflake/connector/vendored/urllib3/contrib/__init__.py +0 -0
  59. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/version.py +1 -1
  60. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake_connector_python.egg-info/PKG-INFO +8 -2
  61. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake_connector_python.egg-info/SOURCES.txt +38 -0
  62. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake_connector_python.egg-info/requires.txt +1 -0
  63. snowflake_connector_python-4.1.1/src/snowflake/connector/_utils.py +0 -98
  64. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/CONTRIBUTING.md +0 -0
  65. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/LICENSE.txt +0 -0
  66. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/NOTICE +0 -0
  67. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/README.md +0 -0
  68. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/SECURITY.md +0 -0
  69. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/_query_context_cache.py +0 -0
  70. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/_sql_util.py +0 -0
  71. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/arrow_context.py +0 -0
  72. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/__init__.py +0 -0
  73. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/_http_server.py +0 -0
  74. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/_oauth_base.py +0 -0
  75. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/by_plugin.py +0 -0
  76. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/default.py +0 -0
  77. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/idtoken.py +0 -0
  78. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/keypair.py +0 -0
  79. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/no_auth.py +0 -0
  80. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/oauth.py +0 -0
  81. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/oauth_code.py +0 -0
  82. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/oauth_credentials.py +0 -0
  83. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/okta.py +0 -0
  84. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/pat.py +0 -0
  85. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/usrpwdmfa.py +0 -0
  86. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/auth/webbrowser.py +0 -0
  87. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/azure_storage_client.py +0 -0
  88. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/backoff_policies.py +0 -0
  89. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/bind_upload_agent.py +0 -0
  90. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/cache.py +0 -0
  91. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/compat.py +0 -0
  92. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/config_manager.py +0 -0
  93. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/connection_diagnostic.py +0 -0
  94. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/constants.py +0 -0
  95. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/converter.py +0 -0
  96. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/converter_issue23517.py +0 -0
  97. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/converter_null.py +0 -0
  98. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/converter_snowsql.py +0 -0
  99. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/crl.py +0 -0
  100. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/crl_cache.py +0 -0
  101. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/dbapi.py +0 -0
  102. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/direct_file_operation_utils.py +0 -0
  103. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/encryption_util.py +0 -0
  104. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/errorcode.py +0 -0
  105. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/externals_utils/__init__.py +0 -0
  106. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/feature.py +0 -0
  107. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/file_compression_type.py +0 -0
  108. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/file_lock.py +0 -0
  109. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/file_transfer_agent.py +0 -0
  110. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/file_util.py +0 -0
  111. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/gcs_storage_client.py +0 -0
  112. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/gzip_decoder.py +0 -0
  113. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/interval_util.py +0 -0
  114. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/local_storage_client.py +0 -0
  115. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/log_configuration.py +0 -0
  116. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/logging_utils/__init__.py +0 -0
  117. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/logging_utils/filters.py +0 -0
  118. {snowflake_connector_python-4.1.1/src/snowflake/connector/tool → snowflake_connector_python-4.2.0/src/snowflake/connector/minicore}/__init__.py +0 -0
  119. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
  120. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
  121. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
  122. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
  123. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
  124. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
  125. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.cpp +0 -0
  126. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.hpp +0 -0
  127. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
  128. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
  129. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.cpp +0 -0
  130. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.hpp +0 -0
  131. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -0
  132. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
  133. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +0 -0
  134. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +0 -0
  135. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -0
  136. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
  137. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -0
  138. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
  139. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
  140. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
  141. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
  142. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
  143. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
  144. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntervalConverter.cpp +0 -0
  145. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntervalConverter.hpp +0 -0
  146. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
  147. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -0
  148. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
  149. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
  150. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
  151. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
  152. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -0
  153. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
  154. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
  155. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
  156. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
  157. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
  158. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
  159. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -0
  160. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
  161. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
  162. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
  163. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
  164. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
  165. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
  166. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
  167. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
  168. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
  169. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
  170. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
  171. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
  172. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
  173. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
  174. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
  175. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
  176. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
  177. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
  178. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
  179. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
  180. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
  181. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
  182. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
  183. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
  184. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
  185. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
  186. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
  187. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
  188. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
  189. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
  190. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
  191. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
  192. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
  193. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
  194. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
  195. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
  196. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
  197. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
  198. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
  199. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
  200. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
  201. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
  202. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
  203. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_arrow_iterator.pyx +0 -0
  204. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.c +0 -0
  205. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.h +0 -0
  206. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -0
  207. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
  208. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.cpp +0 -0
  209. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.hpp +0 -0
  210. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/network.py +0 -0
  211. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/ocsp_asn1crypto.py +0 -0
  212. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/ocsp_snowflake.py +0 -0
  213. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/pandas_tools.py +0 -0
  214. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/platform_detection.py +0 -0
  215. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/proxy.py +0 -0
  216. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/py.typed +0 -0
  217. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/result_set.py +0 -0
  218. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/s3_storage_client.py +0 -0
  219. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/secret_detector.py +0 -0
  220. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/sf_dirs.py +0 -0
  221. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/sfbinaryformat.py +0 -0
  222. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/sfdatetime.py +0 -0
  223. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/snow_logging.py +0 -0
  224. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/sqlstate.py +0 -0
  225. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/ssd_internal_keys.py +0 -0
  226. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/ssl_wrap_socket.py +0 -0
  227. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/storage_client.py +0 -0
  228. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/telemetry_oob.py +0 -0
  229. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/test_util.py +0 -0
  230. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/time_util.py +0 -0
  231. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/token_cache.py +0 -0
  232. {snowflake_connector_python-4.1.1/src/snowflake/connector/vendored/urllib3/contrib → snowflake_connector_python-4.2.0/src/snowflake/connector/tool}/__init__.py +0 -0
  233. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/tool/dump_certs.py +0 -0
  234. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/tool/dump_ocsp_response.py +0 -0
  235. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/tool/dump_ocsp_response_cache.py +0 -0
  236. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/tool/probe_connection.py +0 -0
  237. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/util_text.py +0 -0
  238. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/__init__.py +0 -0
  239. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/LICENSE +0 -0
  240. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/__init__.py +0 -0
  241. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/__version__.py +0 -0
  242. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/_internal_utils.py +0 -0
  243. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/adapters.py +0 -0
  244. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/api.py +0 -0
  245. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/auth.py +0 -0
  246. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/certs.py +0 -0
  247. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/compat.py +0 -0
  248. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/cookies.py +0 -0
  249. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/exceptions.py +0 -0
  250. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/help.py +0 -0
  251. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/hooks.py +0 -0
  252. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/models.py +0 -0
  253. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/packages.py +0 -0
  254. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/sessions.py +0 -0
  255. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/status_codes.py +0 -0
  256. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/structures.py +0 -0
  257. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/requests/utils.py +0 -0
  258. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/LICENSE.txt +0 -0
  259. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/__init__.py +0 -0
  260. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/_base_connection.py +0 -0
  261. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/_collections.py +0 -0
  262. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/_request_methods.py +0 -0
  263. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/_version.py +0 -0
  264. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/connection.py +0 -0
  265. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/connectionpool.py +0 -0
  266. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/__init__.py +0 -0
  267. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/connection.py +0 -0
  268. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/emscripten_fetch_worker.js +0 -0
  269. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/fetch.py +0 -0
  270. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/request.py +0 -0
  271. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/contrib/emscripten/response.py +0 -0
  272. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/contrib/pyopenssl.py +0 -0
  273. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/contrib/socks.py +0 -0
  274. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/exceptions.py +0 -0
  275. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/fields.py +0 -0
  276. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/filepost.py +0 -0
  277. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/http2/__init__.py +0 -0
  278. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/http2/connection.py +0 -0
  279. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/http2/probe.py +0 -0
  280. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/poolmanager.py +0 -0
  281. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/py.typed +0 -0
  282. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/response.py +0 -0
  283. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/__init__.py +0 -0
  284. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/connection.py +0 -0
  285. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/proxy.py +0 -0
  286. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/request.py +0 -0
  287. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/response.py +0 -0
  288. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/retry.py +0 -0
  289. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/ssl_.py +0 -0
  290. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/ssl_match_hostname.py +0 -0
  291. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/ssltransport.py +0 -0
  292. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/timeout.py +0 -0
  293. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/url.py +0 -0
  294. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/util.py +0 -0
  295. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/vendored/urllib3/util/wait.py +0 -0
  296. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake/connector/wif_util.py +0 -0
  297. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake_connector_python.egg-info/dependency_links.txt +0 -0
  298. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake_connector_python.egg-info/entry_points.txt +0 -0
  299. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake_connector_python.egg-info/not-zip-safe +0 -0
  300. {snowflake_connector_python-4.1.1 → snowflake_connector_python-4.2.0}/src/snowflake_connector_python.egg-info/top_level.txt +0 -0
@@ -7,7 +7,12 @@ 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.2.0(January 07,2026)
11
+ - Added `SnowflakeCursor.stats` property to expose granular DML statistics (rows inserted, deleted, updated, and duplicates) for operations like CTAS where `rowcount` is insufficient.
12
+ - Added support for injecting SPCS service identifier token (`SPCS_TOKEN`) into login requests when present in SPCS containers.
13
+ - Introduced shared library for extended telemetry to identify and prepare testing platform for native rust extensions.
14
+
15
+ - v4.1.1(December 12,2025)
11
16
  - Relaxed pandas dependency requirements for Python below 3.12.
12
17
  - Changed CRL cache cleanup background task to daemon to avoid blocking main thread.
13
18
  - Fixed NO_PROXY issues with PUT operations
@@ -13,6 +13,9 @@ exclude src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_arrow_iter
13
13
  exclude src/snowflake/connector/nanoarrow_cpp/scripts/.clang-format
14
14
  exclude src/snowflake/connector/nanoarrow_cpp/scripts/format.sh
15
15
 
16
+ include src/snowflake/connector/minicore __init__.py
17
+ recursive-include src/snowflake/connector/minicore *.so *.dll *.dylib *.a *.h *.lib
18
+
16
19
  exclude .git-blame-ignore-revs
17
20
  exclude .pre-commit-config.yaml
18
21
  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.2.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,12 @@ 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.2.0(January 07,2026)
97
+ - Added `SnowflakeCursor.stats` property to expose granular DML statistics (rows inserted, deleted, updated, and duplicates) for operations like CTAS where `rowcount` is insufficient.
98
+ - Added support for injecting SPCS service identifier token (`SPCS_TOKEN`) into login requests when present in SPCS containers.
99
+ - Introduced shared library for extended telemetry to identify and prepare testing platform for native rust extensions.
100
+
101
+ - v4.1.1(December 12,2025)
96
102
  - Relaxed pandas dependency requirements for Python below 3.12.
97
103
  - Changed CRL cache cleanup background task to daemon to avoid blocking main thread.
98
104
  - Fixed NO_PROXY issues with PUT operations
@@ -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,312 @@
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
+ from enum import Enum
11
+ from inspect import stack
12
+ from pathlib import Path
13
+ from random import choice
14
+ from threading import Timer
15
+ from uuid import UUID
16
+
17
+ from snowflake.connector.description import ISA, OPERATING_SYSTEM, OS_VERSION
18
+
19
+ logger = logging.getLogger(__name__)
20
+
21
+
22
+ class TempObjectType(Enum):
23
+ TABLE = "TABLE"
24
+ VIEW = "VIEW"
25
+ STAGE = "STAGE"
26
+ FUNCTION = "FUNCTION"
27
+ FILE_FORMAT = "FILE_FORMAT"
28
+ QUERY_TAG = "QUERY_TAG"
29
+ COLUMN = "COLUMN"
30
+ PROCEDURE = "PROCEDURE"
31
+ TABLE_FUNCTION = "TABLE_FUNCTION"
32
+ DYNAMIC_TABLE = "DYNAMIC_TABLE"
33
+ AGGREGATE_FUNCTION = "AGGREGATE_FUNCTION"
34
+ CTE = "CTE"
35
+
36
+
37
+ TEMP_OBJECT_NAME_PREFIX = "SNOWPARK_TEMP_"
38
+ ALPHANUMERIC = string.digits + string.ascii_lowercase
39
+ TEMPORARY_STRING = "TEMP"
40
+ SCOPED_TEMPORARY_STRING = "SCOPED TEMPORARY"
41
+ _PYTHON_SNOWPARK_USE_SCOPED_TEMP_OBJECTS_STRING = (
42
+ "PYTHON_SNOWPARK_USE_SCOPED_TEMP_OBJECTS"
43
+ )
44
+
45
+ REQUEST_ID_STATEMENT_PARAM_NAME = "requestId"
46
+
47
+ # Default server side cap on Degree of Parallelism for file transfer
48
+ # This default value is set to 2^30 (~ 10^9), such that it will not
49
+ # throttle regular sessions.
50
+ _DEFAULT_VALUE_SERVER_DOP_CAP_FOR_FILE_TRANSFER = 1 << 30
51
+ # Variable name of server DoP cap for file transfer
52
+ _VARIABLE_NAME_SERVER_DOP_CAP_FOR_FILE_TRANSFER = (
53
+ "snowflake_server_dop_cap_for_file_transfer"
54
+ )
55
+
56
+
57
+ def generate_random_alphanumeric(length: int = 10) -> str:
58
+ return "".join(choice(ALPHANUMERIC) for _ in range(length))
59
+
60
+
61
+ def random_name_for_temp_object(object_type: TempObjectType) -> str:
62
+ return f"{TEMP_OBJECT_NAME_PREFIX}{object_type.value}_{generate_random_alphanumeric().upper()}"
63
+
64
+
65
+ def get_temp_type_for_object(use_scoped_temp_objects: bool) -> str:
66
+ return SCOPED_TEMPORARY_STRING if use_scoped_temp_objects else TEMPORARY_STRING
67
+
68
+
69
+ def is_uuid4(str_or_uuid: str | UUID) -> bool:
70
+ """Check whether provided string str is a valid UUID version4."""
71
+ if isinstance(str_or_uuid, UUID):
72
+ return str_or_uuid.version == 4
73
+
74
+ if not isinstance(str_or_uuid, str):
75
+ return False
76
+
77
+ try:
78
+ uuid_str = str(UUID(str_or_uuid, version=4))
79
+ except ValueError:
80
+ return False
81
+ return uuid_str == str_or_uuid
82
+
83
+
84
+ def _snowflake_max_parallelism_for_file_transfer(connection):
85
+ """Returns the server side cap on max parallelism for file transfer for the given connection."""
86
+ return getattr(
87
+ connection,
88
+ f"_{_VARIABLE_NAME_SERVER_DOP_CAP_FOR_FILE_TRANSFER}",
89
+ _DEFAULT_VALUE_SERVER_DOP_CAP_FOR_FILE_TRANSFER,
90
+ )
91
+
92
+
93
+ class _TrackedQueryCancellationTimer(Timer):
94
+ def __init__(self, interval, function, args=None, kwargs=None):
95
+ super().__init__(interval, function, args, kwargs)
96
+ self.executed = False
97
+
98
+ def run(self):
99
+ super().run()
100
+ self.executed = True
101
+
102
+
103
+ def get_application_path() -> str:
104
+ """Get the path of the application script using the connector."""
105
+ try:
106
+ outermost_frame = stack()[-1]
107
+ return outermost_frame.filename
108
+ except Exception:
109
+ return "unknown"
110
+
111
+
112
+ _SPCS_TOKEN_ENV_VAR_NAME = "SF_SPCS_TOKEN_PATH"
113
+ _SPCS_TOKEN_DEFAULT_PATH = "/snowflake/session/spcs_token"
114
+
115
+
116
+ def get_spcs_token() -> str | None:
117
+ """Return the SPCS token read from the configured path, or None.
118
+
119
+ The path is determined by the SF_SPCS_TOKEN_PATH environment variable,
120
+ falling back to ``/snowflake/session/spcs_token`` when unset.
121
+
122
+ Any I/O errors or missing/empty files are treated as \"no token\" and
123
+ will not cause authentication to fail.
124
+ """
125
+ path = os.getenv(_SPCS_TOKEN_ENV_VAR_NAME) or _SPCS_TOKEN_DEFAULT_PATH
126
+ try:
127
+ if not os.path.isfile(path):
128
+ return None
129
+ with open(path, encoding="utf-8") as f:
130
+ token = f.read().strip()
131
+ if not token:
132
+ return None
133
+ return token
134
+ except Exception as exc: # pragma: no cover - best-effort logging only
135
+ logger.debug("Failed to read SPCS token from %s: %s", path, exc)
136
+ return None
137
+
138
+
139
+ class _CoreLoader:
140
+ def __init__(self):
141
+ self._version: bytes | None = None
142
+ self._error: Exception | None = None
143
+ self._path: str | None = None
144
+
145
+ @staticmethod
146
+ def _detect_os() -> str:
147
+ """Detect the operating system."""
148
+ system = platform.system().lower()
149
+ if system == "linux":
150
+ return "linux"
151
+ elif system == "darwin":
152
+ return "macos"
153
+ elif system == "windows":
154
+ return "windows"
155
+ elif system == "aix":
156
+ return "aix"
157
+ else:
158
+ return "unknown"
159
+
160
+ @staticmethod
161
+ def _detect_arch() -> str:
162
+ """Detect the CPU architecture."""
163
+ machine = platform.machine().lower()
164
+ if machine in ("x86_64", "amd64"):
165
+ return "x86_64"
166
+ elif machine in ("aarch64", "arm64"):
167
+ return "aarch64"
168
+ elif machine in ("i686", "i386", "x86"):
169
+ return "i686"
170
+ elif machine == "ppc64":
171
+ return "ppc64"
172
+ else:
173
+ return "unknown"
174
+
175
+ @staticmethod
176
+ def _detect_libc() -> str:
177
+ """Detect libc type on Linux (glibc vs musl)."""
178
+ # Check if we're on Alpine/musl
179
+ if Path("/etc/alpine-release").exists():
180
+ return "musl"
181
+
182
+ # Check for musl by looking at the libc library
183
+ try:
184
+ import subprocess
185
+
186
+ result = subprocess.run(
187
+ ["ldd", "--version"],
188
+ capture_output=True,
189
+ text=True,
190
+ )
191
+ if "musl" in result.stdout.lower() or "musl" in result.stderr.lower():
192
+ return "musl"
193
+ except Exception:
194
+ pass
195
+
196
+ # Default to glibc
197
+ return "glibc"
198
+
199
+ @staticmethod
200
+ def _get_platform_subdir() -> str:
201
+ """Get the platform-specific subdirectory name."""
202
+ os_name = _CoreLoader._detect_os()
203
+ arch = _CoreLoader._detect_arch()
204
+
205
+ if os_name == "linux":
206
+ libc = _CoreLoader._detect_libc()
207
+ return f"linux_{arch}_{libc}"
208
+ elif os_name == "macos":
209
+ return f"macos_{arch}"
210
+ elif os_name == "windows":
211
+ return f"windows_{arch}"
212
+ elif os_name == "aix":
213
+ return f"aix_{arch}"
214
+
215
+ raise OSError(f"Mini core binary for {os_name} {arch} not found")
216
+
217
+ @staticmethod
218
+ def _get_lib_name() -> str:
219
+ """Get the library filename for the current platform."""
220
+ os_name = _CoreLoader._detect_os()
221
+ if os_name == "windows":
222
+ return "sf_mini_core.dll"
223
+ elif os_name == "macos":
224
+ return "libsf_mini_core.dylib"
225
+ elif os_name == "aix":
226
+ return "libsf_mini_core.a"
227
+ else:
228
+ # Linux and other Unix-like systems
229
+ return "libsf_mini_core.so"
230
+
231
+ @staticmethod
232
+ def _get_core_path() -> Path:
233
+ """Get the path to the minicore library for the current platform."""
234
+ subdir = _CoreLoader._get_platform_subdir()
235
+ lib_name = _CoreLoader._get_lib_name()
236
+
237
+ files = importlib.resources.files("snowflake.connector.minicore")
238
+
239
+ return files.joinpath(subdir, lib_name)
240
+
241
+ @staticmethod
242
+ def _register_functions(core: ctypes.CDLL):
243
+ core.sf_core_full_version.argtypes = []
244
+ core.sf_core_full_version.restype = ctypes.c_char_p
245
+
246
+ @staticmethod
247
+ def _load_minicore(path: str) -> ctypes.CDLL:
248
+ # This context manager is the safe way to get a
249
+ # file path from importlib.resources. It handles cases
250
+ # where the file is inside a zip and needs to be extracted
251
+ # to a temporary location.
252
+ with importlib.resources.as_file(path) as lib_path:
253
+ core = ctypes.CDLL(str(lib_path))
254
+ return core
255
+
256
+ def _is_core_disabled(self) -> bool:
257
+ value = str(os.getenv("SNOWFLAKE_DISABLE_MINICORE", None)).lower()
258
+ return value in ["1", "true"]
259
+
260
+ def _load(self) -> None:
261
+ try:
262
+ path = self._get_core_path()
263
+ core = self._load_minicore(path)
264
+ self._register_functions(core)
265
+ self._version = core.sf_core_full_version()
266
+ self._error = None
267
+ self._path = str(path)
268
+ except Exception as err:
269
+ self._error = err
270
+
271
+ def load(self):
272
+ """Spawn a separate thread to load the minicore library (non-blocking)."""
273
+ if self._is_core_disabled():
274
+ self._error = "mini-core-disabled"
275
+ return
276
+ self._error = "still-loading"
277
+ thread = threading.Thread(target=self._load, daemon=True)
278
+ thread.start()
279
+
280
+ def get_load_error(self) -> str:
281
+ return str(self._error)
282
+
283
+ def get_core_version(self) -> str | None:
284
+ if self._version:
285
+ try:
286
+ return self._version.decode("utf-8")
287
+ except Exception:
288
+ pass
289
+ return None
290
+
291
+ def get_file_name(self) -> str:
292
+ return self._path
293
+
294
+
295
+ _core_loader = _CoreLoader()
296
+
297
+
298
+ def build_minicore_usage_for_session() -> dict[str, str | None]:
299
+ return {
300
+ "ISA": ISA,
301
+ "CORE_VERSION": _core_loader.get_core_version(),
302
+ "CORE_FILE_NAME": _core_loader.get_file_name(),
303
+ }
304
+
305
+
306
+ def build_minicore_usage_for_telemetry() -> dict[str, str | None]:
307
+ return {
308
+ "OS": OPERATING_SYSTEM,
309
+ "OS_VERSION": OS_VERSION,
310
+ "CORE_LOAD_ERROR": _core_loader.get_load_error(),
311
+ **build_minicore_usage_for_session(),
312
+ }
@@ -0,0 +1,167 @@
1
+ from __future__ import annotations
2
+
3
+ # temporarily disable aio - SNOW-2905263
4
+ raise ImportError("aio is not supported in this version of the connector")
5
+
6
+
7
+ from functools import wraps
8
+ from typing import Any, Coroutine, Generator, Protocol, TypeVar, runtime_checkable
9
+
10
+ from ._connection import SnowflakeConnection
11
+ from ._cursor import DictCursor, SnowflakeCursor
12
+
13
+ __all__ = [
14
+ SnowflakeConnection,
15
+ SnowflakeCursor,
16
+ DictCursor,
17
+ ]
18
+
19
+ # ============================================================================
20
+ # DESIGN NOTES:
21
+ #
22
+ # Pattern similar to aiohttp.ClientSession.request() which similarly returns
23
+ # an object that can be both awaited and used as an async context manager.
24
+ #
25
+ # The async connect function uses a wrapper to support both:
26
+ # 1. Direct awaiting: conn = await connect(...)
27
+ # 2. Async context manager: async with connect(...) as conn:
28
+ #
29
+ # connect: A function decorated with @wraps(SnowflakeConnection.__init__) that
30
+ # preserves metadata for IDE support, type checking, and introspection.
31
+ # Returns a _AsyncConnectContextManager instance when called.
32
+ #
33
+ # _AsyncConnectContextManager: Implements __await__ and __aenter__/__aexit__
34
+ # to support both patterns on the same awaitable.
35
+ #
36
+ # The @wraps decorator ensures that connect() has the same signature and
37
+ # documentation as SnowflakeConnection.__init__, making it behave identically
38
+ # to the sync snowflake.connector.connect function from an introspection POV.
39
+ #
40
+ # Metadata preservation is critical for IDE autocomplete, static type checkers,
41
+ # and documentation generation to work correctly on the async connect function.
42
+ # ============================================================================
43
+
44
+
45
+ T = TypeVar("T")
46
+
47
+
48
+ @runtime_checkable
49
+ class HybridCoroutineContextManager(Protocol[T]):
50
+ """Protocol for a hybrid coroutine that is also an async context manager.
51
+
52
+ Combines the full coroutine protocol (PEP 492) with async context manager
53
+ protocol (PEP 343/492), allowing code that expects either interface to work
54
+ seamlessly with instances of this protocol.
55
+
56
+ This is used when external code needs to manage the coroutine lifecycle
57
+ (e.g., timeout handlers, async schedulers) or use it as a context manager.
58
+ """
59
+
60
+ # Full Coroutine Protocol (PEP 492)
61
+ def send(self, __arg: Any) -> Any:
62
+ """Send a value into the coroutine."""
63
+ ...
64
+
65
+ def throw(
66
+ self,
67
+ __typ: type[BaseException],
68
+ __val: BaseException | None = None,
69
+ __tb: Any = None,
70
+ ) -> Any:
71
+ """Throw an exception into the coroutine."""
72
+ ...
73
+
74
+ def close(self) -> None:
75
+ """Close the coroutine."""
76
+ ...
77
+
78
+ def __await__(self) -> Generator[Any, None, T]:
79
+ """Return awaitable generator."""
80
+ ...
81
+
82
+ def __iter__(self) -> Generator[Any, None, T]:
83
+ """Iterate over the coroutine."""
84
+ ...
85
+
86
+ # Async Context Manager Protocol (PEP 343)
87
+ async def __aenter__(self) -> T:
88
+ """Async context manager entry."""
89
+ ...
90
+
91
+ async def __aexit__(
92
+ self,
93
+ __exc_type: type[BaseException] | None,
94
+ __exc_val: BaseException | None,
95
+ __exc_tb: Any,
96
+ ) -> bool | None:
97
+ """Async context manager exit."""
98
+ ...
99
+
100
+
101
+ class _AsyncConnectContextManager(HybridCoroutineContextManager[SnowflakeConnection]):
102
+ """Hybrid wrapper that enables both awaiting and async context manager usage.
103
+
104
+ Allows both patterns:
105
+ - conn = await connect(...)
106
+ - async with connect(...) as conn:
107
+
108
+ Implements the full coroutine protocol for maximum compatibility.
109
+ Satisfies the HybridCoroutineContextManager protocol.
110
+ """
111
+
112
+ __slots__ = ("_coro", "_conn")
113
+
114
+ def __init__(self, coro: Coroutine[Any, Any, SnowflakeConnection]) -> None:
115
+ self._coro = coro
116
+ self._conn: SnowflakeConnection | None = None
117
+
118
+ def send(self, arg: Any) -> Any:
119
+ """Send a value into the wrapped coroutine."""
120
+ return self._coro.send(arg)
121
+
122
+ def throw(self, *args: Any, **kwargs: Any) -> Any:
123
+ """Throw an exception into the wrapped coroutine."""
124
+ return self._coro.throw(*args, **kwargs)
125
+
126
+ def close(self) -> None:
127
+ """Close the wrapped coroutine."""
128
+ return self._coro.close()
129
+
130
+ def __await__(self) -> Generator[Any, None, SnowflakeConnection]:
131
+ """Enable await connect(...)"""
132
+ return self._coro.__await__()
133
+
134
+ def __iter__(self) -> Generator[Any, None, SnowflakeConnection]:
135
+ """Make the wrapper iterable like a coroutine."""
136
+ return self.__await__()
137
+
138
+ # This approach requires idempotent __aenter__ of SnowflakeConnection class - so check if connected and do not repeat connecting
139
+ async def __aenter__(self) -> SnowflakeConnection:
140
+ """Enable async with connect(...) as conn:"""
141
+ self._conn = await self._coro
142
+ return await self._conn.__aenter__()
143
+
144
+ async def __aexit__(self, exc_type: Any, exc: Any, tb: Any) -> None:
145
+ """Exit async context manager."""
146
+ if self._conn is not None:
147
+ return await self._conn.__aexit__(exc_type, exc, tb)
148
+ else:
149
+ return None
150
+
151
+
152
+ @wraps(SnowflakeConnection.__init__)
153
+ def connect(**kwargs: Any) -> HybridCoroutineContextManager[SnowflakeConnection]:
154
+ """Create and connect to a Snowflake connection asynchronously.
155
+
156
+ Returns an awaitable that can also be used as an async context manager.
157
+ Supports both patterns:
158
+ - conn = await connect(...)
159
+ - async with connect(...) as conn:
160
+ """
161
+
162
+ async def _connect_coro() -> SnowflakeConnection:
163
+ conn = SnowflakeConnection(**kwargs)
164
+ await conn.connect()
165
+ return conn
166
+
167
+ return _AsyncConnectContextManager(_connect_coro())