snowflake-connector-python 3.5.0__tar.gz → 3.7.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 (241) hide show
  1. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/DESCRIPTION.md +20 -1
  2. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/MANIFEST.in +1 -0
  3. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/PKG-INFO +24 -4
  4. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/setup.cfg +3 -2
  5. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/setup.py +30 -41
  6. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/arrow_context.py +5 -3
  7. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/_auth.py +2 -2
  8. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/keypair.py +2 -2
  9. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/webbrowser.py +32 -10
  10. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/azure_storage_client.py +2 -2
  11. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/config_manager.py +1 -1
  12. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/connection.py +175 -102
  13. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/connection_diagnostic.py +1 -1
  14. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/constants.py +65 -17
  15. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/converter.py +56 -16
  16. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/converter_issue23517.py +4 -4
  17. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/cursor.py +262 -13
  18. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.cpp +7 -10
  19. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BinaryConverter.hpp +6 -7
  20. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +25 -0
  21. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.hpp +6 -7
  22. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.cpp +459 -0
  23. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.hpp +23 -20
  24. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +129 -0
  25. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +119 -0
  26. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.cpp +959 -0
  27. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.hpp +141 -0
  28. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +51 -0
  29. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.hpp +11 -13
  30. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.cpp +40 -51
  31. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DecimalConverter.hpp +23 -25
  32. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.cpp +77 -0
  33. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FixedSizeListConverter.hpp +32 -0
  34. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.cpp +10 -17
  35. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/FloatConverter.hpp +12 -14
  36. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IColumnConverter.hpp +4 -6
  37. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.cpp +6 -9
  38. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/IntConverter.hpp +15 -25
  39. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.cpp +3 -5
  40. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Common.hpp +38 -56
  41. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.cpp +17 -23
  42. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Python/Helpers.hpp +4 -5
  43. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.cpp +7 -7
  44. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/SnowflakeType.hpp +10 -12
  45. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.cpp +7 -10
  46. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/StringConverter.hpp +6 -7
  47. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +40 -0
  48. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.hpp +6 -7
  49. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +350 -0
  50. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.hpp +47 -52
  51. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.cpp +69 -0
  52. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.hpp +7 -11
  53. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc.c +3204 -0
  54. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.c +403 -289
  55. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.h +503 -368
  56. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow.hpp +55 -31
  57. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_arrow_iterator.pyx +13 -15
  58. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.c +78 -57
  59. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_device.h +53 -37
  60. snowflake-connector-python-3.7.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +33260 -0
  61. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.h +79 -70
  62. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.cpp +19 -26
  63. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/Logging/logging.hpp +16 -12
  64. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/network.py +11 -4
  65. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/ocsp_snowflake.py +3 -3
  66. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/result_batch.py +20 -16
  67. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/result_set.py +20 -3
  68. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/s3_storage_client.py +2 -2
  69. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/telemetry_oob.py +3 -1
  70. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/tool/dump_ocsp_response_cache.py +2 -2
  71. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/version.py +1 -1
  72. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake_connector_python.egg-info/PKG-INFO +24 -4
  73. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake_connector_python.egg-info/SOURCES.txt +2 -0
  74. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake_connector_python.egg-info/requires.txt +4 -2
  75. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/BooleanConverter.cpp +0 -29
  76. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowChunkIterator.cpp +0 -479
  77. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.cpp +0 -62
  78. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowIterator.hpp +0 -156
  79. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.cpp +0 -844
  80. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/CArrowTableIterator.hpp +0 -161
  81. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/DateConverter.cpp +0 -59
  82. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeConverter.cpp +0 -46
  83. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/TimeStampConverter.cpp +0 -349
  84. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/time.cpp +0 -76
  85. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc.c +0 -3169
  86. snowflake-connector-python-3.5.0/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c +0 -22428
  87. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/CONTRIBUTING.md +0 -0
  88. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/LICENSE.txt +0 -0
  89. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/NOTICE +0 -0
  90. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/README.md +0 -0
  91. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/SECURITY.md +0 -0
  92. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/pyproject.toml +0 -0
  93. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/__init__.py +0 -0
  94. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/_query_context_cache.py +0 -0
  95. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/_sql_util.py +0 -0
  96. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/__init__.py +0 -0
  97. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/by_plugin.py +0 -0
  98. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/default.py +0 -0
  99. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/idtoken.py +0 -0
  100. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/oauth.py +0 -0
  101. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/okta.py +0 -0
  102. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/auth/usrpwdmfa.py +0 -0
  103. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/backoff_policies.py +0 -0
  104. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/bind_upload_agent.py +0 -0
  105. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/cache.py +0 -0
  106. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/compat.py +0 -0
  107. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/converter_null.py +0 -0
  108. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/converter_snowsql.py +0 -0
  109. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/dbapi.py +0 -0
  110. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/description.py +0 -0
  111. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/encryption_util.py +0 -0
  112. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/errorcode.py +0 -0
  113. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/errors.py +0 -0
  114. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/feature.py +0 -0
  115. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/file_compression_type.py +0 -0
  116. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/file_transfer_agent.py +0 -0
  117. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/file_util.py +0 -0
  118. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/gcs_storage_client.py +0 -0
  119. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/gzip_decoder.py +0 -0
  120. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/local_storage_client.py +0 -0
  121. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/LICENSE.txt +0 -0
  122. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/Util/macros.hpp +0 -0
  123. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_accessors.h +0 -0
  124. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_alloc.h +0 -0
  125. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_assert.h +0 -0
  126. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_builder.h +0 -0
  127. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_emitter.h +0 -0
  128. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_endian.h +0 -0
  129. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_epilogue.h +0 -0
  130. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_flatbuffers.h +0 -0
  131. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_identifier.h +0 -0
  132. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_iov.h +0 -0
  133. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_prologue.h +0 -0
  134. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_refmap.h +0 -0
  135. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_rtconfig.h +0 -0
  136. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_types.h +0 -0
  137. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/flatcc_verifier.h +0 -0
  138. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/flatcc_portable.h +0 -0
  139. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/paligned_alloc.h +0 -0
  140. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pattributes.h +0 -0
  141. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic.h +0 -0
  142. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_pop.h +0 -0
  143. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pdiagnostic_push.h +0 -0
  144. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian.h +0 -0
  145. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pendian_detect.h +0 -0
  146. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h +0 -0
  147. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinttypes.h +0 -0
  148. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable.h +0 -0
  149. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/portable_basic.h +0 -0
  150. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstatic_assert.h +0 -0
  151. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdalign.h +0 -0
  152. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pstdint.h +0 -0
  153. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/punaligned.h +0 -0
  154. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pversion.h +0 -0
  155. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc/portable/pwarnings.h +0 -0
  156. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/ocsp_asn1crypto.py +0 -0
  157. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/options.py +0 -0
  158. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/pandas_tools.py +0 -0
  159. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/proxy.py +0 -0
  160. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/py.typed +0 -0
  161. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/secret_detector.py +0 -0
  162. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/sf_dirs.py +0 -0
  163. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/sfbinaryformat.py +0 -0
  164. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/sfdatetime.py +0 -0
  165. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/snow_logging.py +0 -0
  166. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/sqlstate.py +0 -0
  167. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/ssd_internal_keys.py +0 -0
  168. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/ssl_wrap_socket.py +0 -0
  169. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/storage_client.py +0 -0
  170. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/telemetry.py +0 -0
  171. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/test_util.py +0 -0
  172. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/time_util.py +0 -0
  173. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/tool/__init__.py +0 -0
  174. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/tool/dump_certs.py +0 -0
  175. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/tool/dump_ocsp_response.py +0 -0
  176. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/tool/probe_connection.py +0 -0
  177. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/url_util.py +0 -0
  178. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/util_text.py +0 -0
  179. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/__init__.py +0 -0
  180. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/LICENSE +0 -0
  181. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/__init__.py +0 -0
  182. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/__version__.py +0 -0
  183. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/_internal_utils.py +0 -0
  184. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/adapters.py +0 -0
  185. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/api.py +0 -0
  186. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/auth.py +0 -0
  187. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/certs.py +0 -0
  188. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/compat.py +0 -0
  189. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/cookies.py +0 -0
  190. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/exceptions.py +0 -0
  191. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/help.py +0 -0
  192. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/hooks.py +0 -0
  193. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/models.py +0 -0
  194. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/sessions.py +0 -0
  195. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/status_codes.py +0 -0
  196. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/structures.py +0 -0
  197. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/requests/utils.py +0 -0
  198. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/LICENSE.txt +0 -0
  199. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/__init__.py +0 -0
  200. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/_collections.py +0 -0
  201. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/_version.py +0 -0
  202. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/connection.py +0 -0
  203. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/connectionpool.py +0 -0
  204. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/__init__.py +0 -0
  205. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/_appengine_environ.py +0 -0
  206. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/_securetransport/__init__.py +0 -0
  207. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/_securetransport/bindings.py +0 -0
  208. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/_securetransport/low_level.py +0 -0
  209. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/appengine.py +0 -0
  210. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/ntlmpool.py +0 -0
  211. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/pyopenssl.py +0 -0
  212. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/securetransport.py +0 -0
  213. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/contrib/socks.py +0 -0
  214. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/exceptions.py +0 -0
  215. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/fields.py +0 -0
  216. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/filepost.py +0 -0
  217. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/packages/__init__.py +0 -0
  218. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/packages/backports/__init__.py +0 -0
  219. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/packages/backports/makefile.py +0 -0
  220. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/packages/backports/weakref_finalize.py +0 -0
  221. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/packages/six.py +0 -0
  222. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/poolmanager.py +0 -0
  223. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/request.py +0 -0
  224. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/response.py +0 -0
  225. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/__init__.py +0 -0
  226. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/connection.py +0 -0
  227. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/proxy.py +0 -0
  228. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/queue.py +0 -0
  229. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/request.py +0 -0
  230. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/response.py +0 -0
  231. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/retry.py +0 -0
  232. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/ssl_.py +0 -0
  233. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/ssl_match_hostname.py +0 -0
  234. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/ssltransport.py +0 -0
  235. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/timeout.py +0 -0
  236. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/url.py +0 -0
  237. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake/connector/vendored/urllib3/util/wait.py +0 -0
  238. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake_connector_python.egg-info/dependency_links.txt +0 -0
  239. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake_connector_python.egg-info/entry_points.txt +0 -0
  240. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake_connector_python.egg-info/not-zip-safe +0 -0
  241. {snowflake-connector-python-3.5.0 → snowflake-connector-python-3.7.0}/src/snowflake_connector_python.egg-info/top_level.txt +0 -0
@@ -8,6 +8,25 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne
8
8
 
9
9
  # Release Notes
10
10
 
11
+ - v3.7.0(January 25,2024)
12
+
13
+ - Added a new boolean parameter `force_return_table` to `SnowflakeCursor.fetch_arrow_all` to force returning `pyarrow.Table` in case of zero rows.
14
+ - Cleanup some C++ code warnings and performance issues.
15
+ - Added support for Python 3.12
16
+ - Make local testing more robust against implicit assumptions.
17
+ - Fixed PyArrow Table type hinting
18
+ - Added support for connecting using an existing connection via the session and master token.
19
+ - Added support for connecting to Snowflake by authenticating with multiple SAML IDP using external browser.
20
+ - Fixed compilation issue due to missing cstdint header on gcc13.
21
+ - Improved config permissions warning message.
22
+
23
+ - v3.6.0(December 09,2023)
24
+
25
+ - Added support for Vector types
26
+ - Changed urllib3 version pin to only affect Python versions < 3.10.
27
+ - Support for `private_key_file` and `private_key_file_pwd` connection parameters
28
+ - Added a new flag `expired` to `SnowflakeConnection` class, that keeps track of whether the connection's master token has expired.
29
+ - Fixed a bug where date insertion failed when date format is set and qmark style binding is used.
11
30
 
