snowflake-connector-python 5.1.0__tar.gz → 5.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 (715) hide show
  1. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/Cargo.lock +3 -2
  2. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/PKG-INFO +6 -4
  3. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/README.md +1 -1
  4. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/protoc_installer.rs +65 -42
  5. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/pyproject.toml +16 -9
  6. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/lib.rs +29 -0
  7. snowflake_connector_python-5.2.0/sf_core/CHANGELOG.md +5 -0
  8. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/Cargo.toml +13 -0
  9. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/a-cancellation-error-now-reports-what.md +5 -0
  10. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/a-statementexecuteasync-whose-submission-is-acce.md +5 -0
  11. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-connection-free-status-call.md +5 -0
  12. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-connection-is-usable-driver.md +5 -0
  13. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-cwd-statement-option-that.md +5 -0
  14. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-description-internal-property-on.md +5 -0
  15. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-driverproviders-injection-point-for.md +5 -0
  16. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-per-statement-cloud-request.md +5 -0
  17. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-proxy-scheme-connection-parameter.md +5 -0
  18. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-put-compress-level-connection.md +5 -0
  19. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-put-tempdir-connection-setting.md +5 -0
  20. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-python-platform-detection-timeout.md +5 -0
  21. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-python-source-distribution-install.md +5 -0
  22. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-secondary-roles-connection-parameter.md +5 -0
  23. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-shared-operation-cancellation-registry.md +5 -0
  24. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-stage-binding-disabled-telemetry.md +5 -0
  25. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-token-file-path-connection.md +5 -0
  26. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-validate-session-token-wrapper.md +5 -0
  27. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-a-wif-host-connection-parameter.md +5 -0
  28. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-an-extra-root-store-path.md +5 -0
  29. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-an-opt-in-fips-build.md +5 -0
  30. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-apierror-terminates-session-so-an.md +5 -0
  31. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-application-path-to-the-login.md +5 -0
  32. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-async-first-rpcs-an-rpc.md +5 -0
  33. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-asyncarrowbatchfetcher-from-batches-so-an.md +5 -0
  34. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-azure-blob-content-md5-on.md +5 -0
  35. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-client-crl-stats-on-the-connection.md +5 -0
  36. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-configurable-key-pair-jwt-lifetime.md +5 -0
  37. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-duo-push-continuation-for-username.md +5 -0
  38. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-file-level-parallelism-to-put.md +5 -0
  39. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-hot-swappable-file-logging-logmanager.md +5 -0
  40. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-impersonation-chain-support-to-the.md +5 -0
  41. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-is-fips-to-the-login.md +5 -0
  42. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-jdbc-aliases-wifhost-workloadidentityhost.md +5 -0
  43. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-native-aks-workload-identity-support.md +5 -0
  44. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-nested-column-metadata-for-structured.md +5 -0
  45. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-pat-with-external-session-authentication.md +5 -0
  46. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-proto-utils-cancellabletransport-and-the.md +5 -0
  47. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-result-set-get-async-stream.md +5 -0
  48. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-retryreason-to-retried-query-requests.md +5 -0
  49. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-rusttransport-database-driver-so-an.md +5 -0
  50. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-server-side-query-cancel-capture.md +5 -0
  51. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-service-name-header.md +5 -0
  52. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-session-token-expires-at-ms.md +5 -0
  53. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-snowflake-tls-ciphers.md +5 -0
  54. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-sql-script-splitter.md +5 -0
  55. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-support-for-snowflake-gcs-force.md +5 -0
  56. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-the-file-18-interval-year.md +5 -0
  57. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-the-map-type-code-17.md +5 -0
  58. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-warehouse-database-schema-and-role.md +5 -0
  59. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/added-workload-identity-azure-client-id.md +5 -0
  60. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/adopted-session-heartbeat-from-query-response.md +5 -0
  61. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/applied-an-omitted-use.md +5 -0
  62. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/arrow-result-chunks-are-decoded-without.md +5 -0
  63. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/cancellation-is-now-observed-inside-the.md +5 -0
  64. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-a-fips-build-to-reject.md +5 -0
  65. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-a-python-build-with-snowflake.md +5 -0
  66. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-aws-workload-identity-login-to-build.md +5 -0
  67. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-aws-workload-identity-region-discovery.md +5 -0
  68. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-client-store-temporary-credential-to.md +5 -0
  69. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-connect-timeout-to-default-to-60.md +5 -0
  70. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-connection-is-usable-to-report.md +5 -0
  71. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-custom-ca-revocation.md +5 -0
  72. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-fips-builds-to-reject-verify.md +5 -0
  73. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-login-to-omit-client-session.md +5 -0
  74. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-login-to-send-client-session.md +5 -0
  75. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-platform-detection-to-run-by.md +5 -0
  76. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-put-get-to-build-one.md +5 -0
  77. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-query-context-cache-support-in.md +5 -0
  78. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-retry-timeout-to-default-to-300.md +5 -0
  79. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-sessiontokens-session-id-to-option.md +5 -0
  80. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-storage-clients-to.md +5 -0
  81. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-the-crl-download.md +5 -0
  82. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-the-message-on-a-failed.md +5 -0
  83. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-the-platform-detection.md +5 -0
  84. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-the-python-connector-so-it.md +5 -0
  85. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-the-session-parameter-cache-to.md +5 -0
  86. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-tls-certificate-checks.md +5 -0
  87. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/changed-verified-connection-and-cloud-storage.md +5 -0
  88. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/connectiongetqueryresult-is-now-async-first-canc.md +5 -0
  89. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/connectiongetresultset-and-connectiongetquerysta.md +5 -0
  90. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/connectionrequesttoken-is-now-async-first-so.md +5 -0
  91. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/connectionsendhttp-is-now-async-first-the.md +5 -0
  92. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/ecdsa-key-pair-auth.md +5 -0
  93. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/expanded-leading-tilde-in-token-file-path.md +5 -0
  94. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/expanded-the-fips-smoke-lane-to.md +5 -0
  95. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-a-cancel-arriving-during-a.md +5 -0
  96. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-a-client-side-query-timeout.md +5 -0
  97. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-a-file-column-failing-to.md +5 -0
  98. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-a-get-from-a-stage.md +5 -0
  99. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-a-structured-map-column-raising.md +5 -0
  100. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-an-empty-account-value-skipping.md +5 -0
  101. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-an-issue-where-cached-oauth.md +5 -0
  102. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-azure-functions-missing-identity-header.md +5 -0
  103. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-azure-get-downloads-being-silently.md +5 -0
  104. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-cancelling-a-get-continuing-to.md +5 -0
  105. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-cancelling-a-put-abandoning-an.md +5 -0
  106. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-connection-diagnostics-snowflake-allowlist-hosts.md +5 -0
  107. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-connectionabortquery-silently-collapsing-g.md +5 -0
  108. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-describe-only-prepare-dropping-bind.md +5 -0
  109. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-detached-query-repost-on-session-refresh.md +5 -0
  110. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-file-operations-on-s3-external.md +5 -0
  111. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-gcs-azure-get-of-unloaded-cse-files.md +5 -0
  112. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-get-downloads-from-an-s3.md +5 -0
  113. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-get-of-a-client-side.md +5 -0
  114. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-get-of-unloaded-files-without-key-size.md +5 -0
  115. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-intermittent-key-pair-connect-failures.md +5 -0
  116. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-jdbc-i-o-errors-so.md +5 -0
  117. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-json-timestamp-cells-with-a.md +5 -0
  118. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-large-gcs-uploads-restarting-from.md +5 -0
  119. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-large-s3-uploads-restarting-from.md +5 -0
  120. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-native-okta-login-discarding-snowflake.md +5 -0
  121. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-oauth-refresh-token-being-evicted.md +5 -0
  122. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-pat-with-external-session-connections.md +5 -0
  123. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-python-alter-session-set-cache.md +5 -0
  124. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-python-cursor-description-reporting-geogra.md +5 -0
  125. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-python-cursor-executemany-so-it.md +5 -0
  126. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-python-cursor-request-id-to.md +5 -0
  127. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-reauthenticationrequest-missing-a-cause-at.md +5 -0
  128. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-session-renewal-after-refusal.md +5 -0
  129. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-sf-odbc-ini-discovery-treating.md +5 -0
  130. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-snowflake-connections-being-read-as.md +5 -0
  131. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-statement-execute-async-missing-a.md +5 -0
  132. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-statement-level-parameters-e-g.md +5 -0
  133. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-statement-level-timezone-overrides-so.md +5 -0
  134. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-statement-prepare-failing-with-server.md +5 -0
  135. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-string-private-key-to-accept.md +5 -0
  136. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-the-external-browser-callback-listener.md +5 -0
  137. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-the-file-based-token-cache.md +5 -0
  138. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-unload-and-partitioned-unload-so.md +5 -0
  139. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-windows-three-slash-file-uri-paths.md +5 -0
  140. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/fixed-workload-identity-federation-attestation-f.md +5 -0
  141. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/improved-configuration-errors-for-pat-with.md +5 -0
  142. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/improved-connection-setup-time-by-loading.md +5 -0
  143. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/improved-first-connection-latency-on-non.md +5 -0
  144. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/improved-gcs-put-throughput-by-streaming.md +5 -0
  145. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/improved-on-disk-crl-cache-file.md +5 -0
  146. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/kept-s3-batch-http-client-typed.md +5 -0
  147. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/keyed-telemetry-by-connection-handle-instead.md +5 -0
  148. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/keypair-jwt-login-retry.md +5 -0
  149. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/moved-crl-cache-and-background-refresh.md +5 -0
  150. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/narrowed-platform-detection-s.md +5 -0
  151. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/node-s-connection-now-owns-a.md +5 -0
  152. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/node-s-statement-cancel-now-cancels.md +5 -0
  153. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/operationctx-can-now-carry-cancellation-cleanup.md +5 -0
  154. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/pinned-fips-builds-to-aws-lc.md +5 -0
  155. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/pinned-h2-to-0-4-18.md +4 -0
  156. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/raised-the-default-multipart-block-size.md +5 -0
  157. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/removed-ocsp-mode-from-the-login.md +5 -0
  158. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/removed-the-synchronous-default.md +5 -0
  159. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/replaced-the-boolean-token-matches-that.md +5 -0
  160. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/replaced-the-per-statement-in-flight.md +5 -0
  161. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/replaced-the-three-rarely-varied-trailing.md +5 -0
  162. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/response-body-reads-for-the-oauth.md +5 -0
  163. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/restored-isa-host-cpu-architecture-and.md +5 -0
  164. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/restored-the-workload-identity-aws-use.md +5 -0
  165. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/restricted-the-workload-identity-authenticator-t.md +5 -0
  166. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/routed-first-party-sha-256-hashing.md +5 -0
  167. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/scoped-getobjects-metadata-show.md +5 -0
  168. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/standardized-the-opt-in-build-feature.md +5 -0
  169. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/statementexecuteasync-is-now-async-first-cancell.md +5 -0
  170. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/statementexecutequery-is-now-async-first-cancell.md +5 -0
  171. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/statementprepare-is-now-async-first-as.md +5 -0
  172. snowflake_connector_python-5.2.0/sf_core/changelog/unreleased/wifcreateattestation-is-now-async-first-so.md +5 -0
  173. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/connection.rs +468 -144
  174. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/database.rs +1 -1
  175. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/get_objects.rs +387 -86
  176. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/global_state.rs +1 -1
  177. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/heartbeat.rs +18 -25
  178. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/logout.rs +3 -3
  179. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/query.rs +2 -1
  180. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/query_submit.rs +54 -19
  181. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/result_set.rs +85 -8
  182. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/statement.rs +7 -2
  183. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/stream_transfer.rs +147 -7
  184. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/arrow_utils.rs +5 -0
  185. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/auth.rs +203 -119
  186. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/bin/collect_chunk_data.rs +3 -1
  187. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/bin/tls_client.rs +1 -1
  188. snowflake_connector_python-5.2.0/sf_core/src/chunks/arrow_parser.rs +127 -0
  189. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/chunks/error.rs +7 -0
  190. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/chunks/mod.rs +206 -16
  191. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/connection_config.rs +205 -7
  192. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/private_key.rs +28 -3
  193. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/resolver.rs +192 -15
  194. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/rest_parameters.rs +76 -0
  195. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/retry.rs +39 -11
  196. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/token.rs +42 -5
  197. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/cache.rs +436 -16
  198. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/integration_test.rs +4 -4
  199. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/manager.rs +75 -0
  200. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/mod.rs +2 -1
  201. snowflake_connector_python-5.2.0/sf_core/src/crl/stats_buffer.rs +309 -0
  202. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/validator.rs +11 -0
  203. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crypto/private_key.rs +428 -69
  204. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/diagnostic/mod.rs +84 -6
  205. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/env_vars.rs +16 -0
  206. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/azure_transfer.rs +13 -22
  207. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/cloud_http.rs +28 -31
  208. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/gcs_transfer.rs +20 -18
  209. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/mod.rs +67 -25
  210. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/path_expansion.rs +57 -0
  211. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/s3_transfer.rs +13 -13
  212. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/types.rs +25 -14
  213. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/lib.rs +1 -0
  214. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/protobuf/apis/database_driver_v1/converter.rs +3 -8
  215. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/protobuf/apis/database_driver_v1/mod.rs +12 -1
  216. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/async_exec.rs +18 -13
  217. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/external_browser.rs +118 -19
  218. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/heartbeat.rs +1 -0
  219. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/mod.rs +554 -176
  220. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/native_okta.rs +154 -0
  221. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/authorization_code.rs +258 -32
  222. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/client_credentials.rs +6 -3
  223. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/query_response.rs +36 -0
  224. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/telemetry.rs +1 -0
  225. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/workload_identity/aws.rs +1 -1
  226. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/workload_identity/azure.rs +110 -18
  227. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/workload_identity/mod.rs +51 -8
  228. snowflake_connector_python-5.2.0/sf_core/src/sql_script.rs +742 -0
  229. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/stage_binding.rs +2 -2
  230. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/session_batch.rs +7 -0
  231. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/session_telemetry.rs +14 -0
  232. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/aws_http_client.rs +14 -40
  233. snowflake_connector_python-5.2.0/sf_core/src/tls/cipher_policy.rs +489 -0
  234. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/client.rs +260 -83
  235. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/config.rs +0 -8
  236. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/crl_verifier.rs +9 -10
  237. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/error.rs +7 -0
  238. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/mod.rs +1 -0
  239. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/config.rs +23 -0
  240. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/auth.rs +22 -0
  241. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/oauth.rs +21 -5
  242. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/okta.rs +1 -1
  243. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/private_key_helper.rs +4 -0
  244. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/snowflake_test_client.rs +11 -0
  245. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/xp_backend/fixtures.rs +1 -0
  246. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_params_spec/src/lib.rs +62 -4
  247. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_params_spec/tests/odbc_legacy_compatibility.rs +2 -2
  248. snowflake_connector_python-5.2.0/src/snowflake/connector/_internal/_private_key_helper.py +31 -0
  249. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/connection/connection.py +33 -35
  250. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/connection_config_mixin.py +10 -2
  251. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/cursor/base.py +21 -8
  252. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/errorhandler.py +2 -2
  253. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp +189 -184
  254. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +5 -0
  255. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.cpp +13 -2
  256. snowflake_connector_python-5.2.0/src/snowflake/connector/_internal/text_utils.py +112 -0
  257. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/write_pandas_operation.py +31 -3
  258. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/connection/_connection.py +31 -3
  259. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/cursor/_base.py +42 -29
  260. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/cursor/_dict_cursor.py +20 -0
  261. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/cursor/_snowflake_cursor.py +20 -0
  262. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/pandas_tools.py +3 -2
  263. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/connection/_connection.py +31 -3
  264. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/connection_config.py +13 -5
  265. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/cursor/_base.py +42 -29
  266. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/cursor/_dict_cursor.py +20 -0
  267. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/cursor/_snowflake_cursor.py +20 -0
  268. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/errors.py +45 -25
  269. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/version.py +1 -1
  270. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/tests/README.md +2 -0
  271. snowflake_connector_python-5.1.0/sf_core/CHANGELOG.md +0 -164
  272. snowflake_connector_python-5.1.0/sf_core/src/chunks/arrow_parser.rs +0 -24
  273. snowflake_connector_python-5.1.0/src/snowflake/connector/_internal/_private_key_helper.py +0 -50
  274. snowflake_connector_python-5.1.0/src/snowflake/connector/_internal/text_utils.py +0 -283
  275. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/.gitignore +0 -0
  276. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/Cargo.toml +0 -0
  277. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/build_common.rs +0 -0
  278. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/ci/anaconda/recipe/README.md +0 -0
  279. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/error_trace/Cargo.toml +0 -0
  280. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/error_trace/src/lib.rs +0 -0
  281. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/error_trace_derive/Cargo.toml +0 -0
  282. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/error_trace_derive/src/lib.rs +0 -0
  283. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/hatch_build.py +0 -0
  284. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/Cargo.lock +0 -0
  285. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/Cargo.toml +0 -0
  286. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/README.md +0 -0
  287. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/generator.rs +0 -0
  288. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/generators/csharp_generator.rs +0 -0
  289. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/generators/helpers.rs +0 -0
  290. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/generators/java_generator.rs +0 -0
  291. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/generators/json_generator.rs +0 -0
  292. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/generators/mod.rs +0 -0
  293. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/generators/python_generator.rs +0 -0
  294. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/generators/rust_generator.rs +0 -0
  295. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/lib.rs +0 -0
  296. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/main.rs +0 -0
  297. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_generator/src/protobuf.rs +0 -0
  298. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_utils/Cargo.toml +0 -0
  299. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/proto_utils/src/lib.rs +0 -0
  300. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/protobuf/database_driver_v1.proto +0 -0
  301. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/Cargo.toml +0 -0
  302. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/build.rs +0 -0
  303. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/async_iterator.rs +0 -0
  304. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/batch_converter.rs +0 -0
  305. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/binary.rs +0 -0
  306. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/boolean.rs +0 -0
  307. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/context.rs +0 -0
  308. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/date.rs +0 -0
  309. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/decfloat.rs +0 -0
  310. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/decode.rs +0 -0
  311. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/interval.rs +0 -0
  312. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/map.rs +0 -0
  313. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/mod.rs +0 -0
  314. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/number.rs +0 -0
  315. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/numpy.rs +0 -0
  316. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/real.rs +0 -0
  317. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/test_util.rs +0 -0
  318. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/text.rs +0 -0
  319. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/time.rs +0 -0
  320. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/timestamp_ltz.rs +0 -0
  321. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/timestamp_ntz.rs +0 -0
  322. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/timestamp_tz.rs +0 -0
  323. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/timezone.rs +0 -0
  324. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/util.rs +0 -0
  325. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/converters/vector.rs +0 -0
  326. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/error.rs +0 -0
  327. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/iterator.rs +0 -0
  328. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/mod.rs +0 -0
  329. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/plan.rs +0 -0
  330. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/scaled_f64.rs +0 -0
  331. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/stream.rs +0 -0
  332. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/fixed.rs +0 -0
  333. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/int_values.rs +0 -0
  334. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/interval.rs +0 -0
  335. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/mod.rs +0 -0
  336. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/tests.rs +0 -0
  337. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/time.rs +0 -0
  338. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/timestamp/mod.rs +0 -0
  339. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/timestamp/scale.rs +0 -0
  340. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/timestamp/tz.rs +0 -0
  341. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table/utils.rs +0 -0
  342. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/table_iterator.rs +0 -0
  343. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/src/arrow/test_support.rs +0 -0
  344. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/stub_gen/Cargo.toml +0 -0
  345. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/python_bridge/stub_gen/src/main.rs +0 -0
  346. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/rust-toolchain.toml +0 -0
  347. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/README.md +0 -0
  348. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/benches/prefetch_bench.rs +0 -0
  349. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/build.rs +0 -0
  350. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/cbindgen-xp-providers.toml +0 -0
  351. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/exports.def +0 -0
  352. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/include/sf_core_providers.h +0 -0
  353. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/alter_session_parser.rs +0 -0
  354. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/async_query_registry.rs +0 -0
  355. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/error.rs +0 -0
  356. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/error_kind.rs +0 -0
  357. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/final_session_names.rs +0 -0
  358. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/like_pattern.rs +0 -0
  359. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/mod.rs +0 -0
  360. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/multistatement.rs +0 -0
  361. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/spcs_token.rs +0 -0
  362. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/database_driver_v1/validation.rs +0 -0
  363. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/mod.rs +0 -0
  364. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/apis/operation_ctx.rs +0 -0
  365. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/bin/README.md +0 -0
  366. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/bin/spcs_probe.rs +0 -0
  367. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/c_api.rs +0 -0
  368. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/chunks/async_arrow_batch_fetcher.rs +0 -0
  369. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/chunks/http_downloader.rs +0 -0
  370. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/chunks/json_parser.rs +0 -0
  371. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/chunks/memory_budget.rs +0 -0
  372. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/chunks/mock.rs +0 -0
  373. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/chunks/prefetch.rs +0 -0
  374. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/compression.rs +0 -0
  375. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/compression_types.rs +0 -0
  376. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/config_manager.rs +0 -0
  377. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/configured_redirect_uri.rs +0 -0
  378. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/error_context.rs +0 -0
  379. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/ini_loader.rs +0 -0
  380. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/logging_config_loader.rs +0 -0
  381. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/logout.rs +0 -0
  382. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/mod.rs +0 -0
  383. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/param_registry.rs +0 -0
  384. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/param_store.rs +0 -0
  385. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/path_resolver.rs +0 -0
  386. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/settings.rs +0 -0
  387. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/config/toml_loader.rs +0 -0
  388. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/certificate_parser.rs +0 -0
  389. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/config.rs +0 -0
  390. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/disk_tests.rs +0 -0
  391. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/error.rs +0 -0
  392. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crl/worker.rs +0 -0
  393. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/crypto/mod.rs +0 -0
  394. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/encryption.rs +0 -0
  395. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/multipart.rs +0 -0
  396. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/scheduler.rs +0 -0
  397. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/file_manager/spool.rs +0 -0
  398. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/fs_adapter.rs +0 -0
  399. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/fs_lock.rs +0 -0
  400. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/handle_manager.rs +0 -0
  401. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/http/mod.rs +0 -0
  402. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/http/retry.rs +0 -0
  403. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/logging/c_api.rs +0 -0
  404. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/logging/callback_layer.rs +0 -0
  405. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/logging/error.rs +0 -0
  406. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/logging/log_manager.rs +0 -0
  407. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/logging/mod.rs +0 -0
  408. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/logging/opentelemetry.rs +0 -0
  409. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/perf_timing/c_api.rs +0 -0
  410. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/perf_timing/mod.rs +0 -0
  411. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/protobuf/apis/mod.rs +0 -0
  412. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/protobuf/c_api.rs +0 -0
  413. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/protobuf/config_setting_ext.rs +0 -0
  414. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/protobuf/generated.rs +0 -0
  415. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/protobuf/mod.rs +0 -0
  416. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/query_types/mod.rs +0 -0
  417. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/query_types/row_type.rs +0 -0
  418. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/query_types/statement_type.rs +0 -0
  419. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/refresh.rs +0 -0
  420. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/mod.rs +0 -0
  421. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/auth.rs +0 -0
  422. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/browser.rs +0 -0
  423. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/error_context.rs +0 -0
  424. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/logout.rs +0 -0
  425. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/dpop.rs +0 -0
  426. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/error.rs +0 -0
  427. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/http_client.rs +0 -0
  428. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/loopback_server.rs +0 -0
  429. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/mod.rs +0 -0
  430. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/pkce.rs +0 -0
  431. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/random.rs +0 -0
  432. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/oauth/token.rs +0 -0
  433. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/prompt_lock.rs +0 -0
  434. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/query_context_cache.rs +0 -0
  435. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/query_request.rs +0 -0
  436. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/sql_state.rs +0 -0
  437. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/workload_identity/gcp.rs +0 -0
  438. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/workload_identity/host_allowlist.rs +0 -0
  439. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/rest/snowflake/workload_identity/oidc.rs +0 -0
  440. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/sensitive.rs +0 -0
  441. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/environment.rs +0 -0
  442. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/mod.rs +0 -0
  443. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/os_details.rs +0 -0
  444. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/platform_detection/aws.rs +0 -0
  445. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/platform_detection/azure.rs +0 -0
  446. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/platform_detection/gcp.rs +0 -0
  447. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/platform_detection/mod.rs +0 -0
  448. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/platform_detection/tests.rs +0 -0
  449. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/serialization.rs +0 -0
  450. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/snowflake_exporter.rs +0 -0
  451. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/snowflake_processor.rs +0 -0
  452. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/telemetry/types.rs +0 -0
  453. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/crypto_module.rs +0 -0
  454. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/revocation.rs +0 -0
  455. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/test_helpers.rs +0 -0
  456. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/tls/x509_utils.rs +0 -0
  457. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/token_cache/file_cache.rs +0 -0
  458. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/token_cache/keyring_cache.rs +0 -0
  459. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/token_cache/mod.rs +0 -0
  460. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/utils/mod.rs +0 -0
  461. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/utils/sync.rs +0 -0
  462. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/xp_backend/connection_settings.rs +0 -0
  463. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/xp_backend/ffi.rs +0 -0
  464. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/xp_backend/mod.rs +0 -0
  465. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/xp_backend/registry.rs +0 -0
  466. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/src/xp_backend/response_compat.rs +0 -0
  467. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/arrow_deserialize.rs +0 -0
  468. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/arrow_deserialize_macro/Cargo.toml +0 -0
  469. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/arrow_deserialize_macro/src/lib.rs +0 -0
  470. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/arrow_extract_value.rs +0 -0
  471. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/arrow_result_helper.rs +0 -0
  472. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/browser_opener.rs +0 -0
  473. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/cloud_gating.rs +0 -0
  474. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/connect_proxy.rs +0 -0
  475. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/counting_proxy.rs +0 -0
  476. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/crypto_provider.rs +0 -0
  477. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/dead_proxy.rs +0 -0
  478. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/file_utils.rs +0 -0
  479. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mitm_port_detector.py +0 -0
  480. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mitm_proxy.rs +0 -0
  481. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/external_browser.rs +0 -0
  482. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/mfa.rs +0 -0
  483. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/mod.rs +0 -0
  484. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/password.rs +0 -0
  485. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/put_get.rs +0 -0
  486. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/query.rs +0 -0
  487. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mocks/session.rs +0 -0
  488. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/mod.rs +0 -0
  489. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/put_get_common.rs +0 -0
  490. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/test_server.rs +0 -0
  491. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/test_utils.rs +0 -0
  492. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/common/tls_proxy.rs +0 -0
  493. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/xp_backend/fake_host.rs +0 -0
  494. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/tests/xp_backend/link_sf_core.rs +0 -0
  495. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/Cargo.lock +0 -0
  496. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/Cargo.toml +0 -0
  497. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/LICENSE +0 -0
  498. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/README.md +0 -0
  499. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/alg_tests.rs +0 -0
  500. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/aws_lc_rs_algs.rs +0 -0
  501. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/cert.rs +0 -0
  502. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/crl/mod.rs +0 -0
  503. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/crl/types.rs +0 -0
  504. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/alg-rsa-pkcs1-sha256-absent-params.der +0 -0
  505. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/alg-rsa-pkcs1-sha384-absent-params.der +0 -0
  506. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/alg-rsa-pkcs1-sha512-absent-params.der +0 -0
  507. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/distrusted/EMDVTLSCAG3B.spki.der +0 -0
  508. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/distrusted/EMDVTLSCAG3C.spki.der +0 -0
  509. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/distrusted/EMEVTLSCAG3B.spki.der +0 -0
  510. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/distrusted/EMEVTLSCAG3C.spki.der +0 -0
  511. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/distrusted/EMOVCSCAG3B.spki.der +0 -0
  512. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/distrusted/EMOVCSCAG3C.spki.der +0 -0
  513. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/distrusted/EMOVTLSCAG3B.spki.der +0 -0
  514. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/data/distrusted/EMOVTLSCAG3C.spki.der +0 -0
  515. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/der.rs +0 -0
  516. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/end_entity.rs +0 -0
  517. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/error.rs +0 -0
  518. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/lib.rs +0 -0
  519. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/ring_algs.rs +0 -0
  520. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/rpk_entity.rs +0 -0
  521. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/signed_data.rs +0 -0
  522. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/subject_name/dns_name.rs +0 -0
  523. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/subject_name/ip_address.rs +0 -0
  524. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/subject_name/mod.rs +0 -0
  525. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/test_utils.rs +0 -0
  526. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/time.rs +0 -0
  527. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/trust_anchor.rs +0 -0
  528. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/verify_cert.rs +0 -0
  529. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_core/third_party/rustls-webpki/src/x509.rs +0 -0
  530. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_params_spec/Cargo.toml +0 -0
  531. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/Cargo.toml +0 -0
  532. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/binary.rs +0 -0
  533. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/boolean.rs +0 -0
  534. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/civil.rs +0 -0
  535. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/clock.rs +0 -0
  536. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/date.rs +0 -0
  537. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/decfloat.rs +0 -0
  538. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/error.rs +0 -0
  539. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/fixed.rs +0 -0
  540. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/interval.rs +0 -0
  541. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/lib.rs +0 -0
  542. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/nullable.rs +0 -0
  543. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/real.rs +0 -0
  544. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/text.rs +0 -0
  545. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/time.rs +0 -0
  546. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/timestamp.rs +0 -0
  547. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/traits.rs +0 -0
  548. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/sf_types/src/vector.rs +0 -0
  549. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/__init__.py +0 -0
  550. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_common/__init__.py +0 -0
  551. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_common/extras.py +0 -0
  552. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_common/telemetry.py +0 -0
  553. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_common/wif_util.py +0 -0
  554. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/__init__.py +0 -0
  555. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/api_client/__init__.py +0 -0
  556. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/api_client/bridge.py +0 -0
  557. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/api_client/client_api.py +0 -0
  558. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/arrow.py +0 -0
  559. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/arrow_context.py +0 -0
  560. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/arrow_stream_async.py +0 -0
  561. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/arrow_stream_iterator.pyi +0 -0
  562. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/arrow_stream_utils.py +0 -0
  563. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/authenticator_type.py +0 -0
  564. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/backward_compatibility.py +0 -0
  565. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/binding_converters.py +0 -0
  566. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/config_utils.py +0 -0
  567. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/connection/__init__.py +0 -0
  568. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/connection/connection_types.py +0 -0
  569. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/connection/constants.py +0 -0
  570. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/connection/decorators.py +0 -0
  571. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/connection/freezable_proxy.py +0 -0
  572. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/connection/queries.py +0 -0
  573. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/cursor/__init__.py +0 -0
  574. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/cursor/cursor_types.py +0 -0
  575. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/cursor/decorators.py +0 -0
  576. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/cursor/query_result.py +0 -0
  577. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/cursor/query_result_waiter.py +0 -0
  578. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/cursor/result_metadata.py +0 -0
  579. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/cursor/result_set_wrapper.py +0 -0
  580. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/decorators.py +0 -0
  581. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/error_kinds.py +0 -0
  582. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/errorcode.py +0 -0
  583. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/fips.py +0 -0
  584. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/logging/__init__.py +0 -0
  585. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/logging/config.py +0 -0
  586. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/logging/core_logger.py +0 -0
  587. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/logging/native_extension_logger.py +0 -0
  588. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/logout_config_mapping.py +0 -0
  589. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
  590. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
  591. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.cpp +0 -0
  592. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.hpp +0 -0
  593. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
  594. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
  595. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
  596. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
  597. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
  598. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
  599. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.cpp +0 -0
  600. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.hpp +0 -0
  601. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.cpp +0 -0
  602. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.hpp +0 -0
  603. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.cpp +0 -0
  604. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.hpp +0 -0
  605. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -0
  606. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
  607. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +0 -0
  608. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +0 -0
  609. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -0
  610. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
  611. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -0
  612. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
  613. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
  614. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
  615. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
  616. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
  617. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
  618. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.cpp +0 -0
  619. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.hpp +0 -0
  620. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
  621. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -0
  622. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
  623. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
  624. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
  625. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
  626. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -0
  627. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
  628. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
  629. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
  630. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
  631. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
  632. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
  633. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -0
  634. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
  635. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
  636. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
  637. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
  638. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
  639. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
  640. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.pyx +0 -0
  641. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
  642. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
  643. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
  644. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
  645. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
  646. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
  647. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
  648. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
  649. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
  650. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
  651. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
  652. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
  653. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
  654. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
  655. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
  656. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
  657. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
  658. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
  659. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
  660. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
  661. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
  662. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
  663. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
  664. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
  665. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
  666. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
  667. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
  668. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
  669. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
  670. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
  671. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
  672. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
  673. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
  674. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
  675. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
  676. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
  677. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
  678. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
  679. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.hpp +0 -0
  680. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/protobuf_gen/__init__.py +0 -0
  681. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +0 -0
  682. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.pyi +0 -0
  683. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_services.py +0 -0
  684. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/protobuf_gen/proto_exception.py +0 -0
  685. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/result_batch.py +0 -0
  686. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/snowflake_restful.py +0 -0
  687. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/snowpark_backcompat_helpers.py +0 -0
  688. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/sqlstate.py +0 -0
  689. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/statement_utils.py +0 -0
  690. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/type_codes.py +0 -0
  691. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/_internal/utils.py +0 -0
  692. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/README.md +0 -0
  693. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/__init__.py +0 -0
  694. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/connection/__init__.py +0 -0
  695. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/cursor/__init__.py +0 -0
  696. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/cursor/_result_set_wrapper.py +0 -0
  697. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/aio/result_batch.py +0 -0
  698. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/auth/__init__.py +0 -0
  699. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/auth/workload_identity.py +0 -0
  700. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/compat.py +0 -0
  701. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/config_manager.py +0 -0
  702. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/connection/__init__.py +0 -0
  703. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/constants.py +0 -0
  704. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/cursor/__init__.py +0 -0
  705. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/cursor/_chunked_download_reader.py +0 -0
  706. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/cursor/_result_set_wrapper.py +0 -0
  707. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/description.py +0 -0
  708. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/network.py +0 -0
  709. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/pandas_tools.py +0 -0
  710. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/py.typed +0 -0
  711. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/result_batch.py +0 -0
  712. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/telemetry.py +0 -0
  713. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/time_util.py +0 -0
  714. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/types.py +0 -0
  715. {snowflake_connector_python-5.1.0 → snowflake_connector_python-5.2.0}/src/snowflake/connector/util_text.py +0 -0
