snowflake-connector-python 5.0.0b2__tar.gz → 5.0.0b4__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 (408) hide show
  1. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/Cargo.lock +25 -0
  2. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/PKG-INFO +4 -6
  3. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/README.md +2 -4
  4. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/python_generator.rs +97 -2
  5. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/rust_generator.rs +1 -1
  6. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/protoc_installer.rs +76 -8
  7. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/protobuf/database_driver_v1.proto +85 -3
  8. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/pyproject.toml +7 -2
  9. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/Cargo.toml +24 -4
  10. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/exports.def +2 -0
  11. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/connection.rs +716 -119
  12. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/error.rs +7 -0
  13. snowflake_connector_python-5.0.0b4/sf_core/src/apis/database_driver_v1/get_objects.rs +1226 -0
  14. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/global_state.rs +53 -1
  15. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/heartbeat.rs +12 -8
  16. snowflake_connector_python-5.0.0b4/sf_core/src/apis/database_driver_v1/like_pattern.rs +246 -0
  17. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/mod.rs +9 -0
  18. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/query.rs +279 -56
  19. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/result_set.rs +245 -37
  20. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/statement.rs +416 -111
  21. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/validation.rs +128 -23
  22. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/arrow_utils.rs +6 -1
  23. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/auth.rs +16 -1
  24. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/collect_chunk_data.rs +4 -0
  25. snowflake_connector_python-5.0.0b4/sf_core/src/bin/spcs_probe.rs +144 -0
  26. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/error.rs +6 -0
  27. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/json_parser.rs +94 -11
  28. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/mod.rs +5 -1
  29. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/prefetch.rs +24 -12
  30. snowflake_connector_python-5.0.0b4/sf_core/src/compression.rs +177 -0
  31. snowflake_connector_python-5.0.0b4/sf_core/src/compression_types.rs +559 -0
  32. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/config_manager.rs +331 -124
  33. snowflake_connector_python-5.0.0b4/sf_core/src/config/configured_redirect_uri.rs +121 -0
  34. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/connection_config.rs +394 -18
  35. snowflake_connector_python-5.0.0b4/sf_core/src/config/ini_loader.rs +206 -0
  36. snowflake_connector_python-5.0.0b4/sf_core/src/config/logging_config_loader.rs +344 -0
  37. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/mod.rs +16 -0
  38. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/param_registry.rs +476 -9
  39. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/resolver.rs +241 -11
  40. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/rest_parameters.rs +383 -51
  41. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/cache.rs +99 -61
  42. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/error.rs +6 -0
  43. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/integration_test.rs +1 -1
  44. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/validator.rs +2 -2
  45. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/worker.rs +2 -0
  46. snowflake_connector_python-5.0.0b4/sf_core/src/diagnostic/mod.rs +798 -0
  47. snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/azure_transfer.rs +1829 -0
  48. snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/cloud_http.rs +366 -0
  49. snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/encryption.rs +558 -0
  50. snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/gcs_transfer.rs +2515 -0
  51. snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/mod.rs +2202 -0
  52. snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/multipart.rs +366 -0
  53. snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/s3_transfer.rs +1609 -0
  54. snowflake_connector_python-5.0.0b4/sf_core/src/file_manager/types.rs +692 -0
  55. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/lib.rs +3 -0
  56. snowflake_connector_python-5.0.0b4/sf_core/src/logging/error.rs +12 -0
  57. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/log_manager.rs +188 -52
  58. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/mod.rs +1 -2
  59. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/apis/database_driver_v1/converter.rs +80 -55
  60. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/apis/database_driver_v1/mod.rs +155 -29
  61. snowflake_connector_python-5.0.0b4/sf_core/src/protobuf/c_api.rs +254 -0
  62. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/query_types.rs +3 -1
  63. snowflake_connector_python-5.0.0b4/sf_core/src/refresh.rs +212 -0
  64. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/async_exec.rs +1 -1
  65. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/auth.rs +22 -7
  66. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/external_browser.rs +2 -2
  67. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/heartbeat.rs +17 -4
  68. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/mod.rs +512 -203
  69. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/authorization_code.rs +173 -35
  70. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/client_credentials.rs +60 -6
  71. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/loopback_server.rs +249 -116
  72. snowflake_connector_python-5.0.0b4/sf_core/src/rest/snowflake/prompt_lock.rs +189 -0
  73. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/query_response.rs +734 -26
  74. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/sql_state.rs +7 -0
  75. snowflake_connector_python-5.0.0b4/sf_core/src/stage_binding.rs +276 -0
  76. snowflake_connector_python-5.0.0b4/sf_core/src/telemetry/mod.rs +111 -0
  77. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/serialization.rs +86 -15
  78. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/snowflake_exporter.rs +12 -15
  79. snowflake_connector_python-5.0.0b4/sf_core/src/telemetry/snowflake_processor.rs +399 -0
  80. snowflake_connector_python-5.0.0b4/sf_core/src/tls/client.rs +372 -0
  81. snowflake_connector_python-5.0.0b4/sf_core/src/tls/config.rs +223 -0
  82. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/error.rs +8 -0
  83. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/mod.rs +2 -2
  84. snowflake_connector_python-5.0.0b4/sf_core/tests/common/cloud_gating.rs +295 -0
  85. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/config.rs +2 -0
  86. snowflake_connector_python-5.0.0b4/sf_core/tests/common/mocks/external_browser.rs +302 -0
  87. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/mfa.rs +24 -0
  88. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/mod.rs +1 -0
  89. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/password.rs +7 -4
  90. snowflake_connector_python-5.0.0b4/sf_core/tests/common/mocks/put_get.rs +218 -0
  91. snowflake_connector_python-5.0.0b4/sf_core/tests/common/mocks/query.rs +98 -0
  92. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mod.rs +1 -0
  93. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/snowflake_test_client.rs +67 -1
  94. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/bridge.py +107 -0
  95. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/__init__.py +39 -0
  96. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_async.py +47 -0
  97. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_common.py +62 -0
  98. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_init.py +65 -0
  99. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_performance.py +50 -0
  100. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/api_client/c_api/_sync.py +44 -0
  101. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/api_client/client_api.py +288 -33
  102. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_context.py +3 -2
  103. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/arrow_stream_async.py +156 -0
  104. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_stream_utils.py +4 -3
  105. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/binding_converters.py +198 -62
  106. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/__init__.py +30 -0
  107. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/connection.py +328 -0
  108. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/connection_types.py +13 -0
  109. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/constants.py +25 -0
  110. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/decorators.py +70 -0
  111. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/freezable_proxy.py +39 -0
  112. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/connection/queries.py +9 -0
  113. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/connection_config_mixin.py +68 -12
  114. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/__init__.py +25 -0
  115. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/base.py +481 -0
  116. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/cursor_types.py +13 -0
  117. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/decorators.py +113 -0
  118. snowflake_connector_python-5.0.0b2/src/snowflake/connector/cursor/_query_result.py → snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/query_result.py +23 -18
  119. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/query_result_waiter.py +98 -0
  120. snowflake_connector_python-5.0.0b2/src/snowflake/connector/cursor/_result_metadata.py → snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/result_metadata.py +2 -2
  121. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/cursor/result_set_wrapper.py +59 -0
  122. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/decorators.py +339 -0
  123. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/errorhandler.py +6 -4
  124. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/logging.py +26 -0
  125. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp +226 -103
  126. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +344 -0
  127. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.pyi +221 -15
  128. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_services.py +762 -0
  129. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/result_batch.py +148 -0
  130. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/snowflake_restful.py +12 -4
  131. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/statement_utils.py +13 -3
  132. snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/telemetry.py +95 -0
  133. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/write_pandas_operation.py +5 -1
  134. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/README.md +159 -0
  135. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/__init__.py +35 -0
  136. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/connection/__init__.py +17 -0
  137. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/connection/_connection.py +408 -0
  138. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/connection/_freezable_proxy.py +85 -0
  139. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/__init__.py +35 -0
  140. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/_base.py +883 -0
  141. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/_dict_cursor.py +58 -0
  142. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/_result_set_wrapper.py +59 -0
  143. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/cursor/_snowflake_cursor.py +52 -0
  144. snowflake_connector_python-5.0.0b4/src/snowflake/connector/aio/result_batch.py +158 -0
  145. snowflake_connector_python-5.0.0b4/src/snowflake/connector/connection/__init__.py +30 -0
  146. snowflake_connector_python-5.0.0b2/src/snowflake/connector/connection.py → snowflake_connector_python-5.0.0b4/src/snowflake/connector/connection/_connection.py +103 -382
  147. snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/freezable_proxy.py → snowflake_connector_python-5.0.0b4/src/snowflake/connector/connection/_freezable_proxy.py +21 -26
  148. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/connection_config.py +87 -0
  149. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/constants.py +7 -0
  150. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/__init__.py +2 -6
  151. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_base.py +226 -495
  152. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_dict_cursor.py +2 -1
  153. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_result_set_wrapper.py +6 -32
  154. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/cursor/_snowflake_cursor.py +2 -1
  155. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/errors.py +24 -5
  156. snowflake_connector_python-5.0.0b4/src/snowflake/connector/py.typed +0 -0
  157. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/result_batch.py +16 -149
  158. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/version.py +1 -1
  159. snowflake_connector_python-5.0.0b2/sf_core/src/compression.rs +0 -79
  160. snowflake_connector_python-5.0.0b2/sf_core/src/compression_types.rs +0 -123
  161. snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/azure_transfer.rs +0 -838
  162. snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/encryption.rs +0 -193
  163. snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/gcs_transfer.rs +0 -1059
  164. snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/mod.rs +0 -672
  165. snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/s3_transfer.rs +0 -933
  166. snowflake_connector_python-5.0.0b2/sf_core/src/file_manager/types.rs +0 -383
  167. snowflake_connector_python-5.0.0b2/sf_core/src/logging/error.rs +0 -34
  168. snowflake_connector_python-5.0.0b2/sf_core/src/logging/ini_config.rs +0 -702
  169. snowflake_connector_python-5.0.0b2/sf_core/src/protobuf/c_api.rs +0 -111
  170. snowflake_connector_python-5.0.0b2/sf_core/src/telemetry/mod.rs +0 -63
  171. snowflake_connector_python-5.0.0b2/sf_core/src/tls/client.rs +0 -147
  172. snowflake_connector_python-5.0.0b2/sf_core/src/tls/config.rs +0 -55
  173. snowflake_connector_python-5.0.0b2/sf_core/tests/common/mocks/external_browser.rs +0 -109
  174. snowflake_connector_python-5.0.0b2/sf_core/tests/common/mocks/put_get.rs +0 -52
  175. snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/api_client/c_api.py +0 -187
  176. snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/decorators.py +0 -137
  177. snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/protobuf_gen/database_driver_v1_pb2.py +0 -336
  178. snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/telemetry.py +0 -53
  179. snowflake_connector_python-5.0.0b2/src/snowflake/connector/cursor/_query_result_waiter.py +0 -47
  180. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/.gitignore +0 -0
  181. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/Cargo.toml +0 -0
  182. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/build_common.rs +0 -0
  183. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/error_trace/Cargo.toml +0 -0
  184. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/error_trace/src/lib.rs +0 -0
  185. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/error_trace_derive/Cargo.toml +0 -0
  186. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/error_trace_derive/src/lib.rs +0 -0
  187. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/hatch_build.py +0 -0
  188. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/Cargo.lock +0 -0
  189. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/Cargo.toml +0 -0
  190. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/README.md +0 -0
  191. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generator.rs +0 -0
  192. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/helpers.rs +0 -0
  193. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/java_generator.rs +0 -0
  194. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/json_generator.rs +0 -0
  195. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/generators/mod.rs +0 -0
  196. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/lib.rs +0 -0
  197. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/main.rs +0 -0
  198. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_generator/src/protobuf.rs +0 -0
  199. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_utils/Cargo.toml +0 -0
  200. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/proto_utils/src/lib.rs +0 -0
  201. /snowflake_connector_python-5.0.0b2/src/snowflake/connector/_common/__init__.py → /snowflake_connector_python-5.0.0b4/sf_core/CHANGELOG.md +0 -0
  202. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/README.md +0 -0
  203. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/benches/prefetch_bench.rs +0 -0
  204. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/build.rs +0 -0
  205. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/alter_session_parser.rs +0 -0
  206. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/async_query_registry.rs +0 -0
  207. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/database.rs +0 -0
  208. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/logout.rs +0 -0
  209. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/multistatement.rs +0 -0
  210. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/database_driver_v1/spcs_token.rs +0 -0
  211. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/apis/mod.rs +0 -0
  212. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/README.md +0 -0
  213. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/param_defs_export.rs +0 -0
  214. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/bin/tls_client.rs +0 -0
  215. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/c_api.rs +0 -0
  216. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/arrow_parser.rs +0 -0
  217. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/http_downloader.rs +0 -0
  218. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/memory_budget.rs +0 -0
  219. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/chunks/mock.rs +0 -0
  220. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/logout.rs +0 -0
  221. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/param_store.rs +0 -0
  222. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/path_resolver.rs +0 -0
  223. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/retry.rs +0 -0
  224. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/settings.rs +0 -0
  225. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/config/toml_loader.rs +0 -0
  226. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/certificate_parser.rs +0 -0
  227. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/config.rs +0 -0
  228. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/disk_tests.rs +0 -0
  229. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/crl/mod.rs +0 -0
  230. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/file_manager/path_expansion.rs +0 -0
  231. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/fs_adapter.rs +0 -0
  232. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/handle_manager.rs +0 -0
  233. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/http/mod.rs +0 -0
  234. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/http/retry.rs +0 -0
  235. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/c_api.rs +0 -0
  236. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/callback_layer.rs +0 -0
  237. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/logging/opentelemetry.rs +0 -0
  238. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/perf_timing/c_api.rs +0 -0
  239. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/perf_timing/mod.rs +0 -0
  240. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/apis/mod.rs +0 -0
  241. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/config_setting_ext.rs +0 -0
  242. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/generated.rs +0 -0
  243. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/protobuf/mod.rs +0 -0
  244. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/mod.rs +0 -0
  245. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/error.rs +0 -0
  246. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/logout.rs +0 -0
  247. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/native_okta.rs +0 -0
  248. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/dpop.rs +0 -0
  249. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/error.rs +0 -0
  250. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/http_client.rs +0 -0
  251. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/mod.rs +0 -0
  252. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/pkce.rs +0 -0
  253. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/oauth/token.rs +0 -0
  254. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/query_request.rs +0 -0
  255. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/rest/snowflake/telemetry.rs +0 -0
  256. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/sensitive.rs +0 -0
  257. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/environment.rs +0 -0
  258. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/os_details.rs +0 -0
  259. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/aws.rs +0 -0
  260. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/azure.rs +0 -0
  261. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/gcp.rs +0 -0
  262. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/mod.rs +0 -0
  263. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/platform_detection/tests.rs +0 -0
  264. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/telemetry/types.rs +0 -0
  265. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/crl_verifier.rs +0 -0
  266. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/revocation.rs +0 -0
  267. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/test_helpers.rs +0 -0
  268. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/tls/x509_utils.rs +0 -0
  269. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/token_cache/file_cache.rs +0 -0
  270. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/token_cache/keyring_cache.rs +0 -0
  271. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/src/token_cache/mod.rs +0 -0
  272. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_deserialize.rs +0 -0
  273. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_deserialize_macro/Cargo.toml +0 -0
  274. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_deserialize_macro/src/lib.rs +0 -0
  275. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_extract_value.rs +0 -0
  276. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/arrow_result_helper.rs +0 -0
  277. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/file_utils.rs +0 -0
  278. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/auth.rs +0 -0
  279. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/oauth.rs +0 -0
  280. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/okta.rs +0 -0
  281. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/mocks/session.rs +0 -0
  282. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/private_key_helper.rs +0 -0
  283. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/put_get_common.rs +0 -0
  284. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/test_server.rs +0 -0
  285. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/test_utils.rs +0 -0
  286. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/sf_core/tests/common/tls_proxy.rs +0 -0
  287. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/__init__.py +0 -0
  288. {snowflake_connector_python-5.0.0b2/src/snowflake/connector/_internal/protobuf_gen → snowflake_connector_python-5.0.0b4/src/snowflake/connector/_common}/__init__.py +0 -0
  289. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/__init__.py +0 -0
  290. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/_private_key_helper.py +0 -0
  291. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/api_client/__init__.py +0 -0
  292. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/arrow_stream_iterator.pyi +0 -0
  293. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/backward_compatibility.py +0 -0
  294. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/config_utils.py +0 -0
  295. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/errorcode.py +0 -0
  296. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/extras.py +0 -0
  297. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/logout_config_mapping.py +0 -0
  298. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.cpp +0 -0
  299. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrayConverter.hpp +0 -0
  300. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.cpp +0 -0
  301. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ArrowTableConverter.hpp +0 -0
  302. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +0 -0
  303. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +0 -0
  304. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -0
  305. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +0 -0
  306. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -0
  307. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -0
  308. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.cpp +0 -0
  309. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamIterator.hpp +0 -0
  310. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.cpp +0 -0
  311. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/CArrowStreamTableIterator.hpp +0 -0
  312. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.cpp +0 -0
  313. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ConverterUtil.hpp +0 -0
  314. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -0
  315. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +0 -0
  316. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.cpp +0 -0
  317. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecFloatConverter.hpp +0 -0
  318. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +0 -0
  319. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +0 -0
  320. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +0 -0
  321. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +0 -0
  322. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +0 -0
  323. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +0 -0
  324. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +0 -0
  325. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +0 -0
  326. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +0 -0
  327. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.cpp +0 -0
  328. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/IntervalConverter.hpp +0 -0
  329. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
  330. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.cpp +0 -0
  331. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/MapConverter.hpp +0 -0
  332. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.cpp +0 -0
  333. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/ObjectConverter.hpp +0 -0
  334. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +0 -0
  335. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +0 -0
  336. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +0 -0
  337. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +0 -0
  338. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +0 -0
  339. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +0 -0
  340. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +0 -0
  341. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +0 -0
  342. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -0
  343. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +0 -0
  344. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -0
  345. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +0 -0
  346. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
  347. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -0
  348. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/Util/time.hpp +0 -0
  349. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.pyx +0 -0
  350. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
  351. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
  352. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
  353. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
  354. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
  355. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
  356. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
  357. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
  358. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
  359. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
  360. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
  361. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
  362. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
  363. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
  364. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
  365. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
  366. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
  367. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
  368. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
  369. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
  370. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
  371. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
  372. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
  373. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
  374. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
  375. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
  376. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
  377. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
  378. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
  379. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
  380. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
  381. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
  382. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
  383. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -0
  384. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.c +0 -0
  385. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.h +0 -0
  386. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +0 -0
  387. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -0
  388. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +0 -0
  389. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.cpp +0 -0
  390. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/nanoarrow_cpp/Logging/logging.hpp +0 -0
  391. {snowflake_connector_python-5.0.0b2/src/snowflake/connector/auth → snowflake_connector_python-5.0.0b4/src/snowflake/connector/_internal/protobuf_gen}/__init__.py +0 -0
  392. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/protobuf_gen/proto_exception.py +0 -0
  393. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/snow_logging.py +0 -0
  394. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/sqlstate.py +0 -0
  395. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/status_codes.py +0 -0
  396. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/text_utils.py +0 -0
  397. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/_internal/type_codes.py +0 -0
  398. /snowflake_connector_python-5.0.0b2/src/snowflake/connector/py.typed → /snowflake_connector_python-5.0.0b4/src/snowflake/connector/auth/__init__.py +0 -0
  399. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/auth/workload_identity.py +0 -0
  400. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/compat.py +0 -0
  401. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/config_manager.py +0 -0
  402. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/description.py +0 -0
  403. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/pandas_tools.py +0 -0
  404. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/telemetry.py +0 -0
  405. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/time_util.py +0 -0
  406. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/types.py +0 -0
  407. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/src/snowflake/connector/util_text.py +0 -0
  408. {snowflake_connector_python-5.0.0b2 → snowflake_connector_python-5.0.0b4}/tests/README.md +0 -0
@@ -3478,6 +3478,7 @@ dependencies = [
3478
3478
  "arrow",
3479
3479
  "base64 0.22.1",
3480
3480
  "chrono",
3481
+ "dirs",
3481
3482
  "embed-resource",
3482
3483
  "error_trace",
3483
3484
  "libc",
@@ -3491,6 +3492,7 @@ dependencies = [
3491
3492
  "snafu 0.8.9",
3492
3493
  "strum",
3493
3494
  "strum_macros",
3495
+ "temp-env",
3494
3496
  "test-case",
3495
3497
  "tokio",
3496
3498
  "tokio-util",
@@ -3510,8 +3512,10 @@ name = "odbc_trace_tool"
3510
3512
  version = "0.1.0"
3511
3513
  dependencies = [
3512
3514
  "clap",
3515
+ "encoding_rs",
3513
3516
  "regex",
3514
3517
  "serde",
3518
+ "serde_json",
3515
3519
  "serde_yaml",
3516
3520
  "snafu 0.8.9",
3517
3521
  "tempfile",
@@ -4385,6 +4389,7 @@ dependencies = [
4385
4389
  "url",
4386
4390
  "wasm-bindgen",
4387
4391
  "wasm-bindgen-futures",
4392
+ "wasm-streams",
4388
4393
  "web-sys",
4389
4394
  "webpki-roots",
4390
4395
  ]
@@ -4829,9 +4834,11 @@ dependencies = [
4829
4834
  "aws-lc-rs",
4830
4835
  "aws-sdk-s3",
4831
4836
  "aws-sdk-sts",
4837
+ "aws-smithy-types",
4832
4838
  "axum",
4833
4839
  "base64 0.22.1",
4834
4840
  "brotli",
4841
+ "bytes",
4835
4842
  "bzip2",
4836
4843
  "chrono",
4837
4844
  "clap",
@@ -4848,6 +4855,8 @@ dependencies = [
4848
4855
  "hex",
4849
4856
  "html-escape",
4850
4857
  "http 1.3.1",
4858
+ "http-body 1.0.1",
4859
+ "http-body-util",
4851
4860
  "infer",
4852
4861
  "jwt",
4853
4862
  "keyring",
@@ -4863,6 +4872,7 @@ dependencies = [
4863
4872
  "opentelemetry-semantic-conventions",
4864
4873
  "opentelemetry_sdk",
4865
4874
  "os_info",
4875
+ "pin-project-lite",
4866
4876
  "pprof",
4867
4877
  "prost 0.14.1",
4868
4878
  "proto_generator",
@@ -4875,6 +4885,7 @@ dependencies = [
4875
4885
  "rustls-native-certs 0.8.1",
4876
4886
  "rustls-pemfile 2.2.0",
4877
4887
  "rustls-webpki 0.102.8",
4888
+ "scopeguard",
4878
4889
  "serde",
4879
4890
  "serde_json",
4880
4891
  "sf_core",
@@ -4895,6 +4906,7 @@ dependencies = [
4895
4906
  "toml 0.8.23",
4896
4907
  "tracing",
4897
4908
  "tracing-appender",
4909
+ "tracing-core",
4898
4910
  "tracing-opentelemetry",
4899
4911
  "tracing-subscriber",
4900
4912
  "tracing-test",
@@ -6063,6 +6075,19 @@ dependencies = [
6063
6075
  "unicode-ident",
6064
6076
  ]
6065
6077
 
6078
+ [[package]]
6079
+ name = "wasm-streams"
6080
+ version = "0.4.2"
6081
+ source = "registry+https://github.com/rust-lang/crates.io-index"
6082
+ checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65"
6083
+ dependencies = [
6084
+ "futures-util",
6085
+ "js-sys",
6086
+ "wasm-bindgen",
6087
+ "wasm-bindgen-futures",
6088
+ "web-sys",
6089
+ ]
6090
+
6066
6091
  [[package]]
6067
6092
  name = "web-sys"
6068
6093
  version = "0.3.81"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-connector-python
3
- Version: 5.0.0b2
3
+ Version: 5.0.0b4
4
4
  Summary: Snowflake DB driver for Python (Private Preview)
5
5
  Project-URL: Homepage, https://github.com/snowflakedb/universal-driver
6
6
  Project-URL: Bug Reports, https://github.com/snowflakedb/universal-driver/issues
@@ -8,7 +8,7 @@ Project-URL: Source, https://github.com/snowflakedb/universal-driver
8
8
  Project-URL: Documentation, https://github.com/snowflakedb/universal-driver/blob/main/README.md
9
9
  License: Apache-2.0
10
10
  Keywords: api,database,dbapi,pep249,python,snowflake
11
- Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Development Status :: 4 - Beta
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: License :: OSI Approved :: Apache Software License
14
14
  Classifier: Programming Language :: Python :: 3
@@ -58,11 +58,9 @@ Description-Content-Type: text/markdown
58
58
 
59
59
  # ⚠️ PRIVATE PREVIEW DISCLAIMER ⚠️
60
60
 
61
- **IMPORTANT:** This release contains a **Private Preview** version of the Snowflake DB driver. By downloading or using this software, you acknowledge and agree to the following conditions:
61
+ **This is a beta version of our Universal Driver intended for Snowflake customers who are subject to Snowflake's Preview Terms.**
62
62
 
63
- - **Restricted Access:** Usage of this driver is strictly limited to participants who are actively enrolled in the official Private Preview program for this specific driver. If you have not been explicitly invited and authorized to participate in this preview, do not download, install, or use this software.
64
- - **Testing Environments Only:** For authorized Private Preview partners, this driver is provided solely for evaluation, feedback, and testing purposes. It must be deployed exclusively in isolated, non-production environments.
65
- - **"As-Is" Software:** As a preview release, this driver is still under active development. It may contain bugs, lack features, or undergo significant breaking changes before general availability. It is provided "as-is" without any warranties, service level agreements (SLAs), or official support commitments.
63
+ This driver is not ready for use with production data and may be unstable. Please only use it if you are actively participating in the Universal Driver Private Preview.
66
64
 
67
65
  ## Development
68
66
 
@@ -1,10 +1,8 @@
1
1
  # ⚠️ PRIVATE PREVIEW DISCLAIMER ⚠️
2
2
 
3
- **IMPORTANT:** This release contains a **Private Preview** version of the Snowflake DB driver. By downloading or using this software, you acknowledge and agree to the following conditions:
3
+ **This is a beta version of our Universal Driver intended for Snowflake customers who are subject to Snowflake's Preview Terms.**
4
4
 
5
- - **Restricted Access:** Usage of this driver is strictly limited to participants who are actively enrolled in the official Private Preview program for this specific driver. If you have not been explicitly invited and authorized to participate in this preview, do not download, install, or use this software.
6
- - **Testing Environments Only:** For authorized Private Preview partners, this driver is provided solely for evaluation, feedback, and testing purposes. It must be deployed exclusively in isolated, non-production environments.
7
- - **"As-Is" Software:** As a preview release, this driver is still under active development. It may contain bugs, lack features, or undergo significant breaking changes before general availability. It is provided "as-is" without any warranties, service level agreements (SLAs), or official support commitments.
5
+ This driver is not ready for use with production data and may be unstable. Please only use it if you are actively participating in the Universal Driver Private Preview.
8
6
 
9
7
  ## Development
10
8
 
@@ -113,11 +113,16 @@ impl PythonGenerator {
113
113
  content += &self.generate_server_class(&service, &package);
114
114
  }
115
115
 
116
- // Generate client classes
117
- for service in file.service {
116
+ // Generate (synchronous) client classes
117
+ for service in file.service.clone() {
118
118
  content += &self.generate_client_class(&service, &package);
119
119
  }
120
120
 
121
+ // Generate async client classes (separate code path from the sync clients)
122
+ for service in file.service {
123
+ content += &self.generate_async_client_class(&service, &package);
124
+ }
125
+
121
126
  result.add_file(
122
127
  PathBuf::from(format!(r#"{package}_services.py"#)),
123
128
  GeneratedFile::new(content),
@@ -311,6 +316,96 @@ class ProtoError(Exception):
311
316
 
312
317
  content
313
318
  }
319
+
320
+ /// Generate the asynchronous client for a service.
321
+ ///
322
+ /// This is a dedicated client for the async code path — separate from the
323
+ /// synchronous ``{service}Client``. Each method awaits
324
+ /// ``transport.handle_message_async``, which today offloads the blocking
325
+ /// FFI call to a worker thread via ``asyncio.to_thread``. A non-blocking,
326
+ /// callback-based FFI will replace that hop later without changing this
327
+ /// client's surface.
328
+ fn generate_async_client_class(
329
+ &self,
330
+ service: &crate::protobuf::ServiceDescriptorProto,
331
+ package: &str,
332
+ ) -> String {
333
+ let service_name = service.name.as_ref().unwrap_or(&String::new()).clone();
334
+ let service_error = service
335
+ .options
336
+ .as_ref()
337
+ .and_then(|o| o.service_error.as_ref());
338
+
339
+ let mut content = format!(
340
+ r#"class Async{service_name}Client:
341
+ """Asynchronous {service_name} client.
342
+
343
+ Each RPC awaits ``transport.handle_message_async``, which runs the
344
+ blocking FFI call on a worker thread so the event loop is not blocked.
345
+ This is a separate code path from the synchronous ``{service_name}Client``.
346
+ """
347
+
348
+ def __init__(self, transport, error_handler=None):
349
+ """
350
+ Args:
351
+ transport: Transport layer that handles message serialization.
352
+ error_handler: Optional callable that converts a proto-layer exception
353
+ into a public exception. Must **return** the converted exception
354
+ (not raise it); ``_raise_error`` takes care of raising.
355
+ """
356
+ self._transport = transport
357
+ self._error_handler = error_handler
358
+
359
+ def _raise_error(self, exc):
360
+ if self._error_handler is not None:
361
+ raise self._error_handler(exc) from None
362
+ raise exc
363
+
364
+ "#
365
+ );
366
+
367
+ for method in &service.method {
368
+ let name = camel_to_snake_case(method.name.as_ref().unwrap_or(&String::new()));
369
+ let input_type = to_rust_message_name(
370
+ &package.to_string(),
371
+ &method.input_type.as_ref().unwrap_or(&String::new()).clone(),
372
+ );
373
+ let output_type = to_rust_message_name(
374
+ &package.to_string(),
375
+ &method
376
+ .output_type
377
+ .as_ref()
378
+ .unwrap_or(&String::new())
379
+ .clone(),
380
+ );
381
+ let method_error = method
382
+ .options
383
+ .as_ref()
384
+ .and_then(|o| o.method_error.as_ref());
385
+ let empty_error = "EmptyError".to_string();
386
+ let error_type = method_error.or(service_error).unwrap_or(&empty_error);
387
+
388
+ content += &format!(
389
+ r#" async def {name}(self, request: {input_type}) -> {output_type}:
390
+ (code, response_bytes) = await self._transport.handle_message_async('{service_name}', '{name}', request.SerializeToString())
391
+ if code == 0:
392
+ response = {output_type}()
393
+ response.ParseFromString(response_bytes)
394
+ return response
395
+ elif code == 1:
396
+ error = {error_type}()
397
+ error.ParseFromString(response_bytes)
398
+ self._raise_error(ProtoApplicationException(error))
399
+ elif code == 2:
400
+ self._raise_error(ProtoTransportException(str(response_bytes)))
401
+ else:
402
+ self._raise_error(ProtoTransportException(f"Unknown error code: %s", code))
403
+ "#
404
+ );
405
+ }
406
+
407
+ content
408
+ }
314
409
  }
315
410
 
316
411
  impl Default for PythonGenerator {
@@ -230,7 +230,7 @@ use prost::Message;
230
230
  Ok(input) => input,
231
231
  Err(e) => return Err(ProtoError::Transport(e.to_string())),
232
232
  }};
233
- let result = self.{name}(input).await;
233
+ let result = Box::pin(self.{name}(input)).await;
234
234
  match result {{
235
235
  Ok(output) => Ok(output.encode_to_vec()),
236
236
  Err(e) => Err(ProtoError::Application(e.encode_to_vec())),
@@ -72,21 +72,89 @@ fn download_url() -> String {
72
72
 
73
73
  fn download_and_install(dest: &Path) {
74
74
  let url = download_url();
75
- eprintln!("Downloading protoc v{PROTOC_VERSION} from {url}");
76
75
 
77
76
  std::fs::create_dir_all(dest).expect("Failed to create protoc cache directory");
78
77
  let zip_path = dest.join("protoc.zip");
79
78
 
80
- let status = std::process::Command::new("curl")
81
- .args(["-sSL", "--fail", "-o"])
82
- .arg(&zip_path)
83
- .arg(&url)
84
- .status()
85
- .expect("Failed to execute curl. Install curl or set the PROTOC env var.");
79
+ // Two layers of retry guard the build against transient GitHub Releases failures
80
+ // (recurring HTTP 5xx, slow connect, partial download):
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.
94
+ //
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.
106
+ const MAX_ATTEMPTS: u32 = 5;
107
+ let mut last_status = None;
108
+ for attempt in 1..=MAX_ATTEMPTS {
109
+ eprintln!(
110
+ "Downloading protoc v{PROTOC_VERSION} from {url} (attempt {attempt}/{MAX_ATTEMPTS})"
111
+ );
112
+
113
+ // Best-effort cleanup of any partial download from the previous attempt.
114
+ // A corrupt zip would otherwise survive into extract_zip() and fail there.
115
+ 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
+ ])
133
+ .arg(&zip_path)
134
+ .arg(&url)
135
+ .status()
136
+ .expect("Failed to execute curl. Install curl or set the PROTOC env var.");
137
+
138
+ if status.success() {
139
+ last_status = Some(status);
140
+ break;
141
+ }
142
+ last_status = Some(status);
143
+
144
+ if attempt < MAX_ATTEMPTS {
145
+ let backoff_ms = 1_000u64 * (1u64 << (attempt - 1));
146
+ eprintln!("curl failed (status: {status}); retrying in {backoff_ms} ms");
147
+ std::thread::sleep(std::time::Duration::from_millis(backoff_ms));
148
+ }
149
+ }
86
150
 
151
+ let status = last_status.expect("curl loop must produce at least one status");
87
152
  assert!(
88
153
  status.success(),
89
- "Failed to download protoc from {url} (curl exit status: {status})"
154
+ "Failed to download protoc from {url} after {MAX_ATTEMPTS} attempts \
155
+ (last curl exit status: {status}). \
156
+ Set the PROTOC env var to a local protoc binary to bypass the download \
157
+ (useful in offline or locked-down environments).",
90
158
  );
91
159
 
92
160
  extract_zip(&zip_path, dest);
@@ -332,6 +332,7 @@ message ConnectionGetInfoResponse {
332
332
  optional string schema = 10;
333
333
  optional string warehouse = 11;
334
334
  optional string master_token = 12;
335
+ optional string user_agent = 13;
335
336
  }
336
337
 
337
338
  message ConnectionGetObjectsRequest {
@@ -344,8 +345,36 @@ message ConnectionGetObjectsRequest {
344
345
  optional string column_name = 7;
345
346
  }
346
347
 
348
+ // ConnectionGetObjects returns a result set (streaming, via result_set_get_stream)
349
+ // containing a nested ADBC-shaped Arrow batch:
350
+ // catalog_name: utf8
351
+ // catalog_db_schemas: list<struct<
352
+ // db_schema_name: utf8,
353
+ // db_schema_tables: list<struct<
354
+ // table_name: utf8,
355
+ // table_type: utf8,
356
+ // table_columns: list (always empty in this impl),
357
+ // table_constraints: list (always empty in this impl)
358
+ // >>
359
+ // >>
360
+ //
361
+ // depth constants:
362
+ // 0 = ALL (not used)
363
+ // 1 = CATALOGS -> populates only catalog_name
364
+ // 2 = DB_SCHEMAS -> populates catalog_name + db_schema_name
365
+ // 3 = TABLES -> populates down to table_name/table_type
366
+ // 4 = COLUMNS -> deferred (not implemented yet)
367
+ //
368
+ // Filter semantics (search patterns, ADBC + backslash-escape extension):
369
+ // - NULL filter = no filter (account-wide or connection-context if
370
+ // CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX is set)
371
+ // - empty string "" = matches nothing (returns empty result)
372
+ // - % = any sequence, _ = any single char
373
+ // - \%, \_, \\ = literal %, _, \ (escape extension, not in ADBC spec)
374
+ // - Matching is case-insensitive (Snowflake unquoted-identifier semantics)
347
375
  message ConnectionGetObjectsResponse {
348
- bytes objects_data = 1;
376
+ ResultSetHandle result_set_handle = 1;
377
+ ResultSetDescriptor result_descriptor = 2;
349
378
  }
350
379
 
351
380
  message ConnectionGetTableSchemaRequest {
@@ -397,6 +426,14 @@ message ConnectionUseDatabaseRequest {
397
426
  message ConnectionUseDatabaseResponse {
398
427
  }
399
428
 
429
+ message ConnectionUseSchemaRequest {
430
+ ConnectionHandle conn_handle = 1;
431
+ string schema = 2;
432
+ }
433
+
434
+ message ConnectionUseSchemaResponse {
435
+ }
436
+
400
437
  message ConnectionSetSessionParametersRequest {
401
438
  ConnectionHandle conn_handle = 1;
402
439
  map<string, string> parameters = 2;
@@ -422,6 +459,19 @@ message ConnectionGetAllParametersResponse {
422
459
  map<string, string> parameters = 1;
423
460
  }
424
461
 
462
+ // Reads the Snowflake server version cached from the login response.
463
+ // Distinct from ConnectionGetInfo (which aggregates ~12 fields and takes
464
+ // several locks) so SQLGetInfo(SQL_DBMS_VER) / JDBC getDatabaseProductVersion
465
+ // stay cheap even when callers poll them per-statement.
466
+ message ConnectionGetServerVersionRequest {
467
+ ConnectionHandle conn_handle = 1;
468
+ }
469
+
470
+ message ConnectionGetServerVersionResponse {
471
+ // Empty when called before login completes.
472
+ optional string server_version = 1;
473
+ }
474
+
425
475
  message ConnectionValidateOptionsRequest {
426
476
  ConnectionHandle conn_handle = 1;
427
477
  }
@@ -467,6 +517,7 @@ message ConnectionTokenResponse {
467
517
  // Heartbeat request to validate that the connection and session are still alive.
468
518
  message ConnectionHeartbeatRequest {
469
519
  ConnectionHandle conn_handle = 1;
520
+ optional uint32 timeout_seconds = 2; // 0 / absent = use default (300s)
470
521
  }
471
522
 
472
523
  message ConnectionHeartbeatResponse {
@@ -534,6 +585,8 @@ message PrepareResult {
534
585
  int32 number_of_binds = 5;
535
586
  string query = 6;
536
587
  optional string sql_state = 7;
588
+ bool array_bind_supported = 8;
589
+ repeated ColumnMetadata binds = 9;
537
590
  }
538
591
 
539
592
  message StatementPrepareRequest {
@@ -705,6 +758,15 @@ message ConfigSection {
705
758
  message ConnectionSetOptionsRequest {
706
759
  ConnectionHandle conn_handle = 1;
707
760
  map<string, ConfigSetting> options = 2;
761
+ // True when the caller invoked connect() with zero connection-identifying
762
+ // options (the legacy Python driver's `is_kwargs_empty` condition). The core
763
+ // then falls back to the default connection profile from connections.toml,
764
+ // honoring SNOWFLAKE_DEFAULT_CONNECTION_NAME and config.toml's
765
+ // `default_connection_name`. Language wrappers MUST compute this from the
766
+ // raw caller input *before* injecting any bookkeeping params (application,
767
+ // client_app_id, …); a value of `false` (the default) means "caller supplied
768
+ // something", so do not load the default profile.
769
+ bool no_connection_details = 3;
708
770
  }
709
771
 
710
772
  message ConnectionSetOptionsResponse {
@@ -748,8 +810,19 @@ message ConnectionGetQueryStatusRequest {
748
810
  message ConnectionGetQueryStatusResponse {
749
811
  // Status name as returned by the server (e.g. "RUNNING", "SUCCESS", "FAILED_WITH_ERROR")
750
812
  string status_name = 1;
751
- optional int32 error_code = 2;
752
- optional string error_message = 3;
813
+ int64 end_time = 2;
814
+ optional int32 error_code = 3;
815
+ optional string error_message = 4;
816
+ string query_id = 5;
817
+ int64 session_id = 6;
818
+ string sql_text = 7;
819
+ int64 start_time = 8;
820
+ string state = 9;
821
+ int32 total_duration = 10;
822
+ optional string warehouse_external_size = 11;
823
+ int64 warehouse_id = 12;
824
+ optional string warehouse_name = 13;
825
+ optional string warehouse_server_type = 14;
753
826
  }
754
827
 
755
828
  message ConfigGetPathsRequest {
@@ -768,6 +841,10 @@ message ConfigGetPathsResponse {
768
841
  message TelemetrySendApiUsageRequest {
769
842
  ConnectionHandle conn_handle = 1;
770
843
  string api_method = 2;
844
+ // Names of the arguments the caller explicitly passed to the API method.
845
+ // Names only — never argument values, and parameters left at their default
846
+ // are omitted. Used to learn which optional fields callers actually exercise.
847
+ repeated string passed_arguments = 3;
771
848
  }
772
849
 
773
850
  message TelemetrySendWrapperErrorRequest {
@@ -804,6 +881,7 @@ service DatabaseDriver {
804
881
  rpc ConnectionRollback(ConnectionRollbackRequest) returns (ConnectionRollbackResponse);
805
882
  rpc ConnectionSetAutocommit(ConnectionSetAutocommitRequest) returns (ConnectionSetAutocommitResponse);
806
883
  rpc ConnectionUseDatabase(ConnectionUseDatabaseRequest) returns (ConnectionUseDatabaseResponse);
884
+ rpc ConnectionUseSchema(ConnectionUseSchemaRequest) returns (ConnectionUseSchemaResponse);
807
885
  // sets initial session parameters connection should be initialized with
808
886
  // call before opening the connection
809
887
  rpc ConnectionSetSessionParameters(ConnectionSetSessionParametersRequest) returns (ConnectionSetSessionParametersResponse);
@@ -812,6 +890,10 @@ service DatabaseDriver {
812
890
  rpc ConnectionGetParameter(ConnectionGetParameterRequest) returns (ConnectionGetParameterResponse);
813
891
  // gets all resolved session parameters at once
814
892
  rpc ConnectionGetAllParameters(ConnectionGetAllParametersRequest) returns (ConnectionGetAllParametersResponse);
893
+ // returns the Snowflake server version cached from the login response
894
+ // (`serverVersion` in `/session/v1/login-request`); backs
895
+ // `SQLGetInfo(SQL_DBMS_VER)` and `getDatabaseProductVersion`
896
+ rpc ConnectionGetServerVersion(ConnectionGetServerVersionRequest) returns (ConnectionGetServerVersionResponse);
815
897
  // pre-flight validation of connection options - reports all issues at once
816
898
  rpc ConnectionValidateOptions(ConnectionValidateOptionsRequest) returns (ConnectionValidateOptionsResponse);
817
899
  // Fetch the result of a previously executed query by Snowflake Query ID
@@ -10,7 +10,7 @@ readme = "README.md"
10
10
  license = { text = "Apache-2.0" }
11
11
  keywords = ["database", "api", "pep249", "dbapi", "python", "snowflake"]
12
12
  classifiers = [
13
- "Development Status :: 3 - Alpha",
13
+ "Development Status :: 4 - Beta",
14
14
  "Intended Audience :: Developers",
15
15
  "Topic :: Database",
16
16
  "Topic :: Software Development :: Libraries :: Python Modules",
@@ -147,6 +147,7 @@ markers = [
147
147
  "slow: marks tests as slow (e.g., full sdist install with Rust compilation)",
148
148
  "skip_for_json_result_set(reason: str=''): skip when QUERY_RESULT_FORMAT=JSON (tests requiring Arrow precision)",
149
149
  "require_vpn: test requires VPN access (skipped outside Jenkins CI)",
150
+ "requires_browser: test requires headless browser container (skipped unless SF_TEST_HEADLESS_BROWSER=true)",
150
151
  "flaky: marks tests as flaky; skipped by default, run explicitly via the flaky CI job or `-m flaky` locally",
151
152
  ]
152
153
  log_cli = false
@@ -237,7 +238,11 @@ dependencies = [
237
238
  "protobuf>=6.32.1",
238
239
  "pytz",
239
240
  "tomlkit>=0.13",
240
- "numpy>=2.1.0",
241
+ # Cap < 2.3 to match the mypy `python_version = "3.10"` target: numpy 2.3
242
+ # dropped 3.10 and its stubs use PEP-695 `type` statements mypy rejects
243
+ # under a 3.10 target. A real 3.10 install resolves numpy <= 2.2, so this is
244
+ # the numpy we should type-check against.
245
+ "numpy>=2.1.0,<2.3",
241
246
  ]
242
247
 
243
248
  [tool.hatch.envs.precommit.env-vars]
@@ -15,6 +15,8 @@ protobuf = ["prost", "proto_utils"]
15
15
  vendored-openssl = ["openssl/vendored"]
16
16
  auth_mfa_e2e = []
17
17
  auth_oauth_e2e = []
18
+ auth_spcs_e2e = []
19
+ gcs_e2e = []
18
20
  perf_timing = []
19
21
  test-utils = []
20
22
  cli = ["clap"]
@@ -26,10 +28,12 @@ opentelemetry_sdk = { version = "0.30.0", default-features = false, features = [
26
28
  opentelemetry-otlp = { version = "0.30.0" }
27
29
  opentelemetry-semantic-conventions = { version = "0.30.0" }
28
30
  tracing = "0.1.41"
31
+ tracing-core = "0.1.34"
29
32
  tracing-appender = "0.2"
30
33
  tracing-subscriber = { version = "0.3.19", features = ["fmt", "env-filter"] }
31
34
  rand = "0.9.2"
32
- reqwest = { version = "0.12.23", features = ["json", "rustls-tls", "gzip"] }
35
+ bytes = "1"
36
+ reqwest = { version = "0.12.23", features = ["json", "rustls-tls", "gzip", "stream"] }
33
37
  serde = { version = "1.0.219", features = ["derive"] }
34
38
  serde_json = { version = "1.0.143", features = ["raw_value"] }
35
39
  futures = "0.3"
@@ -39,8 +43,8 @@ tokio-stream = "0.1"
39
43
  toml = "0.8"
40
44
  uuid = { version = "1.18", features = ["v4"] }
41
45
  base64 = "0.22.1"
42
- arrow = { version = "56.0.0", features = ["ffi"] }
43
- arrow-ipc = "56.0.0"
46
+ arrow = { version = ">=54.0.0, <59", features = ["ffi"] }
47
+ arrow-ipc = ">=54.0.0, <59"
44
48
  flate2 = "1.1.2"
45
49
  openssl = "0.10.73"
46
50
  jwt = { version = "0.16.0", features = ["openssl"] }
@@ -48,6 +52,10 @@ oauth2 = { version = "5", features = ["timing-resistant-secret-traits"] }
48
52
  axum = { version = "0.8", default-features = false, features = ["http1", "tokio", "query"] }
49
53
  webbrowser = "1"
50
54
  http = "1"
55
+ http-body = "1"
56
+ http-body-util = "0.1"
57
+ pin-project-lite = "0.2"
58
+ tempfile = "3.21.0"
51
59
  infer = "0.19.0"
52
60
 
53
61
  # Proto
@@ -59,6 +67,9 @@ aws-sdk-s3 = "1.103.0"
59
67
  aws-sdk-sts = "1.86.0"
60
68
  aws-config = "1.8.5"
61
69
  aws-credential-types = "1.2.5"
70
+ # Enables `ByteStream::from_body_1_x` so the S3 PUT path can stream a custom
71
+ # (lazily-encrypting) http-body without buffering ciphertext.
72
+ aws-smithy-types = { version = "1.3", features = ["http-body-1-x"] }
62
73
  snafu = "0.8.7"
63
74
  error_trace = { path = "../error_trace" }
64
75
  fs2 = "0.4"
@@ -107,7 +118,6 @@ libc = "0.2"
107
118
  sf_core = { path = ".", default-features = false, features = ["test-utils"] }
108
119
  tokio = { version = "1.47.1", features = ["fs", "test-util"] }
109
120
  opentelemetry_sdk = { version = "0.30.0", default-features = false, features = ["experimental_metrics_custom_reader"] }
110
- tempfile = "3.21.0"
111
121
  arrow_deserialize_macro = { path = "tests/common/arrow_deserialize_macro" }
112
122
  bzip2 = "0.6.0"
113
123
  brotli = "8.0.2"
@@ -120,6 +130,7 @@ tokio-rustls = "0.26"
120
130
  tracing-test = { version = "0.2", features = ["no-env-filter"] }
121
131
  criterion = { version = "0.5", features = ["async_tokio"] }
122
132
  temp-env = { version = "0.3.6", features = ["async_closure"] }
133
+ scopeguard = "1.2"
123
134
 
124
135
  [target.'cfg(not(target_os = "windows"))'.dev-dependencies]
125
136
  pprof = { version = "0.14", features = ["flamegraph", "criterion"] }
@@ -160,6 +171,10 @@ path = "tests/logging_custom_file_tests.rs"
160
171
  name = "logging_query_tests"
161
172
  path = "tests/logging_query_tests.rs"
162
173
 
174
+ [[test]]
175
+ name = "byte_source_roundtrip"
176
+ path = "tests/byte_source_roundtrip.rs"
177
+
163
178
  [[test]]
164
179
  name = "e2e_tests"
165
180
  path = "tests/e2e/mod.rs"
@@ -178,6 +193,11 @@ required-features = ["cli"]
178
193
  name = "param_defs_export"
179
194
  path = "src/bin/param_defs_export.rs"
180
195
 
196
+ [[bin]]
197
+ name = "spcs_probe"
198
+ path = "src/bin/spcs_probe.rs"
199
+ required-features = ["protobuf"]
200
+
181
201
  [[bench]]
182
202
  name = "prefetch_bench"
183
203
  harness = false
@@ -4,6 +4,8 @@
4
4
  EXPORTS
5
5
  sf_core_init
6
6
  sf_core_api_call_proto
7
+ sf_core_api_call_proto_async
8
+ sf_core_api_cancel
7
9
  sf_core_free_buffer
8
10
  sf_core_perf_enabled
9
11
  sf_core_get_perf_data