12
31
  - v3.5.0(November 13,2023)
13
32
 
@@ -19,7 +38,7 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne
19
38
  - Deprecated environment variable `NANOARROW_USAGE`.
20
39
  - Deprecated module variable `snowflake.connector.cursor.NANOARROW_USAGE`.
21
40
 
22
- - v3.4.1(November 08, 2023)
41
+ - v3.4.1(November 08,2023)
23
42
 
24
43
  - Bumped vendored `urllib3` to 1.26.18
25
44
  - Bumped vendored `requests` to 2.31.0
@@ -18,6 +18,7 @@ exclude .pre-commit-config.yaml
18
18
  exclude license_header.txt
19
19
  exclude tox.ini
20
20
  exclude mypy.ini
21
+ exclude .clang-format
21
22
 
22
23
  prune ci
23
24
  prune benchmark
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: snowflake-connector-python
3
- Version: 3.5.0
3
+ Version: 3.7.0
4
4
  Summary: Snowflake Connector for Python
5
5
  Home-page: https://www.snowflake.com/
6
6
  Author: Snowflake, Inc
@@ -26,6 +26,7 @@ Classifier: Programming Language :: Python :: 3.8
26
26
  Classifier: Programming Language :: Python :: 3.9
27
27
  Classifier: Programming Language :: Python :: 3.10
28
28
  Classifier: Programming Language :: Python :: 3.11
29
+ Classifier: Programming Language :: Python :: 3.12
29
30
  Classifier: Programming Language :: SQL
30
31
  Classifier: Topic :: Database
31
32
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
@@ -48,7 +49,7 @@ Requires-Dist: importlib-metadata; python_version < "3.8"
48
49
  Requires-Dist: packaging
49
50
  Requires-Dist: charset_normalizer<4,>=2
50
51
  Requires-Dist: idna<4,>=2.5
51
- Requires-Dist: urllib3<2.0.0,>=1.21.1
52
+ Requires-Dist: urllib3<2.0.0,>=1.21.1; python_version < "3.10"
52
53
  Requires-Dist: certifi>=2017.4.17
53
54
  Requires-Dist: typing_extensions<5,>=4.3
54
55
  Requires-Dist: filelock<4,>=3.5
@@ -69,7 +70,7 @@ Requires-Dist: pytest-timeout; extra == "development"
69
70
  Requires-Dist: pytest-xdist; extra == "development"
70
71
  Requires-Dist: pytzdata; extra == "development"
71
72
  Provides-Extra: pandas
72
- Requires-Dist: pandas<2.1.0,>=1.0.0; extra == "pandas"
73
+ Requires-Dist: pandas<2.2.0,>=1.0.0; extra == "pandas"
73
74
  Requires-Dist: pyarrow; extra == "pandas"
74
75
  Provides-Extra: secure-local-storage
75
76
  Requires-Dist: keyring!=16.1.0,<25.0.0; extra == "secure-local-storage"
@@ -84,6 +85,25 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne
84
85
 
85
86
  # Release Notes
86
87
 
88
+ - v3.7.0(January 25,2024)
89
+
90
+ - Added a new boolean parameter `force_return_table` to `SnowflakeCursor.fetch_arrow_all` to force returning `pyarrow.Table` in case of zero rows.
91
+ - Cleanup some C++ code warnings and performance issues.
92
+ - Added support for Python 3.12
93
+ - Make local testing more robust against implicit assumptions.
94
+ - Fixed PyArrow Table type hinting
95
+ - Added support for connecting using an existing connection via the session and master token.
96
+ - Added support for connecting to Snowflake by authenticating with multiple SAML IDP using external browser.
97
+ - Fixed compilation issue due to missing cstdint header on gcc13.
98
+ - Improved config permissions warning message.
99
+
100
+ - v3.6.0(December 09,2023)
101
+
102
+ - Added support for Vector types
103
+ - Changed urllib3 version pin to only affect Python versions < 3.10.
104
+ - Support for `private_key_file` and `private_key_file_pwd` connection parameters
105
+ - Added a new flag `expired` to `SnowflakeConnection` class, that keeps track of whether the connection's master token has expired.
106
+ - Fixed a bug where date insertion failed when date format is set and qmark style binding is used.
87
107
 
88
108
  - v3.5.0(November 13,2023)
89
109
 
@@ -95,7 +115,7 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne
95
115
  - Deprecated environment variable `NANOARROW_USAGE`.
96
116
  - Deprecated module variable `snowflake.connector.cursor.NANOARROW_USAGE`.
97
117
 
98
- - v3.4.1(November 08, 2023)
118
+ - v3.4.1(November 08,2023)
99
119
 
100
120
  - Bumped vendored `urllib3` to 1.26.18
101
121
  - Bumped vendored `requests` to 2.31.0
@@ -24,6 +24,7 @@ classifiers =
24
24
  Programming Language :: Python :: 3.9
25
25
  Programming Language :: Python :: 3.10
26
26
  Programming Language :: Python :: 3.11
27
+ Programming Language :: Python :: 3.12
27
28
  Programming Language :: SQL
28
29
  Topic :: Database
29
30
  Topic :: Scientific/Engineering :: Information Analysis