@@ -1980,9 +1980,9 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
1980
1980
 
1981
1981
  [[package]]
1982
1982
  name = "h2"
1983
- version = "0.4.12"
1983
+ version = "0.4.18"
1984
1984
  source = "registry+https://github.com/rust-lang/crates.io-index"
1985
- checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386"
1985
+ checksum = "839c0e8a181239723652be9062bb56ca5bf5f64011f73b623f6f4fc59086a228"
1986
1986
  dependencies = [
1987
1987
  "atomic-waker",
1988
1988
  "bytes",
@@ -4441,6 +4441,7 @@ dependencies = [
4441
4441
  "fs2",
4442
4442
  "futures",
4443
4443
  "glob",
4444
+ "h2",
4444
4445
  "hex",
4445
4446
  "html-escape",
4446
4447
  "http 1.3.1",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: snowflake-connector-python
3
- Version: 5.1.0
3
+ Version: 5.2.0
4
4
  Summary: Snowflake DB driver for Python
5
5
  Project-URL: Homepage, https://github.com/snowflakedb/drivers
6
6
  Project-URL: Bug Reports, https://github.com/snowflakedb/drivers/issues
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
17
  Classifier: Programming Language :: Python :: 3.13
18
18
  Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Programming Language :: Python :: 3.15
19
20
  Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
20
21
  Classifier: Topic :: Database
21
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
@@ -32,8 +33,9 @@ Requires-Dist: ruff; extra == 'dev'
32
33
  Requires-Dist: types-protobuf; extra == 'dev'
33
34
  Requires-Dist: types-pytz; extra == 'dev'
34
35
  Provides-Extra: pandas
35
- Requires-Dist: pandas<3.0.0,>=1.0.0; (python_version < '3.13') and extra == 'pandas'
36
- Requires-Dist: pandas<3.0.0,>=2.1.2; (python_version >= '3.13') and extra == 'pandas'
36
+ Requires-Dist: pandas>=1.0.0; (python_version < '3.13') and extra == 'pandas'
37
+ Requires-Dist: pandas>=2.1.2; (python_version >= '3.13' and python_version < '3.15') and extra == 'pandas'
38
+ Requires-Dist: pandas>=3.0.0; (python_version >= '3.15') and extra == 'pandas'
37
39
  Requires-Dist: pyarrow>=14.0.1; extra == 'pandas'
38
40
  Provides-Extra: pyarrow
39
41
  Requires-Dist: pyarrow>=14.0.1; extra == 'pyarrow'
@@ -113,7 +115,7 @@ The `dev` environment is designed for **human developers** during active develop
113
115
  - Installs from sources (`skip-install = false`)
114
116
  - Editable mode enabled (`dev-mode = true`)
115
117
  - Changes to source code are immediately available
116
- - Supports Python matrix: 3.11, 3.12, 3.13, 3.14
118
+ - Supports Python matrix: 3.11, 3.12, 3.13, 3.14, 3.15, 3.15t
117
119
 
118
120
  **Usage:**
119
121
  ```bash
@@ -54,7 +54,7 @@ The `dev` environment is designed for **human developers** during active develop
54
54
  - Installs from sources (`skip-install = false`)
55
55
  - Editable mode enabled (`dev-mode = true`)
56
56
  - Changes to source code are immediately available
57
- - Supports Python matrix: 3.11, 3.12, 3.13, 3.14
57
+ - Supports Python matrix: 3.11, 3.12, 3.13, 3.14, 3.15, 3.15t
58
58
 
59
59
  **Usage:**
60
60
  ```bash
@@ -76,34 +76,24 @@ fn download_and_install(dest: &Path) {
76
76
  std::fs::create_dir_all(dest).expect("Failed to create protoc cache directory");
77
77
  let zip_path = dest.join("protoc.zip");
78
78
 
79
- // Two layers of retry guard the build against transient GitHub Releases failures
80
- // (recurring HTTP 5xx, slow connect, partial download):
79
+ // Two layers of retry guard the build against transient GitHub Releases
80
+ // failures (HTTP 5xx, 403 under `--fail`, slow connect, partial download):
81
81
  //
82
- // 1. `curl --retry 5` already covers the failure mode we actually see —
83
- // curl's documented default treats HTTP 408/429/500/502/503/504 as
84
- // transient and retries them with its own backoff, so a 504 from
85
- // releases.githubusercontent.com is absorbed inside a single curl
86
- // invocation without any extra flags. We intentionally do NOT pass
87
- // `--retry-all-errors` (added in curl 7.71): the manylinux build
88
- // container ships an older curl that hard-errors on unknown options
89
- // (exit 2), which would push every attempt into the outer loop and
90
- // effectively disable retries. Sticking to flags supported back to
91
- // ~7.52 (`--retry`, `--retry-delay`, `--retry-max-time`, plus the
92
- // connect/total timeouts) keeps every CI runner (macOS-15, ubuntu-24,
93
- // Windows-2022, manylinux_2_*) on the same code path.
82
+ // 1. `curl --retry 5` covers curl's default retry set (408/429/5xx).
83
+ // SNOW-4350375: a GitHub Releases 403 exits 22 under `--fail` and is
84
+ // not in that set. `--retry-all-errors` (curl >= 7.71) covers it.
85
+ // manylinux's older curl hard-errors on unknown options (exit 2), so
86
+ // the flag is passed only when `curl --version` reports >= 7.71.
94
87
  //
95
- // 2. An outer exponential-backoff loop (1s → 2s → 4s → 8s, 5 attempts total)
96
- // catches the failures curl's own retry doesn't: partial downloads that
97
- // leave a corrupt zip on disk, transient DNS/SSL handshake errors that
98
- // curl exits on without retrying, and any future failure class we
99
- // haven't enumerated. Each outer attempt starts by deleting the
100
- // previous zip so extract_zip never sees a half-written file.
101
- //
102
- // Total worst-case stall ≈ 1+2+4+8 = 15s of outer backoff plus curl's
103
- // internal retry budget (capped by --retry-max-time at 120s) — well under
104
- // any CI job budget, and far cheaper than rerunning the whole release
105
- // pipeline on a 504.
88
+ // 2. An outer exponential-backoff loop (1s → 2s → 4s → 8s, 5 attempts)
89
+ // catches partial downloads, DNS/SSL handshake errors, and 403s that
90
+ // still exhaust curl's inner retry. Each outer attempt deletes the
91
+ // previous zip so extract_zip never sees a half-written file. On
92
+ // failure, response headers are printed so a rate-limit (or not) is
93
+ // visible in the log.
106
94
  const MAX_ATTEMPTS: u32 = 5;
95
+ let retry_all_errors = curl_version_at_least_7_71();
96
+ let headers_path = dest.join("curl-headers.txt");
107
97
  let mut last_status = None;
108
98
  for attempt in 1..=MAX_ATTEMPTS {
109
99
  eprintln!(
@@ -113,23 +103,30 @@ fn download_and_install(dest: &Path) {
113
103
  // Best-effort cleanup of any partial download from the previous attempt.
114
104
  // A corrupt zip would otherwise survive into extract_zip() and fail there.
115
105
  let _ = std::fs::remove_file(&zip_path);
116
-
117
- let status = std::process::Command::new("curl")
118
- .args([
119
- "-sSL",
120
- "--fail",
121
- "--retry",
122
- "5",
123
- "--retry-delay",
124
- "2",
125
- "--retry-max-time",
126
- "120",
127
- "--connect-timeout",
128
- "30",
129
- "--max-time",
130
- "300",
131
- "-o",
132
- ])
106
+ let _ = std::fs::remove_file(&headers_path);
107
+
108
+ let mut curl = std::process::Command::new("curl");
109
+ curl.args([
110
+ "-sSL",
111
+ "--fail",
112
+ "--retry",
113
+ "5",
114
+ "--retry-delay",
115
+ "2",
116
+ "--retry-max-time",
117
+ "120",
118
+ "--connect-timeout",
119
+ "30",
120
+ "--max-time",
121
+ "300",
122
+ "-D",
123
+ ]);
124
+ curl.arg(&headers_path);
125
+ if retry_all_errors {
126
+ curl.arg("--retry-all-errors");
127
+ }
128
+ let status = curl
129
+ .arg("-o")
133
130
  .arg(&zip_path)
134
131
  .arg(&url)
135
132
  .status()
@@ -140,6 +137,9 @@ fn download_and_install(dest: &Path) {
140
137
  break;
141
138
  }
142
139
  last_status = Some(status);
140
+ if let Ok(headers) = std::fs::read_to_string(&headers_path) {
141
+ eprintln!("curl response headers:\n{headers}");
142
+ }
143
143
 
144
144
  if attempt < MAX_ATTEMPTS {
145
145
  let backoff_ms = 1_000u64 * (1u64 << (attempt - 1));
@@ -171,9 +171,32 @@ fn download_and_install(dest: &Path) {
171
171
  }
172
172
 
173
173
  let _ = std::fs::remove_file(&zip_path);
174
+ let _ = std::fs::remove_file(&headers_path);
174
175
  eprintln!("protoc v{PROTOC_VERSION} installed to {}", dest.display());
175
176
  }
176
177
 
178
+ fn curl_version_at_least_7_71() -> bool {
179
+ // `curl --help` on 8.x is a short summary and does not list
180
+ // `--retry-all-errors`. `curl --version` is stable on old and new curl.
181
+ let output = std::process::Command::new("curl").arg("--version").output();
182
+ let Ok(output) = output else {
183
+ return false;
184
+ };
185
+ let stdout = String::from_utf8_lossy(&output.stdout);
186
+ // First line: `curl 8.5.0 (x86_64-pc-linux-gnu) ...`
187
+ let Some(version) = stdout.split_whitespace().nth(1) else {
188
+ return false;
189
+ };
190
+ let mut parts = version.split('.');
191
+ let Ok(major) = parts.next().unwrap_or("").parse::<u32>() else {
192
+ return false;
193
+ };
194
+ let Ok(minor) = parts.next().unwrap_or("0").parse::<u32>() else {
195
+ return false;
196
+ };
197
+ major > 7 || (major == 7 && minor >= 71)
198
+ }
199
+
177
200
  #[cfg(unix)]
178
201
  fn extract_zip(zip_path: &Path, dest: &Path) {
179
202
  let status = std::process::Command::new("unzip")
@@ -20,6 +20,7 @@ classifiers = [
20
20
  "Programming Language :: Python :: 3.12",
21
21
  "Programming Language :: Python :: 3.13",
22
22
  "Programming Language :: Python :: 3.14",
23
+ "Programming Language :: Python :: 3.15",
23
24
  "Programming Language :: Python :: Free Threading :: 2 - Beta",
24
25
  ]
25
26
  requires-python = ">=3.11"
@@ -47,8 +48,9 @@ pyarrow = [
47
48
  ]
48
49
  pandas = [
49
50
  "pyarrow>=14.0.1",
50
- "pandas>=1.0.0,<3.0.0; python_version < '3.13'",
51
- "pandas>=2.1.2,<3.0.0; python_version >= '3.13'",
51
+ "pandas>=1.0.0; python_version < '3.13'",
52
+ "pandas>=2.1.2; python_version >= '3.13' and python_version < '3.15'",
53
+ "pandas>=3.0.0; python_version >= '3.15'",
52
54
  ]
53
55
  test = [
54
56
  "pytest>=8",
@@ -78,6 +80,10 @@ dev = [
78
80
  "types-protobuf",
79
81
  ]
80
82
 
83
+ # 0.13.4 removes the compromised eMudhra root. 0.13.5 also rejects those intermediate keys.
84
+ [tool.uv]
85
+ required-version = ">=0.13.5"
86
+
81
87
  [tool.hatch.version]
82
88
  path = "src/snowflake/connector/version.py"
83
89
 
@@ -162,7 +168,8 @@ addopts = [
162
168
  "-p", "pytest_junit_retry_plugin",
163
169
  # Flaky tests are excluded by default; the python_flaky_tests CI job
164
170
  # overrides this with `-m flaky` to run them in isolation.
165
- "-m", "not flaky and not requires_no_mfa",
171
+ # Slow tests are on demand (`-m slow`). Packaging overrides this filter.
172
+ "-m", "not flaky and not requires_no_mfa and not slow",
166
173
  ]
167
174
  # Default timeout for tests (2 minutes) - prevents hanging tests on CI
168
175
  timeout = 120
@@ -170,7 +177,7 @@ markers = [
170
177
  "skip_reference(reason: str=''): skip when --connector=reference",
171
178
  "skip_universal(reason: str=''): skip when --connector=universal",
172
179
  "skip_unless_native_arrow(reason: str=''): skip unless sf_core_python.native_arrow_enabled() (Cython/reference Arrow converter)",
173
- "slow: marks tests as slow (e.g., full sdist install with Rust compilation)",
180
+ "slow: excluded from the default suite; run with -m slow (large results, full builds)",
174
181
  "skip_for_json_result_set(reason: str=''): skip when QUERY_RESULT_FORMAT=JSON (tests requiring Arrow precision)",
175
182
  "require_vpn: test requires VPN access (skipped outside Jenkins CI)",
176
183
  "requires_browser: test requires headless browser container (skipped unless SF_TEST_HEADLESS_BROWSER=true)",
@@ -306,7 +313,7 @@ PARAMETER_PATH = "{env:PARAMETER_PATH:../parameters.json}"
306
313
  SKIP_CORE_BUILD = "{env:SKIP_CORE_BUILD:1}"
307
314
 
308
315
  [[tool.hatch.envs.dev.matrix]]
309
- python = ["3.11", "3.12", "3.13", "3.14", "3.14t"]
316
+ python = ["3.11", "3.12", "3.13", "3.14", "3.15", "3.15t"]
310
317
 
311
318
  [tool.hatch.envs.dev.scripts]
312
319
  # Per-test retries come from addopts --reruns 2 (not a second whole-suite run).
@@ -329,7 +336,7 @@ skip-install = true
329
336
  dev-mode = false
330
337
 
331
338
  [[tool.hatch.envs.test.matrix]]
332
- python = ["3.11", "3.12", "3.13", "3.14", "3.14t"]
339
+ python = ["3.11", "3.12", "3.13", "3.14", "3.15", "3.15t"]
333
340
 
334
341
  [tool.hatch.envs.test.scripts]
335
342
  # Install from wheel
@@ -351,7 +358,7 @@ no_mfa = "pytest tests/e2e/authentication/test_user_password.py -m requires_no_m
351
358
  template = "test"
352
359
 
353
360
  [[tool.hatch.envs.test-native-arrow.matrix]]
354
- python = ["3.13", "3.14t"]
361
+ python = ["3.13", "3.15t"]
355
362
 
356
363
  [tool.hatch.envs.test-native-arrow.env-vars]
357
364
  SNOWFLAKE_TEST_USE_CORE_ARROW = "1"
@@ -362,7 +369,7 @@ template = "test"
362
369
  features = ["test", "dev", "pandas"]
363
370
 
364
371
  [[tool.hatch.envs.test-pandas.matrix]]
365
- python = ["3.11", "3.12", "3.13", "3.14", "3.14t"]
372
+ python = ["3.11", "3.12", "3.13", "3.14", "3.15", "3.15t"]
366
373
 
367
374
  [tool.hatch.envs.test-pandas.scripts]
368
375
  cov = "pytest tests/e2e/pandas tests/e2e/numpy --cov=src/snowflake --cov-report=xml --cov-report=html {args}"
@@ -379,7 +386,7 @@ python = ["3.13"]
379
386
  [tool.hatch.envs.packaging.scripts]
380
387
  # no parallelism - each packaging test does a full Rust compile; runing them concurrently can thrash the runner
381
388
  # {args:...}: default to the whole packaging suite; CI passes a single file
382
- test = "pytest -n 0 {args:tests/packaging}"
389
+ test = "pytest -n 0 -m \"not flaky and not requires_no_mfa\" {args:tests/packaging}"
383
390
 
384
391
  # Reference connector environments install only the reference connector.
385
392
  # UD driver is uninstalled; only the old driver is present.
@@ -262,6 +262,34 @@ fn native_arrow_enabled() -> bool {
262
262
  cfg!(feature = "native-arrow")
263
263
  }
264
264
 
265
+ /// Split a SQL script into statements.
266
+ ///
267
+ /// Each item is the statement text and a PUT/GET flag: `True` for `PUT` and
268
+ /// `GET`, `False` for other statements and `!` commands, and `None` when the
269
+ /// text is empty or comment-only. The delimiter is rewritten as `;`.
270
+ ///
271
+ /// An unterminated quote, block comment, or dollar quote keeps the rest of
272
+ /// the script in that statement. An empty delimiter raises `ValueError`.
273
+ #[pyfunction]
274
+ fn split_sql_script(
275
+ sql: &str,
276
+ delimiter: &str,
277
+ remove_comments: bool,
278
+ ) -> PyResult<Vec<(String, Option<bool>)>> {
279
+ let options = sf_core::sql_script::SplitOptions {
280
+ delimiter: delimiter.to_owned(),
281
+ remove_comments,
282
+ };
283
+ sf_core::sql_script::split_sql_script(sql, &options)
284
+ .map(|spans| {
285
+ spans
286
+ .into_iter()
287
+ .map(|span| (span.text, span.is_file_transfer))
288
+ .collect()
289
+ })
290
+ .map_err(|err| pyo3::exceptions::PyValueError::new_err(err.to_string()))
291
+ }
292
+
265
293
  #[pymodule(gil_used = false)]
266
294
  fn sf_core_python(m: &Bound<'_, PyModule>) -> PyResult<()> {
267
295
  m.add_function(wrap_pyfunction!(init, m)?)?;
@@ -272,6 +300,7 @@ fn sf_core_python(m: &Bound<'_, PyModule>) -> PyResult<()> {
272
300
  m.add_function(wrap_pyfunction!(get_perf_data, m)?)?;
273
301
  m.add_function(wrap_pyfunction!(reset_perf_metrics, m)?)?;
274
302
  m.add_function(wrap_pyfunction!(native_arrow_enabled, m)?)?;
303
+ m.add_function(wrap_pyfunction!(split_sql_script, m)?)?;
275
304
  #[cfg(feature = "native-arrow")]
276
305
  m.add_class::<ArrowStreamIterator>()?;
277
306
  #[cfg(feature = "native-arrow")]
@@ -0,0 +1,5 @@
1
+ # Changelog
2
+
3
+ ## Upcoming Release
4
+
5
+ In-progress notes are files under `changelog/unreleased/`.
@@ -86,6 +86,19 @@ bytes = "1"
86
86
  # panics ("No provider set"), which is why every client construction path calls
87
87
  # `tls::ensure_crypto_provider()` first.
88
88
  reqwest = { version = "0.12.23", default-features = false, features = ["json", "rustls-tls-no-provider", "rustls-tls-native-roots-no-provider", "rustls-tls-webpki-roots-no-provider", "gzip", "stream", "http2", "charset", "macos-system-configuration"] }
89
+ # Exact pin. reqwest's `http2` feature pulls `h2` transitively, and result
90
+ # chunks from GCS download over HTTP/2. GCS pads its DATA frames today and
91
+ # often sends frames that carry only padding.
92
+ # - h2 0.4.12 leaves padding out of the connection flow-control window, so
93
+ # after about 0.5 GB on one connection it stops sending WINDOW_UPDATE and
94
+ # the download stalls until GCS resets the stream.
95
+ # - From 0.4.19, h2 counts a padding-only frame as an empty DATA frame and
96
+ # closes the connection with GOAWAY(ENHANCE_YOUR_CALM,
97
+ # "too_many_data_frames") after 100 of them. The count never resets and
98
+ # no builder option changes the limit.
99
+ # 0.4.18 has neither problem. A later release, including a security update,
100
+ # keeps the empty-frame limit unless upstream changes it.
101
+ h2 = "=0.4.18"
89
102
  serde = { version = "1.0.219", features = ["derive"] }
90
103
  serde_json = { version = "1.0.143", features = ["raw_value"] }
91
104
  futures = "0.3"
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - A cancellation error now reports what its abort-request achieved: `DriverException.cancellation_abort_outcome` is `ABORTED` (server acknowledged), `NOT_RUNNING` (nothing was running), or `NOT_CONFIRMED` (issued, outcome unknown), and is left unset when no abort was issued at all — the operation was cancelled before its query reached the server. This is the acknowledgement `StatementCancel` used to return to the canceller, delivered instead to the caller whose query was cancelled. (snowflakedb/drivers#1491)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - A `StatementExecuteAsync` whose submission is accepted but which returns no usable query ID now aborts that query and reports an internal error, instead of reporting an invalid-argument error and leaving a query running that the caller has no ID for. (snowflakedb/drivers#1549)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a connection-free status call that reports whether this process is the FIPS driver. Python `get_fips_status()`, JDBC `getFipsStatus()`, Node.js `getFipsStatus()`, .NET `GetFipsStatus()`, and ODBC `SFGetFipsStatus` return the same `is_fips` value. (snowflakedb/drivers#2562)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `connection_is_usable` driver API that reports whether a connection can take a request, and distinguishes a connection that has yet to log in from one whose session is gone. It answers under a single lock what `connection_is_closed`, `connection_is_expired` and `connection_is_initialized` answer under three. (snowflakedb/drivers#2096)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `cwd` statement option that resolves relative local paths in PUT and GET against a caller-supplied directory. (snowflakedb/drivers#1932)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `_description_internal` property on the Python cursor, exposing the new-format `ResultMetadataV2` metadata for the last executed statement. Callers that probe for it (Snowpark) previously fell back to the PEP 249 `description`, losing `fields` and `vector_dimension`. (snowflakedb/drivers#1627)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: internal
3
+ ---
4
+
5
+ - Added a `DriverProviders` injection point for the token cache so a wrapper can supply its own `TokenCache` instead of the default keyring store. (snowflakedb/drivers#2166)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: internal
3
+ ---
4
+
5
+ - Added a per-statement cloud-request budget for PUT/GET: every request that moves object bytes or reads object metadata takes a slot from one shared `TransferScheduler` sized from the server's `PARALLEL`, so part-level and file-level concurrency cannot multiply into `PARALLEL²` simultaneous requests now that file fan-out has landed. (snowflakedb/drivers#1449)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `proxy_scheme` connection parameter so the hop to the proxy can use HTTPS. An `https://` proxy URL and JDBC `proxyProtocol=https` now open TLS to the proxy instead of HTTP. (snowflakedb/drivers#2013)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `put_compress_level` connection setting that selects the gzip level (0–9) used when PUT AUTO_COMPRESS rewrites a file. (snowflakedb/drivers#2083)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `put_tempdir` connection setting that selects the directory for gzip tempfiles created by PUT AUTO_COMPRESS. Unset and empty values keep the process temp directory. Nested directories are created. (snowflakedb/drivers#2084)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a Python `platform_detection_timeout_seconds` connection parameter that limits each cloud-metadata platform check. Setting it to `0` skips those HTTP and STS queries and keeps only environment-based detection, matching the legacy Python connector. (snowflakedb/drivers#2186)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a Python source-distribution install with `SNOWFLAKE_FIPS=1` that links the FIPS module, so `snowflake.connector.get_fips_status()` reports `is_fips` as true. (snowflakedb/drivers#2489)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `secondary_roles` connection parameter that lets a client control secondary-role activation at login (e.g. `ALL` or `NONE`) without relying on the user's `DEFAULT_SECONDARY_ROLES` setting, ported from legacy snowflake-connector-python. Also restores parity with legacy ODBC's `SecondaryRoles` connection attribute, and is newly available (with no legacy equivalent) for JDBC. (snowflakedb/drivers#954)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a shared operation-cancellation registry and `RustTransport::handle_message_cancellable`, letting a bridge cancel an in-flight RPC by handle from any thread and surface cancellation as `DriverException` with `ERROR_KIND_CANCELLED`; the async C API now cancels through this registry. (snowflakedb/drivers#TBD)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: internal
3
+ ---
4
+
5
+ - Added a `stage_binding_disabled` telemetry event recorded once per connection, the first time `CREATE STAGE` fails for the session-scoped array-bind stage. Previously ODBC alone reported a similar event on every statement that subsequently retried with inline JSON bindings. (snowflakedb/drivers#2205)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `token_file_path` connection parameter that loads a PAT, legacy OAuth, or OIDC bearer token from a file (including from `connections.toml`), matching the legacy Python connector. If both `token` and `token_file_path` are set, the file contents are used. (snowflakedb/drivers#1445)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: change
3
+ ---
4
+
5
+ - Added a `validate_session_token` wrapper preset, on for every wrapper but Node.js. When off, a login with pre-acquired session and master tokens adopts the pair as handed over instead of proving it with a token-request RENEW first, so the pair is not rotated and adopting it costs no round-trip. Such a connection has no server-reported session id and therefore emits no per-operation telemetry; authentication, queries and logout are unaffected. This restores the legacy `snowflake-connector-nodejs` `deserializeConnection` contract. (snowflakedb/drivers#2042)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `wif_host` connection parameter that sets the AWS STS endpoint for Workload Identity Federation, including the pre-signed GetCallerIdentity request, AssumeRole impersonation, and outbound GetWebIdentityToken; unset keeps the AWS SDK regional STS hostname. (snowflakedb/drivers#2439)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added an `extra_root_store_path` connection parameter that extends the default TLS root store with certificates from a PEM bundle while preserving `custom_root_store_path` replacement behavior. (snowflakedb/drivers#1827)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added an opt-in `fips` build that routes TLS through AWS-LC-FIPS and fails closed if a non-FIPS crypto provider is active. (snowflakedb/drivers#2055)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added `ApiError::terminates_session()` so an in-process wrapper can tell from the error alone that `connection_is_usable` now reports the connection as terminated. (snowflakedb/drivers#2696)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added `APPLICATION_PATH` to the login `CLIENT_ENVIRONMENT` payload. Wrappers pass it through `WrapperIdentity.application_path`. An unset or blank path is reported as `UNKNOWN`. (snowflakedb/drivers#2535)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added async-first RPCs: an RPC marked `async_first` in the proto generates a `Future`-returning client method, and JDBC's `ConnectionInit` now uses it via new `nativeSubmitMessage`/`nativeAwaitMessage`/`nativeCancel` JNI entries. (snowflakedb/drivers#TBD)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added `AsyncArrowBatchFetcher::from_batches` so an in-process wrapper can build a fetcher from already-materialized Arrow batches. (snowflakedb/drivers#2003)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added Azure blob Content-MD5 on PUT (single Put Blob and Put Block List), hashed in the same streaming pass as SHA-256 and over ciphertext when client-side encryption is on. (snowflakedb/drivers#2232)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: internal
3
+ ---
4
+
5
+ - Added a `client_crl_stats` in-band telemetry event for each CRL download attempt, buffered on the connection until that session is registered. (snowflakedb/drivers#3035)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added a `jwt_timeout` connection parameter, exposed in Node.js as `jwtTimeout`, to configure the lifetime in seconds of each key-pair authentication JWT, including tokens re-signed on login retry. The default remains 120 seconds; `0` selects the default and negative or non-integer values are rejected (snowflakedb/drivers#3141).
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added Duo push continuation for username/password MFA so a pending Duo challenge can wait for device approval and then finish login. (snowflakedb/drivers#2021)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added file-level parallelism to PUT and GET: a multi-file transfer now uploads or downloads several files at once instead of one at a time, bounded by the statement's `PARALLEL` value, and result rows keep their original file order. Fail-fast now lets files already in flight (up to `PARALLEL` of them) finish and land on the stage after the first error, instead of stopping after only the current file. (snowflakedb/drivers#1451)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: internal
3
+ ---
4
+
5
+ - Added hot-swappable file logging: `LogManager` exposes a `LogReloadHandle` that re-applies the core and troubleshooting file sinks (log level and destination path) in place, without rebuilding the tracing dispatch, session registry, or negotiated encoding, so a wrapper can re-read its logging configuration at runtime. (snowflakedb/drivers#2588)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added impersonation-chain support to the standalone `create_attestation` RPC, so callers can acquire a Workload Identity Federation attestation for an assumed AWS role, delegated GCP service account, or impersonated Azure service principal without an active connection. (snowflakedb/drivers#1027)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added `IS_FIPS` to the login `CLIENT_ENVIRONMENT` payload so Snowflake can tell whether the driver's linked TLS provider is FIPS-approved. (snowflakedb/drivers#2384)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added JDBC aliases `wifHost`, `workloadIdentityHost`, and `workload_identity_host`, a Python alias `workload_identity_host`, and a Node.js alias `wifHost` for the `wif_host` connection parameter. (snowflakedb/drivers#2439)
@@ -0,0 +1,5 @@
1
+ ---
2
+ category: feature
3
+ ---
4
+
5
+ - Added native AKS Workload Identity support for Azure: when the Azure Workload Identity webhook injects `AZURE_CLIENT_ID`, `AZURE_TENANT_ID` and `AZURE_FEDERATED_TOKEN_FILE` into a pod and the projected token file exists on disk, `workload_identity_provider="AZURE"` now exchanges that federated token for an Entra ID access token directly, instead of requiring the projected-volume/OIDC workaround. `workload_identity_impersonation_path` is not supported in this environment. (snowflakedb/drivers#1367)