sqlframe 3.32.1__tar.gz → 3.33.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 (388) hide show
  1. {sqlframe-3.32.1 → sqlframe-3.33.0}/PKG-INFO +1 -1
  2. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/bigquery.md +4 -0
  3. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/duckdb.md +1 -0
  4. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/snowflake.md +1 -0
  5. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/_version.py +2 -2
  6. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/column.py +4 -0
  7. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/function_alternatives.py +0 -11
  8. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/functions.py +5 -36
  9. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/session.py +4 -1
  10. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/PKG-INFO +1 -1
  11. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_dataframe.py +4 -4
  12. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/spark/test_spark_dataframe.py +4 -4
  13. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_column.py +20 -0
  14. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_int_functions.py +15 -3
  15. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_column.py +4 -0
  16. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_functions.py +2 -2
  17. {sqlframe-3.32.1 → sqlframe-3.33.0}/.github/CODEOWNERS +0 -0
  18. {sqlframe-3.32.1 → sqlframe-3.33.0}/.github/workflows/main.workflow.yaml +0 -0
  19. {sqlframe-3.32.1 → sqlframe-3.33.0}/.github/workflows/publish.workflow.yaml +0 -0
  20. {sqlframe-3.32.1 → sqlframe-3.33.0}/.gitignore +0 -0
  21. {sqlframe-3.32.1 → sqlframe-3.33.0}/.pre-commit-config.yaml +0 -0
  22. {sqlframe-3.32.1 → sqlframe-3.33.0}/.readthedocs.yaml +0 -0
  23. {sqlframe-3.32.1 → sqlframe-3.33.0}/LICENSE +0 -0
  24. {sqlframe-3.32.1 → sqlframe-3.33.0}/Makefile +0 -0
  25. {sqlframe-3.32.1 → sqlframe-3.33.0}/README.md +0 -0
  26. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/add_chatgpt_support.md +0 -0
  27. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
  28. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
  29. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
  30. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
  31. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
  32. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
  33. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
  34. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
  35. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/but_wait_theres_more.gif +0 -0
  36. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/cake.gif +0 -0
  37. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/you_get_pyspark_api.gif +0 -0
  38. {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/sqlframe_universal_dataframe_api.md +0 -0
  39. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/configuration.md +0 -0
  40. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/databricks.md +0 -0
  41. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/bigquery.md +0 -0
  42. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/duckdb.md +0 -0
  43. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/images/SF.png +0 -0
  44. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/images/favicon.png +0 -0
  45. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/images/sqlframe_logo.png +0 -0
  46. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/postgres.md +0 -0
  47. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/images/SF.png +0 -0
  48. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/images/favicon.png +0 -0
  49. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/images/sqlframe_logo.png +0 -0
  50. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/index.md +0 -0
  51. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/postgres.md +0 -0
  52. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/redshift.md +0 -0
  53. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/requirements.txt +0 -0
  54. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/spark.md +0 -0
  55. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/standalone.md +0 -0
  56. {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/stylesheets/extra.css +0 -0
  57. {sqlframe-3.32.1 → sqlframe-3.33.0}/mkdocs.yml +0 -0
  58. {sqlframe-3.32.1 → sqlframe-3.33.0}/pytest.ini +0 -0
  59. {sqlframe-3.32.1 → sqlframe-3.33.0}/renovate.json +0 -0
  60. {sqlframe-3.32.1 → sqlframe-3.33.0}/setup.cfg +0 -0
  61. {sqlframe-3.32.1 → sqlframe-3.33.0}/setup.py +0 -0
  62. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/LICENSE +0 -0
  63. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/__init__.py +0 -0
  64. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/__init__.py +0 -0
  65. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/_typing.py +0 -0
  66. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/catalog.py +0 -0
  67. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/dataframe.py +0 -0
  68. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/decorators.py +0 -0
  69. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/exceptions.py +0 -0
  70. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/group.py +0 -0
  71. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/__init__.py +0 -0
  72. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/catalog_mixins.py +0 -0
  73. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
  74. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
  75. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/table_mixins.py +0 -0
  76. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/normalize.py +0 -0
  77. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/operations.py +0 -0
  78. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/readerwriter.py +0 -0
  79. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/table.py +0 -0
  80. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/transforms.py +0 -0
  81. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/types.py +0 -0
  82. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/udf.py +0 -0
  83. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/util.py +0 -0
  84. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/window.py +0 -0
  85. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/__init__.py +0 -0
  86. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/catalog.py +0 -0
  87. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/column.py +0 -0
  88. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/dataframe.py +0 -0
  89. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/functions.py +0 -0
  90. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/functions.pyi +0 -0
  91. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/group.py +0 -0
  92. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/readwriter.py +0 -0
  93. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/session.py +0 -0
  94. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/table.py +0 -0
  95. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/types.py +0 -0
  96. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/udf.py +0 -0
  97. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/window.py +0 -0
  98. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/__init__.py +0 -0
  99. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/catalog.py +0 -0
  100. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/column.py +0 -0
  101. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/dataframe.py +0 -0
  102. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/functions.py +0 -0
  103. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/functions.pyi +0 -0
  104. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/group.py +0 -0
  105. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/readwriter.py +0 -0
  106. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/session.py +0 -0
  107. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/table.py +0 -0
  108. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/types.py +0 -0
  109. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/udf.py +0 -0
  110. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/window.py +0 -0
  111. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/__init__.py +0 -0
  112. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/catalog.py +0 -0
  113. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/column.py +0 -0
  114. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/dataframe.py +0 -0
  115. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/functions.py +0 -0
  116. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/functions.pyi +0 -0
  117. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/group.py +0 -0
  118. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/readwriter.py +0 -0
  119. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/session.py +0 -0
  120. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/table.py +0 -0
  121. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/types.py +0 -0
  122. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/udf.py +0 -0
  123. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/window.py +0 -0
  124. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/__init__.py +0 -0
  125. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/catalog.py +0 -0
  126. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/column.py +0 -0
  127. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/dataframe.py +0 -0
  128. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/functions.py +0 -0
  129. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/functions.pyi +0 -0
  130. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/group.py +0 -0
  131. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/readwriter.py +0 -0
  132. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/session.py +0 -0
  133. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/table.py +0 -0
  134. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/types.py +0 -0
  135. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/udf.py +0 -0
  136. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/window.py +0 -0
  137. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/py.typed +0 -0
  138. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/__init__.py +0 -0
  139. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/catalog.py +0 -0
  140. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/column.py +0 -0
  141. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/dataframe.py +0 -0
  142. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/functions.py +0 -0
  143. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/group.py +0 -0
  144. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/readwriter.py +0 -0
  145. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/session.py +0 -0
  146. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/table.py +0 -0
  147. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/types.py +0 -0
  148. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/udf.py +0 -0
  149. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/window.py +0 -0
  150. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/__init__.py +0 -0
  151. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/catalog.py +0 -0
  152. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/column.py +0 -0
  153. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/dataframe.py +0 -0
  154. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/functions.py +0 -0
  155. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/functions.pyi +0 -0
  156. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/group.py +0 -0
  157. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/readwriter.py +0 -0
  158. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/session.py +0 -0
  159. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/table.py +0 -0
  160. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/types.py +0 -0
  161. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/udf.py +0 -0
  162. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/window.py +0 -0
  163. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/__init__.py +0 -0
  164. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/catalog.py +0 -0
  165. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/column.py +0 -0
  166. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/dataframe.py +0 -0
  167. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/functions.py +0 -0
  168. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/functions.pyi +0 -0
  169. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/group.py +0 -0
  170. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/readwriter.py +0 -0
  171. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/session.py +0 -0
  172. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/table.py +0 -0
  173. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/types.py +0 -0
  174. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/udf.py +0 -0
  175. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/window.py +0 -0
  176. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/__init__.py +0 -0
  177. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/catalog.py +0 -0
  178. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/column.py +0 -0
  179. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/dataframe.py +0 -0
  180. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/functions.py +0 -0
  181. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/group.py +0 -0
  182. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/readwriter.py +0 -0
  183. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/session.py +0 -0
  184. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/table.py +0 -0
  185. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/types.py +0 -0
  186. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/udf.py +0 -0
  187. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/window.py +0 -0
  188. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/testing/__init__.py +0 -0
  189. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/testing/utils.py +0 -0
  190. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/SOURCES.txt +0 -0
  191. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/dependency_links.txt +0 -0
  192. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/requires.txt +0 -0
  193. {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/top_level.txt +0 -0
  194. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/__init__.py +0 -0
  195. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/common_fixtures.py +0 -0
  196. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/conftest.py +0 -0
  197. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee.csv +0 -0
  198. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee.json +0 -0
  199. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee.parquet +0 -0
  200. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
  201. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
  202. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
  203. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
  204. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
  205. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
  206. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
  207. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
  208. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
  209. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
  210. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
  211. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
  212. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
  213. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
  214. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_extra_line.csv +0 -0
  215. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/issue_219.csv +0 -0
  216. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds1.sql +0 -0
  217. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds10.sql +0 -0
  218. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds11.sql +0 -0
  219. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds12.sql +0 -0
  220. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds13.sql +0 -0
  221. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds14.sql +0 -0
  222. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds15.sql +0 -0
  223. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds16.sql +0 -0
  224. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds17.sql +0 -0
  225. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds18.sql +0 -0
  226. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds19.sql +0 -0
  227. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds2.sql +0 -0
  228. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds20.sql +0 -0
  229. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds21.sql +0 -0
  230. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds22.sql +0 -0
  231. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds23.sql +0 -0
  232. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds24.sql +0 -0
  233. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds25.sql +0 -0
  234. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds26.sql +0 -0
  235. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds27.sql +0 -0
  236. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds28.sql +0 -0
  237. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds29.sql +0 -0
  238. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds3.sql +0 -0
  239. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds30.sql +0 -0
  240. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds31.sql +0 -0
  241. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds32.sql +0 -0
  242. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds33.sql +0 -0
  243. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds34.sql +0 -0
  244. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds35.sql +0 -0
  245. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds36.sql +0 -0
  246. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds37.sql +0 -0
  247. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds38.sql +0 -0
  248. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds39.sql +0 -0
  249. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds4.sql +0 -0
  250. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds40.sql +0 -0
  251. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds41.sql +0 -0
  252. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds42.sql +0 -0
  253. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds43.sql +0 -0
  254. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds44.sql +0 -0
  255. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds45.sql +0 -0
  256. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds46.sql +0 -0
  257. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds47.sql +0 -0
  258. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds48.sql +0 -0
  259. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds49.sql +0 -0
  260. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds5.sql +0 -0
  261. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds50.sql +0 -0
  262. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds51.sql +0 -0
  263. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds52.sql +0 -0
  264. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds53.sql +0 -0
  265. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds54.sql +0 -0
  266. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds55.sql +0 -0
  267. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds56.sql +0 -0
  268. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds57.sql +0 -0
  269. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds58.sql +0 -0
  270. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds59.sql +0 -0
  271. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds6.sql +0 -0
  272. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds60.sql +0 -0
  273. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds61.sql +0 -0
  274. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds62.sql +0 -0
  275. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds63.sql +0 -0
  276. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds64.sql +0 -0
  277. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds65.sql +0 -0
  278. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds66.sql +0 -0
  279. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds67.sql +0 -0
  280. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds68.sql +0 -0
  281. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds69.sql +0 -0
  282. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds7.sql +0 -0
  283. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds70.sql +0 -0
  284. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds71.sql +0 -0
  285. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds72.sql +0 -0
  286. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds73.sql +0 -0
  287. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds74.sql +0 -0
  288. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds75.sql +0 -0
  289. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds76.sql +0 -0
  290. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds77.sql +0 -0
  291. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds78.sql +0 -0
  292. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds79.sql +0 -0
  293. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds8.sql +0 -0
  294. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds80.sql +0 -0
  295. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds81.sql +0 -0
  296. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds82.sql +0 -0
  297. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds83.sql +0 -0
  298. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds84.sql +0 -0
  299. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds85.sql +0 -0
  300. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds86.sql +0 -0
  301. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds87.sql +0 -0
  302. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds88.sql +0 -0
  303. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds89.sql +0 -0
  304. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds9.sql +0 -0
  305. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds90.sql +0 -0
  306. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds91.sql +0 -0
  307. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds92.sql +0 -0
  308. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds93.sql +0 -0
  309. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds94.sql +0 -0
  310. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds95.sql +0 -0
  311. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds96.sql +0 -0
  312. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds97.sql +0 -0
  313. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds98.sql +0 -0
  314. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds99.sql +0 -0
  315. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/__init__.py +0 -0
  316. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/__init__.py +0 -0
  317. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/bigquery/__init__.py +0 -0
  318. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
  319. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
  320. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
  321. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/databricks/__init__.py +0 -0
  322. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
  323. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
  324. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
  325. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/__init__.py +0 -0
  326. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
  327. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
  328. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
  329. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
  330. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
  331. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_tpcds.py +0 -0
  332. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/__init__.py +0 -0
  333. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
  334. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
  335. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
  336. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
  337. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/redshift/__init__.py +0 -0
  338. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
  339. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
  340. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/snowflake/__init__.py +0 -0
  341. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
  342. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
  343. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
  344. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/spark/__init__.py +0 -0
  345. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
  346. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_dataframe.py +0 -0
  347. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_reader.py +0 -0
  348. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_session.py +0 -0
  349. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_table.py +0 -0
  350. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_writer.py +0 -0
  351. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_int_testing.py +0 -0
  352. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/fixtures.py +0 -0
  353. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/test_int_dataframe.py +0 -0
  354. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/test_int_dataframe_stats.py +0 -0
  355. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/test_int_grouped_data.py +0 -0
  356. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/test_int_session.py +0 -0
  357. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/types.py +0 -0
  358. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/__init__.py +0 -0
  359. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/bigquery/__init__.py +0 -0
  360. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/bigquery/test_activate.py +0 -0
  361. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/conftest.py +0 -0
  362. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/databricks/__init__.py +0 -0
  363. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/databricks/test_activate.py +0 -0
  364. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/duck/__init__.py +0 -0
  365. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/duck/test_activate.py +0 -0
  366. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/duck/test_reader_options.py +0 -0
  367. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/postgres/__init__.py +0 -0
  368. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/postgres/test_activate.py +0 -0
  369. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/redshift/__init__.py +0 -0
  370. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/redshift/test_activate.py +0 -0
  371. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/snowflake/__init__.py +0 -0
  372. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/snowflake/test_activate.py +0 -0
  373. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/spark/__init__.py +0 -0
  374. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/spark/test_activate.py +0 -0
  375. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/spark/test_reader_options.py +0 -0
  376. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/__init__.py +0 -0
  377. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/fixtures.py +0 -0
  378. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_activate.py +0 -0
  379. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_dataframe.py +0 -0
  380. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_dataframe_writer.py +0 -0
  381. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_session.py +0 -0
  382. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
  383. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_types.py +0 -0
  384. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_window.py +0 -0
  385. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/test_activate.py +0 -0
  386. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/test_base_reader_options.py +0 -0
  387. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/test_catalog.py +0 -0
  388. {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/test_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sqlframe
3
- Version: 3.32.1
3
+ Version: 3.33.0
4
4
  Summary: Turning PySpark Into a Universal DataFrame API
5
5
  Home-page: https://github.com/eakmanrq/sqlframe
6
6
  Author: Ryan Eakman
@@ -219,6 +219,8 @@ See something that you would like to see supported? [Open an issue](https://gith
219
219
  * [asc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.asc_nulls_last.html)
220
220
  * [between](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.between.html)
221
221
  * [cast](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.cast.html)
222
+ * [contains](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.contains.html)
223
+ * The argument to `contains` must be a string
222
224
  * [desc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc.html)
223
225
  * [desc_nulls_first](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_first.html)
224
226
  * [desc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_last.html)
@@ -351,6 +353,8 @@ See something that you would like to see supported? [Open an issue](https://gith
351
353
  * [concat](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.concat.html)
352
354
  * Only works on strings (does not work on arrays)
353
355
  * [concat_ws](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.concat_ws.html)
356
+ * [contains](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.contains.html)
357
+ * The argument to `contains` must be a string
354
358
  * [corr](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.corr.html)
355
359
  * [cos](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.cos.html)
356
360
  * [cosh](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.cosh.html)
@@ -183,6 +183,7 @@ See something that you would like to see supported? [Open an issue](https://gith
183
183
  * [asc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.asc_nulls_last.html)
184
184
  * [between](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.between.html)
185
185
  * [cast](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.cast.html)
186
+ * [contains](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.contains.html)
186
187
  * [desc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc.html)
187
188
  * [desc_nulls_first](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_first.html)
188
189
  * [desc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_last.html)
@@ -215,6 +215,7 @@ See something that you would like to see supported? [Open an issue](https://gith
215
215
  * [asc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.asc_nulls_last.html)
216
216
  * [between](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.between.html)
217
217
  * [cast](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.cast.html)
218
+ * [contains](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.contains.html)
218
219
  * [desc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc.html)
219
220
  * [desc_nulls_first](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_first.html)
220
221
  * [desc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_last.html)
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '3.32.1'
21
- __version_tuple__ = version_tuple = (3, 32, 1)
20
+ __version__ = version = '3.33.0'
21
+ __version_tuple__ = version_tuple = (3, 33, 0)
@@ -517,3 +517,7 @@ class Column:
517
517
  +---+
518
518
  """
519
519
  return self.getItem(name)
520
+
521
+ def contains(self, value: t.Union[str, Column]) -> Column:
522
+ value = self._lit(value) if not isinstance(value, Column) else value
523
+ return self.invoke_expression_over_column(self, exp.Contains, expression=value.expression)
@@ -78,17 +78,6 @@ def to_timestamp_tz(col: ColumnOrName, format: t.Optional[str] = None) -> Column
78
78
  return Column.ensure_col(col).cast("timestamptz", dialect="duckdb")
79
79
 
80
80
 
81
- def to_timestamp_just_timestamp(col: ColumnOrName, format: t.Optional[str] = None) -> Column:
82
- from sqlframe.base.session import _BaseSession
83
-
84
- if format is not None:
85
- return Column.invoke_expression_over_column(
86
- col, expression.StrToTime, format=_BaseSession().format_time(format)
87
- )
88
-
89
- return Column.ensure_col(col).cast("datetime", dialect="bigquery")
90
-
91
-
92
81
  def bitwise_not_from_bitnot(col: ColumnOrName) -> Column:
93
82
  return Column.invoke_anonymous_function(col, "BITNOT")
94
83
 
@@ -1356,7 +1356,6 @@ def to_date(col: ColumnOrName, format: t.Optional[str] = None) -> Column:
1356
1356
  @meta()
1357
1357
  def to_timestamp(col: ColumnOrName, format: t.Optional[str] = None) -> Column:
1358
1358
  from sqlframe.base.function_alternatives import (
1359
- to_timestamp_just_timestamp,
1360
1359
  to_timestamp_tz,
1361
1360
  to_timestamp_with_time_zone,
1362
1361
  )
@@ -1366,9 +1365,6 @@ def to_timestamp(col: ColumnOrName, format: t.Optional[str] = None) -> Column:
1366
1365
  if session._is_duckdb:
1367
1366
  return to_timestamp_tz(col, format)
1368
1367
 
1369
- if session._is_bigquery:
1370
- return to_timestamp_just_timestamp(col, format)
1371
-
1372
1368
  if session._is_postgres:
1373
1369
  return to_timestamp_with_time_zone(col, format)
1374
1370
 
@@ -3068,7 +3064,7 @@ def character_length(str: ColumnOrName) -> Column:
3068
3064
  return Column.invoke_expression_over_column(str, expression.Length)
3069
3065
 
3070
3066
 
3071
- @meta(unsupported_engines=["bigquery", "postgres"])
3067
+ @meta(unsupported_engines=["postgres"])
3072
3068
  def contains(left: ColumnOrName, right: ColumnOrName) -> Column:
3073
3069
  return Column.invoke_expression_over_column(
3074
3070
  left, expression.Contains, expression=Column.ensure_col(right).column_expression
@@ -6594,27 +6590,16 @@ def unix_micros(col: ColumnOrName) -> Column:
6594
6590
  """
6595
6591
  from sqlframe.base.function_alternatives import unix_micros_multiply_epoch
6596
6592
 
6593
+ to_timestamp = get_func_from_session("to_timestamp")
6594
+
6597
6595
  if _get_session()._is_duckdb:
6598
6596
  return Column.invoke_anonymous_function(col, "epoch_us")
6599
6597
 
6600
- if _get_session()._is_bigquery:
6601
- return Column(
6602
- expression.Anonymous(
6603
- this="UNIX_MICROS",
6604
- expressions=[
6605
- expression.Anonymous(
6606
- this="TIMESTAMP",
6607
- expressions=[
6608
- Column.ensure_col(col).column_expression,
6609
- ],
6610
- )
6611
- ],
6612
- )
6613
- )
6614
-
6615
6598
  if _get_session()._is_postgres or _get_session()._is_snowflake:
6616
6599
  return unix_micros_multiply_epoch(col)
6617
6600
 
6601
+ col = to_timestamp(col)
6602
+
6618
6603
  return Column.invoke_anonymous_function(col, "unix_micros")
6619
6604
 
6620
6605
 
@@ -6666,22 +6651,6 @@ def unix_seconds(col: ColumnOrName) -> Column:
6666
6651
  if _get_session()._is_postgres:
6667
6652
  return unix_seconds_extract_epoch(col)
6668
6653
 
6669
- if _get_session()._is_bigquery:
6670
- return Column(
6671
- expression.Anonymous(
6672
- this="UNIX_SECONDS",
6673
- expressions=[
6674
- expression.Anonymous(
6675
- this="TIMESTAMP",
6676
- expressions=[
6677
- Column.ensure_col(col).column_expression,
6678
- expression.Literal.string("UTC"),
6679
- ],
6680
- )
6681
- ],
6682
- )
6683
- )
6684
-
6685
6654
  return Column.invoke_expression_over_column(col, expression.UnixSeconds)
6686
6655
 
6687
6656
 
@@ -304,7 +304,10 @@ class _BaseSession(t.Generic[CATALOG, READER, WRITER, DF, TABLE, CONN, UDF_REGIS
304
304
  elif isinstance(value, float):
305
305
  return "double"
306
306
  elif isinstance(value, datetime.datetime):
307
- return "timestamp"
307
+ if value.tzinfo:
308
+ # Spark defaults `timestamp` to be a timestamp with timezone
309
+ return "timestamp"
310
+ return "timestampntz"
308
311
  elif isinstance(value, datetime.date):
309
312
  return "date"
310
313
  elif isinstance(value, str):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sqlframe
3
- Version: 3.32.1
3
+ Version: 3.33.0
4
4
  Summary: Turning PySpark Into a Universal DataFrame API
5
5
  Home-page: https://github.com/eakmanrq/sqlframe
6
6
  Author: Ryan Eakman
@@ -35,7 +35,7 @@ def duckdb_datatypes(duckdb_session: DuckDBSession) -> DuckDBDataFrame:
35
35
  "array<bigint>_col",
36
36
  "struct<a:bigint>_col",
37
37
  "date_col",
38
- "timestamp_col",
38
+ "timestampntz_col",
39
39
  "timestamptz_col",
40
40
  "boolean_col",
41
41
  ],
@@ -79,7 +79,7 @@ root
79
79
  |-- struct<a:bigint>_col: struct<a: bigint> (nullable = true)
80
80
  | |-- a: bigint (nullable = true)
81
81
  |-- date_col: date (nullable = true)
82
- |-- timestamp_col: timestamp (nullable = true)
82
+ |-- timestampntz_col: timestamp_ntz (nullable = true)
83
83
  |-- timestamptz_col: timestamp (nullable = true)
84
84
  |-- boolean_col: boolean (nullable = true)""".strip()
85
85
  )
@@ -157,8 +157,8 @@ def test_schema_nested(duckdb_datatypes: DuckDBDataFrame):
157
157
  )
158
158
  assert struct_fields[7].name == "date_col"
159
159
  assert struct_fields[7].dataType == types.DateType()
160
- assert struct_fields[8].name == "timestamp_col"
161
- assert struct_fields[8].dataType == types.TimestampType()
160
+ assert struct_fields[8].name == "timestampntz_col"
161
+ assert struct_fields[8].dataType == types.TimestampNTZType()
162
162
  assert struct_fields[9].name == "timestamptz_col"
163
163
  assert struct_fields[9].dataType == types.TimestampType()
164
164
  assert struct_fields[10].name == "boolean_col"
@@ -35,7 +35,7 @@ def spark_datatypes(spark_session: SparkSession) -> SparkDataFrame:
35
35
  "array<bigint>_col",
36
36
  "struct<a:bigint>_col",
37
37
  "date_col",
38
- "timestamp_col",
38
+ "timestampntz_col",
39
39
  "timestamptz_col",
40
40
  "boolean_col",
41
41
  ],
@@ -79,7 +79,7 @@ root
79
79
  |-- struct<a:bigint>_col: struct<a: bigint> (nullable = false)
80
80
  | |-- a: bigint (nullable = true)
81
81
  |-- date_col: date (nullable = true)
82
- |-- timestamp_col: timestamp (nullable = true)
82
+ |-- timestampntz_col: timestamp_ntz (nullable = true)
83
83
  |-- timestamptz_col: timestamp (nullable = true)
84
84
  |-- boolean_col: boolean (nullable = false)""".strip()
85
85
  )
@@ -157,8 +157,8 @@ def test_schema_nested(spark_datatypes: SparkDataFrame):
157
157
  )
158
158
  assert struct_fields[7].name == "date_col"
159
159
  assert struct_fields[7].dataType == types.DateType()
160
- assert struct_fields[8].name == "timestamp_col"
161
- assert struct_fields[8].dataType == types.TimestampType()
160
+ assert struct_fields[8].name == "timestampntz_col"
161
+ assert struct_fields[8].dataType == types.TimestampNTZType()
162
162
  assert struct_fields[9].name == "timestamptz_col"
163
163
  assert struct_fields[9].dataType == types.TimestampType()
164
164
  assert struct_fields[10].name == "boolean_col"
@@ -68,3 +68,23 @@ def test_column_get_field_struct(get_session: t.Callable[[], _BaseSession]):
68
68
  result3 = df.select(df.r.a.alias("a_dot")).collect()
69
69
  assert result3[0][0] == 1
70
70
  assert result3[1][0] == 2
71
+
72
+
73
+ def test_contains(get_session: t.Callable[[], _BaseSession], get_func):
74
+ session = get_session()
75
+ if session._is_postgres:
76
+ pytest.skip("Postgres does not support the contains function")
77
+ lit = get_func("lit", session)
78
+ df = session.createDataFrame([Row(a="foo"), Row(a="bar")])
79
+ df_foo = df.select(df.a.contains("foo")).collect()
80
+ assert df_foo[0][0] is True
81
+ assert df_foo[1][0] is False
82
+ df_foo_lit = df.select(df.a.contains(lit("foo"))).collect()
83
+ assert df_foo_lit[0][0] is True
84
+ assert df_foo_lit[1][0] is False
85
+ df_bar = df.select(df.a.contains("bar")).collect()
86
+ assert df_bar[0][0] is False
87
+ assert df_bar[1][0] is True
88
+ df_bar_lit = df.select(df.a.contains(lit("bar"))).collect()
89
+ assert df_bar_lit[0][0] is False
90
+ assert df_bar_lit[1][0] is True
@@ -172,7 +172,7 @@ def test_col(get_session_and_func, input, output):
172
172
  ([1, 2, 3], "array<bigint>"),
173
173
  (Row(a=1), "struct<a:bigint>"),
174
174
  (datetime.date(2022, 1, 1), "date"),
175
- (datetime.datetime(2022, 1, 1, 0, 0, 0), "timestamptz"),
175
+ (datetime.datetime(2022, 1, 1, 0, 0, 0), "timestampntz"),
176
176
  (datetime.datetime(2022, 1, 1, 0, 0, 0, tzinfo=datetime.timezone.utc), "timestamptz"),
177
177
  (True, "boolean"),
178
178
  (bytes("test", "utf-8"), "binary"),
@@ -188,9 +188,15 @@ def test_typeof(get_session_and_func, get_types, arg, expected):
188
188
  if isinstance(session, PySparkSession)
189
189
  else dialect_to_string(session.execution_dialect)
190
190
  )
191
- if isinstance(session, (SparkSession, PySparkSession, DatabricksSession)):
191
+ if isinstance(session, (SparkSession, PySparkSession, DatabricksSession, BigQuerySession)):
192
192
  if expected == "timestamptz":
193
193
  expected = "timestamp"
194
+ if isinstance(session, PostgresSession):
195
+ if expected == "timestampntz":
196
+ expected = "timestamp"
197
+ if isinstance(session, BigQuerySession):
198
+ if expected == "timestampntz":
199
+ expected = "datetime"
194
200
  if isinstance(session, DuckDBSession):
195
201
  if expected == "binary":
196
202
  pytest.skip("DuckDB doesn't support binary")
@@ -218,6 +224,10 @@ def test_typeof(get_session_and_func, get_types, arg, expected):
218
224
  expected = "object"
219
225
  elif expected.startswith("array"):
220
226
  pytest.skip("Snowflake doesn't handle arrays properly in values clause")
227
+ # https://github.com/eakmanrq/sqlframe/issues/383#issuecomment-2870750972
228
+ if isinstance(session, PySparkSession):
229
+ if expected == "timestampntz":
230
+ expected = "timestamp"
221
231
  result = df.select(typeof("col").alias("test")).first()[0]
222
232
  assert exp.DataType.build(result, dialect=dialect) == exp.DataType.build(
223
233
  expected, dialect=dialect
@@ -3505,9 +3515,11 @@ def test_character_length(get_session_and_func, get_func):
3505
3515
 
3506
3516
  def test_contains(get_session_and_func, get_func):
3507
3517
  session, contains = get_session_and_func("contains")
3508
- to_binary = get_func("to_binary", session)
3518
+ if isinstance(session, BigQuerySession):
3519
+ pytest.skip("BigQuery just supports constaints for the contains function")
3509
3520
  df = session.createDataFrame([("Spark SQL", "Spark")], ["a", "b"])
3510
3521
  assert df.select(contains(df.a, df.b).alias("r")).collect() == [Row(r=True)]
3522
+ to_binary = get_func("to_binary", session)
3511
3523
  df = session.createDataFrame(
3512
3524
  [
3513
3525
  (
@@ -228,3 +228,7 @@ def test_over():
228
228
 
229
229
  def test_get_item():
230
230
  assert F.col("cola").getItem(1).sql() == "ELEMENT_AT(cola, (1 + 1)) AS element_at__cola__"
231
+
232
+
233
+ def test_contains():
234
+ assert F.col("cola").contains("foo").sql() == "CONTAINS(cola, 'foo')"
@@ -4701,8 +4701,8 @@ def test_unix_date(expression, expected):
4701
4701
  @pytest.mark.parametrize(
4702
4702
  "expression, expected",
4703
4703
  [
4704
- (SF.unix_micros("cola"), "UNIX_MICROS(cola)"),
4705
- (SF.unix_micros(SF.col("cola")), "UNIX_MICROS(cola)"),
4704
+ (SF.unix_micros("cola"), "UNIX_MICROS(CAST(cola AS TIMESTAMP_LTZ))"),
4705
+ (SF.unix_micros(SF.col("cola")), "UNIX_MICROS(CAST(cola AS TIMESTAMP_LTZ))"),
4706
4706
  ],
4707
4707
  )
4708
4708
  def test_unix_micros(expression, expected):
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes