sqlframe 3.41.0__tar.gz → 3.43.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 (390) hide show
  1. {sqlframe-3.41.0 → sqlframe-3.43.0}/PKG-INFO +1 -1
  2. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/bigquery.md +1 -0
  3. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/duckdb.md +4 -0
  4. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/snowflake.md +1 -0
  5. sqlframe-3.43.0/mypy.ini +13 -0
  6. {sqlframe-3.41.0 → sqlframe-3.43.0}/setup.py +3 -3
  7. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/_version.py +3 -3
  8. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/dataframe.py +27 -3
  9. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/functions.py +34 -13
  10. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/session.py +1 -1
  11. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/dataframe.py +1 -1
  12. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe.egg-info/PKG-INFO +1 -1
  13. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe.egg-info/SOURCES.txt +1 -0
  14. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe.egg-info/requires.txt +3 -3
  15. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/duck/test_duckdb_dataframe.py +1 -1
  16. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/duck/test_duckdb_session.py +1 -1
  17. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/test_int_dataframe.py +67 -0
  18. {sqlframe-3.41.0 → sqlframe-3.43.0}/.github/CODEOWNERS +0 -0
  19. {sqlframe-3.41.0 → sqlframe-3.43.0}/.github/workflows/main.workflow.yaml +0 -0
  20. {sqlframe-3.41.0 → sqlframe-3.43.0}/.github/workflows/publish.workflow.yaml +0 -0
  21. {sqlframe-3.41.0 → sqlframe-3.43.0}/.gitignore +0 -0
  22. {sqlframe-3.41.0 → sqlframe-3.43.0}/.pre-commit-config.yaml +0 -0
  23. {sqlframe-3.41.0 → sqlframe-3.43.0}/.readthedocs.yaml +0 -0
  24. {sqlframe-3.41.0 → sqlframe-3.43.0}/LICENSE +0 -0
  25. {sqlframe-3.41.0 → sqlframe-3.43.0}/Makefile +0 -0
  26. {sqlframe-3.41.0 → sqlframe-3.43.0}/README.md +0 -0
  27. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/add_chatgpt_support.md +0 -0
  28. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
  29. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
  30. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
  31. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
  32. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
  33. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
  34. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
  35. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
  36. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/but_wait_theres_more.gif +0 -0
  37. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/cake.gif +0 -0
  38. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/images/you_get_pyspark_api.gif +0 -0
  39. {sqlframe-3.41.0 → sqlframe-3.43.0}/blogs/sqlframe_universal_dataframe_api.md +0 -0
  40. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/configuration.md +0 -0
  41. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/databricks.md +0 -0
  42. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/docs/bigquery.md +0 -0
  43. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/docs/duckdb.md +0 -0
  44. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/docs/images/SF.png +0 -0
  45. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/docs/images/favicon.png +0 -0
  46. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/docs/images/sqlframe_logo.png +0 -0
  47. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/docs/postgres.md +0 -0
  48. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/images/SF.png +0 -0
  49. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/images/favicon.png +0 -0
  50. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/images/sqlframe_logo.png +0 -0
  51. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/index.md +0 -0
  52. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/postgres.md +0 -0
  53. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/redshift.md +0 -0
  54. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/requirements.txt +0 -0
  55. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/spark.md +0 -0
  56. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/standalone.md +0 -0
  57. {sqlframe-3.41.0 → sqlframe-3.43.0}/docs/stylesheets/extra.css +0 -0
  58. {sqlframe-3.41.0 → sqlframe-3.43.0}/mkdocs.yml +0 -0
  59. {sqlframe-3.41.0 → sqlframe-3.43.0}/pytest.ini +0 -0
  60. {sqlframe-3.41.0 → sqlframe-3.43.0}/renovate.json +0 -0
  61. {sqlframe-3.41.0 → sqlframe-3.43.0}/setup.cfg +0 -0
  62. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/LICENSE +0 -0
  63. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/__init__.py +0 -0
  64. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/__init__.py +0 -0
  65. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/_typing.py +0 -0
  66. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/catalog.py +0 -0
  67. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/column.py +0 -0
  68. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/decorators.py +0 -0
  69. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/exceptions.py +0 -0
  70. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/function_alternatives.py +0 -0
  71. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/group.py +0 -0
  72. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/mixins/__init__.py +0 -0
  73. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/mixins/catalog_mixins.py +0 -0
  74. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
  75. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
  76. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/mixins/table_mixins.py +0 -0
  77. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/normalize.py +0 -0
  78. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/operations.py +0 -0
  79. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/readerwriter.py +0 -0
  80. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/table.py +0 -0
  81. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/transforms.py +0 -0
  82. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/types.py +0 -0
  83. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/udf.py +0 -0
  84. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/util.py +0 -0
  85. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/base/window.py +0 -0
  86. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/__init__.py +0 -0
  87. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/catalog.py +0 -0
  88. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/column.py +0 -0
  89. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/dataframe.py +0 -0
  90. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/functions.py +0 -0
  91. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/functions.pyi +0 -0
  92. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/group.py +0 -0
  93. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/readwriter.py +0 -0
  94. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/session.py +0 -0
  95. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/table.py +0 -0
  96. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/types.py +0 -0
  97. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/udf.py +0 -0
  98. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/bigquery/window.py +0 -0
  99. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/__init__.py +0 -0
  100. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/catalog.py +0 -0
  101. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/column.py +0 -0
  102. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/dataframe.py +0 -0
  103. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/functions.py +0 -0
  104. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/functions.pyi +0 -0
  105. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/group.py +0 -0
  106. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/readwriter.py +0 -0
  107. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/session.py +0 -0
  108. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/table.py +0 -0
  109. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/types.py +0 -0
  110. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/udf.py +0 -0
  111. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/databricks/window.py +0 -0
  112. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/__init__.py +0 -0
  113. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/catalog.py +0 -0
  114. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/column.py +0 -0
  115. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/functions.py +0 -0
  116. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/functions.pyi +0 -0
  117. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/group.py +0 -0
  118. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/readwriter.py +0 -0
  119. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/session.py +0 -0
  120. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/table.py +0 -0
  121. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/types.py +0 -0
  122. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/udf.py +0 -0
  123. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/duckdb/window.py +0 -0
  124. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/__init__.py +0 -0
  125. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/catalog.py +0 -0
  126. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/column.py +0 -0
  127. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/dataframe.py +0 -0
  128. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/functions.py +0 -0
  129. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/functions.pyi +0 -0
  130. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/group.py +0 -0
  131. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/readwriter.py +0 -0
  132. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/session.py +0 -0
  133. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/table.py +0 -0
  134. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/types.py +0 -0
  135. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/udf.py +0 -0
  136. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/postgres/window.py +0 -0
  137. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/py.typed +0 -0
  138. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/__init__.py +0 -0
  139. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/catalog.py +0 -0
  140. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/column.py +0 -0
  141. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/dataframe.py +0 -0
  142. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/functions.py +0 -0
  143. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/group.py +0 -0
  144. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/readwriter.py +0 -0
  145. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/session.py +0 -0
  146. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/table.py +0 -0
  147. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/types.py +0 -0
  148. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/udf.py +0 -0
  149. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/redshift/window.py +0 -0
  150. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/__init__.py +0 -0
  151. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/catalog.py +0 -0
  152. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/column.py +0 -0
  153. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/dataframe.py +0 -0
  154. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/functions.py +0 -0
  155. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/functions.pyi +0 -0
  156. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/group.py +0 -0
  157. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/readwriter.py +0 -0
  158. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/session.py +0 -0
  159. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/table.py +0 -0
  160. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/types.py +0 -0
  161. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/udf.py +0 -0
  162. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/snowflake/window.py +0 -0
  163. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/__init__.py +0 -0
  164. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/catalog.py +0 -0
  165. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/column.py +0 -0
  166. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/dataframe.py +0 -0
  167. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/functions.py +0 -0
  168. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/functions.pyi +0 -0
  169. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/group.py +0 -0
  170. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/readwriter.py +0 -0
  171. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/session.py +0 -0
  172. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/table.py +0 -0
  173. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/types.py +0 -0
  174. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/udf.py +0 -0
  175. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/spark/window.py +0 -0
  176. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/__init__.py +0 -0
  177. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/catalog.py +0 -0
  178. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/column.py +0 -0
  179. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/dataframe.py +0 -0
  180. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/functions.py +0 -0
  181. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/group.py +0 -0
  182. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/readwriter.py +0 -0
  183. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/session.py +0 -0
  184. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/table.py +0 -0
  185. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/types.py +0 -0
  186. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/udf.py +0 -0
  187. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/standalone/window.py +0 -0
  188. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/testing/__init__.py +0 -0
  189. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe/testing/utils.py +0 -0
  190. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe.egg-info/dependency_links.txt +0 -0
  191. {sqlframe-3.41.0 → sqlframe-3.43.0}/sqlframe.egg-info/top_level.txt +0 -0
  192. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/__init__.py +0 -0
  193. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/common_fixtures.py +0 -0
  194. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/conftest.py +0 -0
  195. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee.csv +0 -0
  196. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee.json +0 -0
  197. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee.parquet +0 -0
  198. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
  199. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
  200. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
  201. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
  202. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
  203. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
  204. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
  205. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
  206. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
  207. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
  208. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
  209. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
  210. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
  211. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
  212. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/employee_extra_line.csv +0 -0
  213. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/issue_219.csv +0 -0
  214. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/netflix_daily_top_10.parquet +0 -0
  215. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds1.sql +0 -0
  216. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds10.sql +0 -0
  217. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds11.sql +0 -0
  218. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds12.sql +0 -0
  219. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds13.sql +0 -0
  220. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds14.sql +0 -0
  221. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds15.sql +0 -0
  222. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds16.sql +0 -0
  223. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds17.sql +0 -0
  224. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds18.sql +0 -0
  225. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds19.sql +0 -0
  226. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds2.sql +0 -0
  227. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds20.sql +0 -0
  228. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds21.sql +0 -0
  229. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds22.sql +0 -0
  230. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds23.sql +0 -0
  231. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds24.sql +0 -0
  232. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds25.sql +0 -0
  233. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds26.sql +0 -0
  234. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds27.sql +0 -0
  235. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds28.sql +0 -0
  236. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds29.sql +0 -0
  237. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds3.sql +0 -0
  238. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds30.sql +0 -0
  239. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds31.sql +0 -0
  240. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds32.sql +0 -0
  241. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds33.sql +0 -0
  242. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds34.sql +0 -0
  243. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds35.sql +0 -0
  244. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds36.sql +0 -0
  245. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds37.sql +0 -0
  246. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds38.sql +0 -0
  247. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds39.sql +0 -0
  248. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds4.sql +0 -0
  249. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds40.sql +0 -0
  250. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds41.sql +0 -0
  251. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds42.sql +0 -0
  252. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds43.sql +0 -0
  253. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds44.sql +0 -0
  254. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds45.sql +0 -0
  255. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds46.sql +0 -0
  256. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds47.sql +0 -0
  257. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds48.sql +0 -0
  258. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds49.sql +0 -0
  259. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds5.sql +0 -0
  260. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds50.sql +0 -0
  261. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds51.sql +0 -0
  262. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds52.sql +0 -0
  263. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds53.sql +0 -0
  264. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds54.sql +0 -0
  265. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds55.sql +0 -0
  266. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds56.sql +0 -0
  267. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds57.sql +0 -0
  268. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds58.sql +0 -0
  269. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds59.sql +0 -0
  270. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds6.sql +0 -0
  271. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds60.sql +0 -0
  272. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds61.sql +0 -0
  273. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds62.sql +0 -0
  274. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds63.sql +0 -0
  275. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds64.sql +0 -0
  276. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds65.sql +0 -0
  277. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds66.sql +0 -0
  278. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds67.sql +0 -0
  279. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds68.sql +0 -0
  280. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds69.sql +0 -0
  281. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds7.sql +0 -0
  282. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds70.sql +0 -0
  283. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds71.sql +0 -0
  284. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds72.sql +0 -0
  285. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds73.sql +0 -0
  286. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds74.sql +0 -0
  287. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds75.sql +0 -0
  288. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds76.sql +0 -0
  289. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds77.sql +0 -0
  290. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds78.sql +0 -0
  291. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds79.sql +0 -0
  292. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds8.sql +0 -0
  293. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds80.sql +0 -0
  294. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds81.sql +0 -0
  295. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds82.sql +0 -0
  296. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds83.sql +0 -0
  297. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds84.sql +0 -0
  298. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds85.sql +0 -0
  299. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds86.sql +0 -0
  300. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds87.sql +0 -0
  301. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds88.sql +0 -0
  302. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds89.sql +0 -0
  303. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds9.sql +0 -0
  304. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds90.sql +0 -0
  305. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds91.sql +0 -0
  306. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds92.sql +0 -0
  307. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds93.sql +0 -0
  308. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds94.sql +0 -0
  309. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds95.sql +0 -0
  310. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds96.sql +0 -0
  311. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds97.sql +0 -0
  312. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds98.sql +0 -0
  313. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/fixtures/tpcds/tpcds99.sql +0 -0
  314. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/__init__.py +0 -0
  315. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/__init__.py +0 -0
  316. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/bigquery/__init__.py +0 -0
  317. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
  318. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
  319. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
  320. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/databricks/__init__.py +0 -0
  321. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
  322. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
  323. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
  324. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/duck/__init__.py +0 -0
  325. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
  326. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
  327. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
  328. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
  329. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/duck/test_tpcds.py +0 -0
  330. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/postgres/__init__.py +0 -0
  331. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
  332. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
  333. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
  334. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
  335. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/redshift/__init__.py +0 -0
  336. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
  337. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
  338. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/snowflake/__init__.py +0 -0
  339. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
  340. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
  341. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
  342. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/spark/__init__.py +0 -0
  343. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
  344. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
  345. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/test_engine_column.py +0 -0
  346. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/test_engine_dataframe.py +0 -0
  347. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/test_engine_reader.py +0 -0
  348. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/test_engine_session.py +0 -0
  349. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/test_engine_table.py +0 -0
  350. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/test_engine_writer.py +0 -0
  351. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/test_int_functions.py +0 -0
  352. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/engines/test_int_testing.py +0 -0
  353. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/fixtures.py +0 -0
  354. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/test_int_dataframe_stats.py +0 -0
  355. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/test_int_grouped_data.py +0 -0
  356. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/integration/test_int_session.py +0 -0
  357. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/types.py +0 -0
  358. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/__init__.py +0 -0
  359. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/bigquery/__init__.py +0 -0
  360. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/bigquery/test_activate.py +0 -0
  361. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/conftest.py +0 -0
  362. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/databricks/__init__.py +0 -0
  363. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/databricks/test_activate.py +0 -0
  364. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/duck/__init__.py +0 -0
  365. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/duck/test_activate.py +0 -0
  366. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/duck/test_reader_options.py +0 -0
  367. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/postgres/__init__.py +0 -0
  368. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/postgres/test_activate.py +0 -0
  369. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/redshift/__init__.py +0 -0
  370. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/redshift/test_activate.py +0 -0
  371. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/snowflake/__init__.py +0 -0
  372. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/snowflake/test_activate.py +0 -0
  373. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/spark/__init__.py +0 -0
  374. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/spark/test_activate.py +0 -0
  375. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/spark/test_reader_options.py +0 -0
  376. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/__init__.py +0 -0
  377. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/fixtures.py +0 -0
  378. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/test_activate.py +0 -0
  379. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/test_column.py +0 -0
  380. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/test_dataframe.py +0 -0
  381. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/test_dataframe_writer.py +0 -0
  382. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/test_functions.py +0 -0
  383. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/test_session.py +0 -0
  384. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
  385. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/test_types.py +0 -0
  386. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/standalone/test_window.py +0 -0
  387. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/test_activate.py +0 -0
  388. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/test_base_reader_options.py +0 -0
  389. {sqlframe-3.41.0 → sqlframe-3.43.0}/tests/unit/test_catalog.py +0 -0
  390. {sqlframe-3.41.0 → sqlframe-3.43.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.41.0
3
+ Version: 3.43.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
@@ -526,6 +526,7 @@ See something that you would like to see supported? [Open an issue](https://gith
526
526
  * [to_date](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_date.html)
527
527
  * [to_timestamp](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_timestamp.html)
528
528
  * [to_timestamp_ntz](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_timestamp_ntz.html)
529
+ * [transform](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.transform.html)
529
530
  * [translate](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.translate.html)
530
531
  * [trim](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.trim.html)
531
532
  * [trunc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.trunc.html)
@@ -268,6 +268,7 @@ See something that you would like to see supported? [Open an issue](https://gith
268
268
  * [abs](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.abs.html)
269
269
  * [acos](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.acos.html)
270
270
  * [add_months](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.add_months.html)
271
+ * [aggregate](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.aggregate.html)
271
272
  * [any_value](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.any_value.html)
272
273
  * Always ignores nulls
273
274
  * [approxCountDistinct](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.approxCountDistinct.html)
@@ -380,6 +381,7 @@ See something that you would like to see supported? [Open an issue](https://gith
380
381
  * Uses a different hash algorithm than Spark
381
382
  * [hex](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.hex.html)
382
383
  * [hour](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.hour.html)
384
+ * [initcap](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.initcap.html)
383
385
  * [input_file_name](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.input_file_name.html)
384
386
  * [instr](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.instr.html)
385
387
  * [isnan](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.isnan.html)
@@ -433,6 +435,7 @@ See something that you would like to see supported? [Open an issue](https://gith
433
435
  * [radians](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.radians.html)
434
436
  * [rand](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.rand.html)
435
437
  * [rank](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.rank.html)
438
+ * [reduce](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.reduce.html)
436
439
  * [regexp](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.regexp.html)
437
440
  * [regexp_extract](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.regexp_extract.html)
438
441
  * [regexp_extract_all](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.regexp_extract_all.html)
@@ -484,6 +487,7 @@ See something that you would like to see supported? [Open an issue](https://gith
484
487
  * [to_timestamp_ntz](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_timestamp_ntz.html)
485
488
  * [to_unix_timestamp](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_unix_timestamp.html)
486
489
  * The values must match the format string (null will not be returned if they do not)
490
+ * [transform](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.transform.html)
487
491
  * [translate](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.translate.html)
488
492
  * [trim](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.trim.html)
489
493
  * [trunc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.trunc.html)
@@ -522,6 +522,7 @@ See something that you would like to see supported? [Open an issue](https://gith
522
522
  * [to_number](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_number.html)
523
523
  * [to_timestamp](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_timestamp.html)
524
524
  * [to_timestamp_ntz](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_timestamp_ntz.html)
525
+ * [transform](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.transform.html)
525
526
  * [translate](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.translate.html)
526
527
  * [trim](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.trim.html)
527
528
  * [trunc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.trunc.html)
@@ -0,0 +1,13 @@
1
+ [mypy]
2
+
3
+ [mypy-duckdb.*]
4
+ ignore_missing_imports = True
5
+
6
+ [mypy-pyarrow.*]
7
+ ignore_missing_imports = True
8
+
9
+ [mypy-findspark.*]
10
+ ignore_missing_imports = True
11
+
12
+ [mypy-redshift_connector.*]
13
+ ignore_missing_imports = True
@@ -20,7 +20,7 @@ setup(
20
20
  python_requires=">=3.9",
21
21
  install_requires=[
22
22
  "prettytable<4",
23
- "sqlglot>=24.0.0,<27.15",
23
+ "sqlglot>=24.0.0,<27.16",
24
24
  "typing_extensions",
25
25
  "more-itertools",
26
26
  ],
@@ -30,7 +30,7 @@ setup(
30
30
  "google-cloud-bigquery-storage>=2,<3",
31
31
  ],
32
32
  "dev": [
33
- "duckdb>=1.2,<1.4",
33
+ "duckdb>=1.2,<1.5",
34
34
  "findspark>=2,<3",
35
35
  "mypy>=1.10.0,<1.19",
36
36
  "openai>=1.30,<2",
@@ -56,7 +56,7 @@ setup(
56
56
  "pymdown-extensions",
57
57
  ],
58
58
  "duckdb": [
59
- "duckdb>=1.2,<1.4",
59
+ "duckdb>=1.2,<1.5",
60
60
  "pandas>=2,<3",
61
61
  ],
62
62
  "openai": [
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '3.41.0'
32
- __version_tuple__ = version_tuple = (3, 41, 0)
31
+ __version__ = version = '3.43.0'
32
+ __version_tuple__ = version_tuple = (3, 43, 0)
33
33
 
34
- __commit_id__ = commit_id = 'g961d3fda2'
34
+ __commit_id__ = commit_id = 'g38d15d998'
@@ -1665,10 +1665,34 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
1665
1665
  def should_drop_expression(expr: exp.Expression) -> bool:
1666
1666
  # Check against fully qualified Column objects and
1667
1667
  # Check against unqualified string column names (drop ALL columns with this name)
1668
- if expr.sql() in drop_sql or (
1669
- isinstance(expr, exp.Column) and expr.alias_or_name in column_names
1670
- ):
1668
+ if expr.sql() in drop_sql:
1671
1669
  return True
1670
+
1671
+ if isinstance(expr, exp.Column) and (alias_or_name := expr.alias_or_name):
1672
+ # Check direct match first
1673
+ if alias_or_name in column_names:
1674
+ return True
1675
+
1676
+ # Handle string column references that contain aliases
1677
+ for col_name in column_names:
1678
+ if ("." in col_name) and alias_or_name == (col_name.split(".", maxsplit=1)[-1]):
1679
+ # Extract the column name part after the last dot
1680
+ return True
1681
+
1682
+ # Handle case where normalized columns have table qualifiers but actual expressions
1683
+ # are unqualified. This happens when using aliased column references like
1684
+ # f.col('df.foo')
1685
+
1686
+ # Check if any drop column matches by column name AND table qualifier
1687
+ for drop_col in drop_cols:
1688
+ if ((drop_expression := drop_col.expression).alias_or_name) == alias_or_name:
1689
+ if expr_table := expr.table:
1690
+ drop_table = drop_expression.args.get("table")
1691
+ if (not drop_table) or (expr_table == drop_table):
1692
+ return True
1693
+ else:
1694
+ return True
1695
+
1672
1696
  return False
1673
1697
 
1674
1698
  new_expressions = [expr for expr in current_expressions if not should_drop_expression(expr)]
@@ -1974,8 +1974,30 @@ def regexp_replace(
1974
1974
  )
1975
1975
 
1976
1976
 
1977
- @meta(unsupported_engines="duckdb")
1977
+ @meta()
1978
1978
  def initcap(col: ColumnOrName) -> Column:
1979
+ session = _get_session()
1980
+
1981
+ if session._is_duckdb:
1982
+ split_func = get_func_from_session("split")
1983
+ transform_func = get_func_from_session("transform")
1984
+ reduce_func = get_func_from_session("reduce")
1985
+ upper_func = get_func_from_session("upper")
1986
+ lower_func = get_func_from_session("lower")
1987
+ length_func = get_func_from_session("length")
1988
+ concat_func = get_func_from_session("concat")
1989
+ concat_ws_func = get_func_from_session("concat_ws")
1990
+ return reduce_func(
1991
+ transform_func(
1992
+ split_func(col, r"\s+"),
1993
+ lambda w: concat_func(
1994
+ upper_func(w.substr(1, 1)), lower_func(w.substr(2, length_func(w) - 1))
1995
+ ),
1996
+ ),
1997
+ None,
1998
+ merge=lambda x, y: concat_ws_func(" ", x, y),
1999
+ )
2000
+
1979
2001
  return Column.invoke_expression_over_column(col, expression.Initcap)
1980
2002
 
1981
2003
 
@@ -2686,7 +2708,7 @@ def from_csv(
2686
2708
  return Column.invoke_anonymous_function(col, "FROM_CSV", schema)
2687
2709
 
2688
2710
 
2689
- @meta(unsupported_engines=["bigquery", "duckdb", "postgres", "snowflake"])
2711
+ @meta(unsupported_engines=["bigquery", "postgres", "snowflake"])
2690
2712
  def aggregate(
2691
2713
  col: ColumnOrName,
2692
2714
  initialValue: ColumnOrName,
@@ -2694,21 +2716,20 @@ def aggregate(
2694
2716
  finish: t.Optional[t.Callable[[Column], Column]] = None,
2695
2717
  ) -> Column:
2696
2718
  merge_exp = _get_lambda_from_func(merge)
2719
+ kwargs = dict(
2720
+ initial=initialValue,
2721
+ merge=merge_exp,
2722
+ )
2723
+ session = _get_session()
2697
2724
  if finish is not None:
2698
2725
  finish_exp = _get_lambda_from_func(finish)
2699
- return Column.invoke_expression_over_column(
2700
- col,
2701
- expression.Reduce,
2702
- initial=initialValue,
2703
- merge=Column(merge_exp),
2704
- finish=Column(finish_exp),
2705
- )
2706
- return Column.invoke_expression_over_column(
2707
- col, expression.Reduce, initial=initialValue, merge=Column(merge_exp)
2708
- )
2726
+ kwargs["finish"] = Column(finish_exp)
2727
+ if session._is_duckdb:
2728
+ kwargs.pop("initial", None)
2729
+ return Column.invoke_expression_over_column(col, expression.Reduce, **kwargs)
2709
2730
 
2710
2731
 
2711
- @meta(unsupported_engines=["bigquery", "duckdb", "postgres", "snowflake"])
2732
+ @meta(unsupported_engines="postgres")
2712
2733
  def transform(
2713
2734
  col: ColumnOrName,
2714
2735
  f: t.Union[t.Callable[[Column], Column], t.Callable[[Column, Column], Column]],
@@ -437,7 +437,7 @@ class _BaseSession(t.Generic[CATALOG, READER, WRITER, DF, TABLE, CONN, UDF_REGIS
437
437
  for cte in df.expression.ctes:
438
438
  if cte.alias_or_name not in expression_ctes:
439
439
  ctes_to_add.append(cte)
440
- expression.set("with", exp.With(expressions=expression.ctes + ctes_to_add)) # type: ignore
440
+ expression.set("with", exp.With(expressions=ctes_to_add + expression.ctes)) # type: ignore
441
441
 
442
442
  def replace_temp_view_name_with_cte(node: exp.Expression) -> exp.Expression:
443
443
  if isinstance(node, exp.Table):
@@ -61,5 +61,5 @@ class DuckDBDataFrame(
61
61
  def toArrow(self, batch_size: t.Optional[int] = None) -> t.Union[ArrowTable, RecordBatchReader]:
62
62
  self._collect(skip_rows=True)
63
63
  if not batch_size:
64
- return self.session._last_result.arrow()
64
+ return self.session._last_result.fetch_arrow_table()
65
65
  return self.session._last_result.fetch_record_batch(batch_size)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sqlframe
3
- Version: 3.41.0
3
+ Version: 3.43.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
@@ -5,6 +5,7 @@ LICENSE
5
5
  Makefile
6
6
  README.md
7
7
  mkdocs.yml
8
+ mypy.ini
8
9
  pytest.ini
9
10
  renovate.json
10
11
  setup.cfg
@@ -1,6 +1,6 @@
1
1
  more-itertools
2
2
  prettytable<4
3
- sqlglot<27.15,>=24.0.0
3
+ sqlglot<27.16,>=24.0.0
4
4
  typing_extensions
5
5
 
6
6
  [bigquery]
@@ -11,7 +11,7 @@ google-cloud-bigquery[pandas]<4,>=3
11
11
  databricks-sql-connector[pyarrow]<5,>=3.6
12
12
 
13
13
  [dev]
14
- duckdb<1.4,>=1.2
14
+ duckdb<1.5,>=1.2
15
15
  findspark<3,>=2
16
16
  mypy<1.19,>=1.10.0
17
17
  openai<2,>=1.30
@@ -37,7 +37,7 @@ mkdocs==1.4.2
37
37
  pymdown-extensions
38
38
 
39
39
  [duckdb]
40
- duckdb<1.4,>=1.2
40
+ duckdb<1.5,>=1.2
41
41
  pandas<3,>=2
42
42
 
43
43
  [openai]
@@ -262,7 +262,7 @@ def test_explain(duckdb_employee: DuckDBDataFrame, capsys):
262
262
  ┌───────────────────────────┐
263
263
  │ COLUMN_DATA_SCAN │
264
264
  │ ──────────────────── │
265
- │ ~5 Rows
265
+ │ ~5 rows
266
266
  └───────────────────────────┘
267
267
  """.strip()
268
268
  )
@@ -1,5 +1,5 @@
1
1
  import pytest
2
- from duckdb.duckdb import ConnectionException
2
+ from duckdb import ConnectionException
3
3
  from sqlglot import exp
4
4
 
5
5
  from sqlframe.base.types import Row
@@ -1865,6 +1865,18 @@ def test_drop_column_single(
1865
1865
  compare_frames(df, dfs)
1866
1866
 
1867
1867
 
1868
+ def test_drop_alias_column(
1869
+ pyspark_employee: PySparkDataFrame,
1870
+ get_df: t.Callable[[str], BaseDataFrame],
1871
+ compare_frames: t.Callable,
1872
+ ):
1873
+ employee = get_df("employee")
1874
+ df = pyspark_employee.select(F.col("fname"), F.col("age")).drop("age")
1875
+
1876
+ dfs = employee.alias("df").select(SF.col("fname"), SF.col("age")).drop("df.age")
1877
+ compare_frames(df, dfs)
1878
+
1879
+
1868
1880
  def test_drop_column_reference_join(
1869
1881
  pyspark_employee: PySparkDataFrame,
1870
1882
  pyspark_store: PySparkDataFrame,
@@ -1892,6 +1904,61 @@ def test_drop_column_reference_join(
1892
1904
  compare_frames(df, dfs, sort=True)
1893
1905
 
1894
1906
 
1907
+ def test_drop_column_join_column_df_reference(
1908
+ pyspark_employee: PySparkDataFrame,
1909
+ get_df: t.Callable[[str], BaseDataFrame],
1910
+ compare_frames: t.Callable,
1911
+ ):
1912
+ df1 = pyspark_employee.sparkSession.createDataFrame( # type: ignore
1913
+ [{"foo": 0, "bar": "a"}, {"foo": 1, "bar": "b"}]
1914
+ ).alias("df1")
1915
+ df2 = pyspark_employee.sparkSession.createDataFrame([{"foo": 0, "baz": 1.5}]).alias("df2") # type: ignore
1916
+ df_joined = (
1917
+ df1.join(df2, on=F.col("df1.foo") == F.col("df2.foo"), how="left")
1918
+ .drop(df1.foo)
1919
+ .select(df1.bar, df2.baz, df2.foo)
1920
+ )
1921
+
1922
+ employee = get_df("employee")
1923
+ dfs1 = employee.sparkSession.createDataFrame(
1924
+ [{"foo": 0, "bar": "a"}, {"foo": 1, "bar": "b"}]
1925
+ ).alias("dfs1")
1926
+ dfs2 = employee.sparkSession.createDataFrame([{"foo": 0, "baz": 1.5}]).alias("dfs2")
1927
+ dfs_joined = (
1928
+ dfs1.join(dfs2, on=SF.col("dfs1.foo") == SF.col("dfs2.foo"), how="left")
1929
+ .drop(dfs1.foo)
1930
+ .select(dfs1.bar, dfs2.baz, dfs2.foo)
1931
+ )
1932
+
1933
+ compare_frames(df_joined, dfs_joined, sort=True, compare_schema=False)
1934
+
1935
+
1936
+ def test_drop_join_column_unqualified(
1937
+ pyspark_employee: PySparkDataFrame,
1938
+ get_df: t.Callable[[str], BaseDataFrame],
1939
+ compare_frames: t.Callable,
1940
+ ):
1941
+ df1 = pyspark_employee.sparkSession.createDataFrame( # type: ignore
1942
+ [{"foo": 0, "bar": "a"}, {"foo": 1, "bar": "b"}]
1943
+ ).alias("df1")
1944
+ df2 = pyspark_employee.sparkSession.createDataFrame([{"foo": 0, "baz": 1.5}]).alias("df2") # type: ignore
1945
+ df_joined = (
1946
+ df1.join(df2, on=F.col("df1.foo") == F.col("df2.foo"), how="left").drop("foo")
1947
+ # select the columns to work around column order bug
1948
+ )
1949
+
1950
+ employee = get_df("employee")
1951
+ dfs1 = employee.sparkSession.createDataFrame(
1952
+ [{"foo": 0, "bar": "a"}, {"foo": 1, "bar": "b"}]
1953
+ ).alias("dfs1")
1954
+ dfs2 = employee.sparkSession.createDataFrame([{"foo": 0, "baz": 1.5}]).alias("dfs2")
1955
+ dfs_joined = dfs1.join(dfs2, on=SF.col("dfs1.foo") == SF.col("dfs2.foo"), how="left").drop(
1956
+ "foo"
1957
+ )
1958
+
1959
+ compare_frames(df_joined, dfs_joined, sort=True, compare_schema=False)
1960
+
1961
+
1895
1962
  def test_limit(
1896
1963
  pyspark_employee: PySparkDataFrame,
1897
1964
  get_df: t.Callable[[str], BaseDataFrame],
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