@@ -53,7 +54,7 @@ install_requires =
53
54
  packaging
54
55
  charset_normalizer>=2,<4
55
56
  idna>=2.5,<4
56
- urllib3>=1.21.1,<2.0.0
57
+ urllib3>=1.21.1,<2.0.0; python_version < '3.10'
57
58
  certifi>=2017.4.17
58
59
  typing_extensions>=4.3,<5
59
60
  filelock>=3.5,<4
@@ -92,7 +93,7 @@ development =
92
93
  pytest-xdist
93
94
  pytzdata
94
95
  pandas =
95
- pandas>=1.0.0,<2.1.0
96
+ pandas>=1.0.0,<2.2.0
96
97
  pyarrow
97
98
  secure-local-storage =
98
99
  keyring!=16.1.0,<25.0.0
@@ -75,6 +75,8 @@ if _ABLE_TO_COMPILE_EXTENSIONS and not SNOWFLAKE_DISABLE_COMPILE_ARROW_EXTENSION
75
75
  if options["debug"]:
76
76
  ext.extra_compile_args.append("-g")
77
77
  ext.extra_link_args.append("-g")
78
+ ext.extra_compile_args.append("-O0")
79
+ ext.extra_link_args.append("-O0")
78
80
  current_dir = os.getcwd()
79
81
 
80
82
  if ext.name == "snowflake.connector.nanoarrow_arrow_iterator":
@@ -88,48 +90,35 @@ if _ABLE_TO_COMPILE_EXTENSIONS and not SNOWFLAKE_DISABLE_COMPILE_ARROW_EXTENSION
88
90
 
89
91
  ext.sources += [
90
92
  os.path.join(
91
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "CArrowIterator.cpp"
92
- ),
93
- os.path.join(
94
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "CArrowChunkIterator.cpp"
95
- ),
96
- os.path.join(
97
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "CArrowTableIterator.cpp"
98
- ),
99
- os.path.join(NANOARROW_ARROW_ITERATOR_SRC_DIR, "SnowflakeType.cpp"),
100
- os.path.join(
101
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "BinaryConverter.cpp"
102
- ),
103
- os.path.join(
104
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "BooleanConverter.cpp"
105
- ),
106
- os.path.join(
107
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "DecimalConverter.cpp"
108
- ),
109
- os.path.join(NANOARROW_ARROW_ITERATOR_SRC_DIR, "DateConverter.cpp"),
110
- os.path.join(
111
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "FloatConverter.cpp"
112
- ),
113
- os.path.join(NANOARROW_ARROW_ITERATOR_SRC_DIR, "IntConverter.cpp"),
114
- os.path.join(
115
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "StringConverter.cpp"
116
- ),
117
- os.path.join(NANOARROW_ARROW_ITERATOR_SRC_DIR, "TimeConverter.cpp"),
118
- os.path.join(
119
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "TimeStampConverter.cpp"
120
- ),
121
- os.path.join(
122
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "Python", "Common.cpp"
123
- ),
124
- os.path.join(
125
- NANOARROW_ARROW_ITERATOR_SRC_DIR, "Python", "Helpers.cpp"
126
- ),
127
- os.path.join(NANOARROW_ARROW_ITERATOR_SRC_DIR, "Util", "time.cpp"),
128
- NANOARROW_LOGGING_SRC_DIR + "/logging.cpp",
129
- os.path.join(NANOARROW_ARROW_ITERATOR_SRC_DIR, "nanoarrow.c"),
130
- os.path.join(NANOARROW_ARROW_ITERATOR_SRC_DIR, "nanoarrow_ipc.c"),
131
- os.path.join(NANOARROW_ARROW_ITERATOR_SRC_DIR, "flatcc.c"),
93
+ NANOARROW_ARROW_ITERATOR_SRC_DIR,
94
+ *((file,) if isinstance(file, str) else file)
95
+ )
96
+ for file in {
97
+ "BinaryConverter.cpp",
98
+ "BooleanConverter.cpp",
99
+ "CArrowChunkIterator.cpp",
100
+ "CArrowIterator.cpp",
101
+ "CArrowTableIterator.cpp",
102
+ "DateConverter.cpp",
103
+ "DecimalConverter.cpp",
104
+ "FixedSizeListConverter.cpp",
105
+ "FloatConverter.cpp",
106
+ "IntConverter.cpp",
107
+ "SnowflakeType.cpp",
108
+ "StringConverter.cpp",
109
+ "TimeConverter.cpp",
110
+ "TimeStampConverter.cpp",
111
+ "flatcc.c",
112
+ "nanoarrow.c",
113
+ "nanoarrow_ipc.c",
114
+ ("Python", "Common.cpp"),
115
+ ("Python", "Helpers.cpp"),
116
+ ("Util", "time.cpp"),
117
+ }
132
118
  ]
119
+ ext.sources.append(
120
+ os.path.join(NANOARROW_LOGGING_SRC_DIR, "logging.cpp")
121
+ )
133
122
  ext.include_dirs.append(NANOARROW_ARROW_ITERATOR_SRC_DIR)
134
123
  ext.include_dirs.append(NANOARROW_LOGGING_SRC_DIR)
135
124
 
@@ -7,7 +7,7 @@ from __future__ import annotations
7
7
 
8
8
  import decimal
9
9
  import time
10
- from datetime import datetime, timedelta, tzinfo
10
+ from datetime import datetime, timedelta, timezone, tzinfo
11
11
  from logging import getLogger
12
12
  from sys import byteorder
13
13
  from typing import TYPE_CHECKING
@@ -33,7 +33,7 @@ try:
33
33
  except ImportError:
34
34
  tzlocal = None
35
35
 
36
- ZERO_EPOCH = datetime.utcfromtimestamp(0)
36
+ ZERO_EPOCH = datetime.fromtimestamp(0, timezone.utc).replace(tzinfo=None)
37
37
 
38
38
  logger = getLogger(__name__)
39
39
 
@@ -99,7 +99,9 @@ class ArrowConverterContext:
99
99
  return t.replace(tzinfo=tzinfo)
100
100
 
101
101
  def TIMESTAMP_NTZ_to_python(self, epoch: int, microseconds: int) -> datetime:
102
- return datetime.utcfromtimestamp(epoch) + timedelta(microseconds=microseconds)
102
+ return datetime.fromtimestamp(epoch, timezone.utc).replace(
103
+ tzinfo=None
104
+ ) + timedelta(microseconds=microseconds)
103
105
 
104
106
  def TIMESTAMP_NTZ_to_python_windows(
105
107
  self, epoch: int, microseconds: int
@@ -11,7 +11,7 @@ import logging
11
11
  import tempfile
12
12
  import time
13
13
  import uuid
14
- from datetime import datetime
14
+ from datetime import datetime, timezone
15
15
  from os import getenv, makedirs, mkdir, path, remove, removedirs, rmdir
16
16
  from os.path import expanduser
17
17
  from threading import Lock, Thread
@@ -392,7 +392,7 @@ class Auth:
392
392
  "Token expires at: %s. "
393
393
  "Current Time: %s",
394
394
  str(auth_instance._jwt_token_exp),
395
- str(datetime.utcnow()),
395
+ str(datetime.now(timezone.utc).replace(tzinfo=None)),
396
396
  )
397
397
  from . import AuthByUsrPwdMfa
398
398
 
@@ -8,7 +8,7 @@ from __future__ import annotations
8
8
  import base64
9
9
  import hashlib
10
10
  import os
11
- from datetime import datetime, timedelta
11
+ from datetime import datetime, timedelta, timezone
12
12
  from logging import getLogger
13
13
  from typing import Any
14
14
 
@@ -103,7 +103,7 @@ class AuthByKeyPair(AuthByPlugin):
103
103
  account = account.upper()
104
104
  user = user.upper()
105
105
 
106
- now = datetime.utcnow()
106
+ now = datetime.now(timezone.utc).replace(tzinfo=None)
107
107
 
108
108
  if isinstance(self._private_key, bytes):
109
109
  try:
@@ -5,16 +5,18 @@
5
5
 
6
6
  from __future__ import annotations
7
7
 
8
+ import base64
8
9
  import json
9
10
  import logging
10
11
  import os
12
+ import secrets
11
13
  import socket
12
14
  import time
13
15
  import webbrowser
14
16
  from types import ModuleType
15
17
  from typing import TYPE_CHECKING, Any
16
18
 
17
- from ..compat import parse_qs, urlparse, urlsplit
19
+ from ..compat import parse_qs, urlencode, urlparse, urlsplit
18
20
  from ..constants import (
19
21
  HTTP_HEADER_ACCEPT,
20
22
  HTTP_HEADER_CONTENT_TYPE,
@@ -134,10 +136,14 @@ class AuthByWebBrowser(AuthByPlugin):
134
136
  socket_connection.listen(0) # no backlog
135
137
  callback_port = socket_connection.getsockname()[1]
136
138
 
137
- logger.debug("step 1: query GS to obtain SSO url")
138
- sso_url = self._get_sso_url(
139
- conn, authenticator, service_name, account, callback_port, user
140
- )
139
+ if conn._disable_console_login:
140
+ logger.debug("step 1: query GS to obtain SSO url")
141
+ sso_url = self._get_sso_url(
142
+ conn, authenticator, service_name, account, callback_port, user
143
+ )
144
+ else:
145
+ logger.debug("step 1: constructing console login url")
146
+ sso_url = self._get_console_login_url(conn, callback_port, user)
141
147
 
142
148
  logger.debug("Validate SSO URL")
143
149
  if not is_valid_url(sso_url):
@@ -274,15 +280,13 @@ class AuthByWebBrowser(AuthByPlugin):
274
280
  content.append(f"Access-Control-Allow-Origin: {self._origin}")
275
281
  content.append("Vary: Accept-Encoding, Origin")
276
282
  else:
277
- msg = """
283
+ msg = f"""
278
284
  <!DOCTYPE html><html><head><meta charset="UTF-8"/>
279
285
  <title>SAML Response for Snowflake</title></head>
280
286
  <body>
281
- Your identity was confirmed and propagated to Snowflake {}.
287
+ Your identity was confirmed and propagated to Snowflake {self._application}.
282
288
  You can close this window now and go back where you started from.
283
- </body></html>""".format(
284
- self._application
285
- )
289
+ </body></html>"""
286
290
  content.append(f"Content-Length: {len(msg)}")
287
291
  content.append("")
288
292
  content.append(msg)
@@ -415,3 +419,21 @@ You can close this window now and go back where you started from.
415
419
  sso_url = data["ssoUrl"]
416
420
  self._proof_key = data["proofKey"]
417
421
  return sso_url
422
+
423
+ def _get_console_login_url(
424
+ self, conn: SnowflakeConnection, port: int, user: str
425
+ ) -> str:
426
+ self._proof_key = base64.b64encode(secrets.token_bytes(32)).decode("ascii")
427
+ url = (
428
+ conn._rest.server_url
429
+ + "/console/login?"
430
+ + urlencode(
431
+ {
432
+ "login_name": user,
433
+ "browser_mode_redirect_port": port,
434
+ "proof_key": self._proof_key,
435
+ }
436
+ )
437
+ )
438
+ logger.debug(f"Console Log In URL: {url}")
439
+ return url
@@ -7,7 +7,7 @@ from __future__ import annotations
7
7
  import json
8
8
  import os
9
9
  import xml.etree.ElementTree as ET
10
- from datetime import datetime
10
+ from datetime import datetime, timezone
11
11
  from logging import getLogger
12
12
  from random import choice
13
13
  from string import hexdigits
@@ -90,7 +90,7 @@ class SnowflakeAzureRestClient(SnowflakeStorageClient):
90
90
  headers = {}
91
91
 
92
92
  def generate_authenticated_url_and_rest_args() -> tuple[bytes, dict[str, Any]]:
93
- curtime = datetime.utcnow()
93
+ curtime = datetime.now(timezone.utc).replace(tzinfo=None)
94
94
  timestamp = curtime.strftime("YYYY-MM-DD")
95
95
  sas_token = self.credentials.creds["AZURE_SAS_TOKEN"]
96
96
  if sas_token and sas_token.startswith("?"):
@@ -336,7 +336,7 @@ class ConfigManager:
336
336
  ):
337
337
  # for non-Windows, suggest change to 0600 permissions.
338
338
  chmod_message = (
339
- f". To change owner, run `chown $USER {str(filep)}`. To restrict permissions, run `chmod 0600 {str(filep)}`."
339
+ f'.\n * To change owner, run `chown $USER "{str(filep)}"`.\n * To restrict permissions, run `chmod 0600 "{str(filep)}"`.\n'
340
340
  if not IS_WINDOWS
341
341
  else ""
342
342
  )