sqlframe 3.3.0__tar.gz → 3.4.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 (355) hide show
  1. {sqlframe-3.3.0 → sqlframe-3.4.0}/PKG-INFO +1 -1
  2. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/bigquery.md +0 -1
  3. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/duckdb.md +0 -1
  4. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/snowflake.md +0 -1
  5. {sqlframe-3.3.0 → sqlframe-3.4.0}/setup.py +4 -4
  6. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/_version.py +2 -2
  7. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/functions.py +11 -10
  8. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/functions.pyi +1 -0
  9. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/functions.pyi +1 -0
  10. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/session.py +4 -0
  11. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/functions.pyi +1 -0
  12. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/functions.py +1 -0
  13. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/functions.pyi +1 -1
  14. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe.egg-info/PKG-INFO +1 -1
  15. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe.egg-info/requires.txt +4 -4
  16. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/common_fixtures.py +5 -2
  17. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/duck/test_duckdb_catalog.py +3 -1
  18. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/test_int_functions.py +1 -1
  19. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/test_functions.py +8 -8
  20. {sqlframe-3.3.0 → sqlframe-3.4.0}/.github/CODEOWNERS +0 -0
  21. {sqlframe-3.3.0 → sqlframe-3.4.0}/.github/workflows/main.workflow.yaml +0 -0
  22. {sqlframe-3.3.0 → sqlframe-3.4.0}/.github/workflows/publish.workflow.yaml +0 -0
  23. {sqlframe-3.3.0 → sqlframe-3.4.0}/.gitignore +0 -0
  24. {sqlframe-3.3.0 → sqlframe-3.4.0}/.pre-commit-config.yaml +0 -0
  25. {sqlframe-3.3.0 → sqlframe-3.4.0}/.readthedocs.yaml +0 -0
  26. {sqlframe-3.3.0 → sqlframe-3.4.0}/LICENSE +0 -0
  27. {sqlframe-3.3.0 → sqlframe-3.4.0}/Makefile +0 -0
  28. {sqlframe-3.3.0 → sqlframe-3.4.0}/README.md +0 -0
  29. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/add_chatgpt_support.md +0 -0
  30. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
  31. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
  32. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
  33. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
  34. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
  35. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
  36. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
  37. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
  38. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/but_wait_theres_more.gif +0 -0
  39. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/cake.gif +0 -0
  40. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/images/you_get_pyspark_api.gif +0 -0
  41. {sqlframe-3.3.0 → sqlframe-3.4.0}/blogs/sqlframe_universal_dataframe_api.md +0 -0
  42. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/configuration.md +0 -0
  43. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/docs/bigquery.md +0 -0
  44. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/docs/duckdb.md +0 -0
  45. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/docs/images/SF.png +0 -0
  46. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/docs/images/favicon.png +0 -0
  47. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/docs/images/favicon_old.png +0 -0
  48. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/docs/images/sqlframe_diagram.png +0 -0
  49. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/docs/images/sqlframe_logo.png +0 -0
  50. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/docs/postgres.md +0 -0
  51. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/images/SF.png +0 -0
  52. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/images/favicon.png +0 -0
  53. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/images/favicon_old.png +0 -0
  54. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/images/sqlframe_diagram.png +0 -0
  55. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/images/sqlframe_logo.png +0 -0
  56. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/index.md +0 -0
  57. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/postgres.md +0 -0
  58. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/requirements.txt +0 -0
  59. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/spark.md +0 -0
  60. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/standalone.md +0 -0
  61. {sqlframe-3.3.0 → sqlframe-3.4.0}/docs/stylesheets/extra.css +0 -0
  62. {sqlframe-3.3.0 → sqlframe-3.4.0}/mkdocs.yml +0 -0
  63. {sqlframe-3.3.0 → sqlframe-3.4.0}/pytest.ini +0 -0
  64. {sqlframe-3.3.0 → sqlframe-3.4.0}/renovate.json +0 -0
  65. {sqlframe-3.3.0 → sqlframe-3.4.0}/setup.cfg +0 -0
  66. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/LICENSE +0 -0
  67. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/__init__.py +0 -0
  68. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/__init__.py +0 -0
  69. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/_typing.py +0 -0
  70. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/catalog.py +0 -0
  71. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/column.py +0 -0
  72. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/dataframe.py +0 -0
  73. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/decorators.py +0 -0
  74. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/exceptions.py +0 -0
  75. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/function_alternatives.py +0 -0
  76. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/group.py +0 -0
  77. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/mixins/__init__.py +0 -0
  78. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/mixins/catalog_mixins.py +0 -0
  79. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
  80. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
  81. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/normalize.py +0 -0
  82. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/operations.py +0 -0
  83. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/readerwriter.py +0 -0
  84. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/session.py +0 -0
  85. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/transforms.py +0 -0
  86. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/types.py +0 -0
  87. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/udf.py +0 -0
  88. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/util.py +0 -0
  89. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/base/window.py +0 -0
  90. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/__init__.py +0 -0
  91. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/catalog.py +0 -0
  92. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/column.py +0 -0
  93. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/dataframe.py +0 -0
  94. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/functions.py +0 -0
  95. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/group.py +0 -0
  96. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/readwriter.py +0 -0
  97. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/session.py +0 -0
  98. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/types.py +0 -0
  99. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/udf.py +0 -0
  100. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/bigquery/window.py +0 -0
  101. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/__init__.py +0 -0
  102. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/catalog.py +0 -0
  103. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/column.py +0 -0
  104. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/dataframe.py +0 -0
  105. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/functions.py +0 -0
  106. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/group.py +0 -0
  107. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/readwriter.py +0 -0
  108. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/types.py +0 -0
  109. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/udf.py +0 -0
  110. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/duckdb/window.py +0 -0
  111. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/__init__.py +0 -0
  112. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/catalog.py +0 -0
  113. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/column.py +0 -0
  114. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/dataframe.py +0 -0
  115. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/functions.py +0 -0
  116. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/functions.pyi +0 -0
  117. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/group.py +0 -0
  118. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/readwriter.py +0 -0
  119. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/session.py +0 -0
  120. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/types.py +0 -0
  121. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/udf.py +0 -0
  122. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/postgres/window.py +0 -0
  123. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/__init__.py +0 -0
  124. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/catalog.py +0 -0
  125. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/column.py +0 -0
  126. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/dataframe.py +0 -0
  127. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/functions.py +0 -0
  128. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/group.py +0 -0
  129. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/readwriter.py +0 -0
  130. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/session.py +0 -0
  131. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/types.py +0 -0
  132. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/udf.py +0 -0
  133. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/redshift/window.py +0 -0
  134. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/__init__.py +0 -0
  135. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/catalog.py +0 -0
  136. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/column.py +0 -0
  137. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/dataframe.py +0 -0
  138. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/functions.py +0 -0
  139. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/group.py +0 -0
  140. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/readwriter.py +0 -0
  141. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/session.py +0 -0
  142. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/types.py +0 -0
  143. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/udf.py +0 -0
  144. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/snowflake/window.py +0 -0
  145. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/__init__.py +0 -0
  146. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/catalog.py +0 -0
  147. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/column.py +0 -0
  148. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/dataframe.py +0 -0
  149. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/group.py +0 -0
  150. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/readwriter.py +0 -0
  151. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/session.py +0 -0
  152. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/types.py +0 -0
  153. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/udf.py +0 -0
  154. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/spark/window.py +0 -0
  155. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/__init__.py +0 -0
  156. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/catalog.py +0 -0
  157. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/column.py +0 -0
  158. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/dataframe.py +0 -0
  159. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/functions.py +0 -0
  160. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/group.py +0 -0
  161. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/readwriter.py +0 -0
  162. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/session.py +0 -0
  163. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/types.py +0 -0
  164. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/udf.py +0 -0
  165. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/standalone/window.py +0 -0
  166. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/testing/__init__.py +0 -0
  167. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe/testing/utils.py +0 -0
  168. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe.egg-info/SOURCES.txt +0 -0
  169. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe.egg-info/dependency_links.txt +0 -0
  170. {sqlframe-3.3.0 → sqlframe-3.4.0}/sqlframe.egg-info/top_level.txt +0 -0
  171. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/__init__.py +0 -0
  172. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/conftest.py +0 -0
  173. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee.csv +0 -0
  174. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee.json +0 -0
  175. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee.parquet +0 -0
  176. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
  177. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
  178. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
  179. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
  180. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
  181. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
  182. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
  183. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
  184. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
  185. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
  186. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
  187. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
  188. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
  189. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
  190. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/employee_extra_line.csv +0 -0
  191. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds1.sql +0 -0
  192. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds10.sql +0 -0
  193. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds11.sql +0 -0
  194. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds12.sql +0 -0
  195. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds13.sql +0 -0
  196. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds14.sql +0 -0
  197. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds15.sql +0 -0
  198. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds16.sql +0 -0
  199. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds17.sql +0 -0
  200. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds18.sql +0 -0
  201. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds19.sql +0 -0
  202. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds2.sql +0 -0
  203. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds20.sql +0 -0
  204. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds21.sql +0 -0
  205. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds22.sql +0 -0
  206. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds23.sql +0 -0
  207. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds24.sql +0 -0
  208. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds25.sql +0 -0
  209. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds26.sql +0 -0
  210. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds27.sql +0 -0
  211. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds28.sql +0 -0
  212. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds29.sql +0 -0
  213. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds3.sql +0 -0
  214. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds30.sql +0 -0
  215. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds31.sql +0 -0
  216. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds32.sql +0 -0
  217. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds33.sql +0 -0
  218. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds34.sql +0 -0
  219. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds35.sql +0 -0
  220. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds36.sql +0 -0
  221. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds37.sql +0 -0
  222. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds38.sql +0 -0
  223. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds39.sql +0 -0
  224. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds4.sql +0 -0
  225. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds40.sql +0 -0
  226. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds41.sql +0 -0
  227. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds42.sql +0 -0
  228. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds43.sql +0 -0
  229. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds44.sql +0 -0
  230. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds45.sql +0 -0
  231. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds46.sql +0 -0
  232. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds47.sql +0 -0
  233. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds48.sql +0 -0
  234. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds49.sql +0 -0
  235. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds5.sql +0 -0
  236. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds50.sql +0 -0
  237. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds51.sql +0 -0
  238. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds52.sql +0 -0
  239. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds53.sql +0 -0
  240. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds54.sql +0 -0
  241. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds55.sql +0 -0
  242. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds56.sql +0 -0
  243. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds57.sql +0 -0
  244. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds58.sql +0 -0
  245. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds59.sql +0 -0
  246. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds6.sql +0 -0
  247. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds60.sql +0 -0
  248. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds61.sql +0 -0
  249. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds62.sql +0 -0
  250. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds63.sql +0 -0
  251. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds64.sql +0 -0
  252. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds65.sql +0 -0
  253. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds66.sql +0 -0
  254. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds67.sql +0 -0
  255. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds68.sql +0 -0
  256. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds69.sql +0 -0
  257. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds7.sql +0 -0
  258. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds70.sql +0 -0
  259. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds71.sql +0 -0
  260. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds72.sql +0 -0
  261. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds73.sql +0 -0
  262. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds74.sql +0 -0
  263. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds75.sql +0 -0
  264. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds76.sql +0 -0
  265. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds77.sql +0 -0
  266. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds78.sql +0 -0
  267. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds79.sql +0 -0
  268. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds8.sql +0 -0
  269. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds80.sql +0 -0
  270. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds81.sql +0 -0
  271. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds82.sql +0 -0
  272. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds83.sql +0 -0
  273. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds84.sql +0 -0
  274. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds85.sql +0 -0
  275. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds86.sql +0 -0
  276. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds87.sql +0 -0
  277. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds88.sql +0 -0
  278. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds89.sql +0 -0
  279. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds9.sql +0 -0
  280. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds90.sql +0 -0
  281. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds91.sql +0 -0
  282. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds92.sql +0 -0
  283. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds93.sql +0 -0
  284. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds94.sql +0 -0
  285. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds95.sql +0 -0
  286. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds96.sql +0 -0
  287. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds97.sql +0 -0
  288. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds98.sql +0 -0
  289. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/fixtures/tpcds/tpcds99.sql +0 -0
  290. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/__init__.py +0 -0
  291. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/__init__.py +0 -0
  292. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/bigquery/__init__.py +0 -0
  293. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
  294. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
  295. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
  296. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/duck/__init__.py +0 -0
  297. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
  298. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
  299. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
  300. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
  301. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
  302. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/duck/test_tpcds.py +0 -0
  303. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/postgres/__init__.py +0 -0
  304. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
  305. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
  306. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
  307. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
  308. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/redshift/__init__.py +0 -0
  309. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
  310. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
  311. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/snowflake/__init__.py +0 -0
  312. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
  313. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
  314. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
  315. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/spark/__init__.py +0 -0
  316. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
  317. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
  318. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/test_engine_column.py +0 -0
  319. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/test_engine_dataframe.py +0 -0
  320. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/test_engine_reader.py +0 -0
  321. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/test_engine_session.py +0 -0
  322. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/test_engine_writer.py +0 -0
  323. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/engines/test_int_testing.py +0 -0
  324. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/fixtures.py +0 -0
  325. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/test_int_dataframe.py +0 -0
  326. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/test_int_dataframe_stats.py +0 -0
  327. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/test_int_grouped_data.py +0 -0
  328. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/integration/test_int_session.py +0 -0
  329. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/types.py +0 -0
  330. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/__init__.py +0 -0
  331. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/bigquery/__init__.py +0 -0
  332. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/bigquery/test_activate.py +0 -0
  333. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/conftest.py +0 -0
  334. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/duck/__init__.py +0 -0
  335. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/duck/test_activate.py +0 -0
  336. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/postgres/__init__.py +0 -0
  337. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/postgres/test_activate.py +0 -0
  338. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/redshift/__init__.py +0 -0
  339. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/redshift/test_activate.py +0 -0
  340. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/snowflake/__init__.py +0 -0
  341. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/snowflake/test_activate.py +0 -0
  342. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/spark/__init__.py +0 -0
  343. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/spark/test_activate.py +0 -0
  344. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/__init__.py +0 -0
  345. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/fixtures.py +0 -0
  346. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/test_activate.py +0 -0
  347. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/test_column.py +0 -0
  348. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/test_dataframe.py +0 -0
  349. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/test_dataframe_writer.py +0 -0
  350. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/test_session.py +0 -0
  351. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
  352. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/test_types.py +0 -0
  353. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/standalone/test_window.py +0 -0
  354. {sqlframe-3.3.0 → sqlframe-3.4.0}/tests/unit/test_activate.py +0 -0
  355. {sqlframe-3.3.0 → sqlframe-3.4.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.3.0
3
+ Version: 3.4.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
@@ -234,7 +234,6 @@ See something that you would like to see supported? [Open an issue](https://gith
234
234
  * sql
235
235
  * SQLFrame Specific: Get the SQL representation of a given column
236
236
  * [startswith](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.startswith.html)
237
- * [substr](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.substr.html)
238
237
  * [when](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.when.html)
239
238
 
240
239
  ### DataFrame Class
@@ -198,7 +198,6 @@ See something that you would like to see supported? [Open an issue](https://gith
198
198
  * sql
199
199
  * SQLFrame Specific: Get the SQL representation of a given column
200
200
  * [startswith](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.startswith.html)
201
- * [substr](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.substr.html)
202
201
  * [when](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.when.html)
203
202
 
204
203
  ### DataFrame Class
@@ -230,7 +230,6 @@ See something that you would like to see supported? [Open an issue](https://gith
230
230
  * sql
231
231
  * SQLFrame Specific: Get the SQL representation of a given column
232
232
  * [startswith](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.startswith.html)
233
- * [substr](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.substr.html)
234
233
  * [when](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.when.html)
235
234
 
236
235
  ### DataFrame Class
@@ -20,7 +20,7 @@ setup(
20
20
  python_requires=">=3.8",
21
21
  install_requires=[
22
22
  "prettytable<3.11.1",
23
- "sqlglot>=24.0.0,<25.22",
23
+ "sqlglot>=24.0.0,<25.25",
24
24
  "typing_extensions>=4.8,<5",
25
25
  ],
26
26
  extras_require={
@@ -32,7 +32,7 @@ setup(
32
32
  "duckdb>=0.9,<1.2",
33
33
  "findspark>=2,<3",
34
34
  "mypy>=1.10.0,<1.12",
35
- "openai>=1.30,<1.46",
35
+ "openai>=1.30,<1.52",
36
36
  "pandas>=2,<3",
37
37
  "pandas-stubs>=2,<3",
38
38
  "psycopg>=3.1,<4",
@@ -42,7 +42,7 @@ setup(
42
42
  "pytest-postgresql>=6,<7",
43
43
  "pytest-xdist>=3.6,<3.7",
44
44
  "pre-commit>=3.5;python_version=='3.8'",
45
- "pre-commit>=3.7,<3.9;python_version>='3.9'",
45
+ "pre-commit>=3.7,<4.1;python_version>='3.9'",
46
46
  "ruff>=0.4.4,<0.7",
47
47
  "types-psycopg2>=2.9,<3",
48
48
  ],
@@ -58,7 +58,7 @@ setup(
58
58
  "pandas>=2,<3",
59
59
  ],
60
60
  "openai": [
61
- "openai>=1.30,<1.46",
61
+ "openai>=1.30,<1.52",
62
62
  ],
63
63
  "pandas": [
64
64
  "pandas>=2,<3",
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '3.3.0'
16
- __version_tuple__ = version_tuple = (3, 3, 0)
15
+ __version__ = version = '3.4.0'
16
+ __version_tuple__ = version_tuple = (3, 4, 0)
@@ -1129,11 +1129,15 @@ def overlay(
1129
1129
  pos: t.Union[ColumnOrName, int],
1130
1130
  len: t.Optional[t.Union[ColumnOrName, int]] = None,
1131
1131
  ) -> Column:
1132
- pos_value = lit(pos) if isinstance(pos, int) else pos
1133
- if len is not None:
1134
- len_value = lit(len) if isinstance(len, int) else len
1135
- return Column.invoke_anonymous_function(src, "OVERLAY", replace, pos_value, len_value)
1136
- return Column.invoke_anonymous_function(src, "OVERLAY", replace, pos_value)
1132
+ return Column.invoke_expression_over_column(
1133
+ src,
1134
+ expression.Overlay,
1135
+ **{
1136
+ "expression": Column(replace).expression,
1137
+ "from": lit(pos).expression,
1138
+ "for": lit(len).expression if len is not None else None,
1139
+ },
1140
+ )
1137
1141
 
1138
1142
 
1139
1143
  @meta(unsupported_engines=["bigquery", "duckdb", "postgres", "snowflake"])
@@ -4834,7 +4838,7 @@ def str_to_map(
4834
4838
  )
4835
4839
 
4836
4840
 
4837
- @meta(unsupported_engines="*")
4841
+ @meta(unsupported_engines="postgres")
4838
4842
  def substr(str: ColumnOrName, pos: ColumnOrName, len: t.Optional[ColumnOrName] = None) -> Column:
4839
4843
  """
4840
4844
  Returns the substring of `str` that starts at `pos` and is of length `len`,
@@ -4873,10 +4877,7 @@ def substr(str: ColumnOrName, pos: ColumnOrName, len: t.Optional[ColumnOrName] =
4873
4877
  | k SQL|
4874
4878
  +------------------------+
4875
4879
  """
4876
- if len is not None:
4877
- return Column.invoke_anonymous_function(str, "substr", pos, len)
4878
- else:
4879
- return Column.invoke_anonymous_function(str, "substr", pos)
4880
+ return Column.invoke_expression_over_column(str, expression.Substring, start=pos, length=len)
4880
4881
 
4881
4882
 
4882
4883
  @meta(unsupported_engines="*")
@@ -251,6 +251,7 @@ from sqlframe.base.functions import stddev as stddev
251
251
  from sqlframe.base.functions import stddev_pop as stddev_pop
252
252
  from sqlframe.base.functions import stddev_samp as stddev_samp
253
253
  from sqlframe.base.functions import struct as struct
254
+ from sqlframe.base.functions import substr as substr
254
255
  from sqlframe.base.functions import substring as substring
255
256
  from sqlframe.base.functions import sum as sum
256
257
  from sqlframe.base.functions import sum_distinct as sum_distinct
@@ -184,6 +184,7 @@ from sqlframe.base.functions import (
184
184
  stddev_samp as stddev_samp,
185
185
  struct as struct,
186
186
  substring as substring,
187
+ substr as substr,
187
188
  sum as sum,
188
189
  sumDistinct as sumDistinct,
189
190
  sum_distinct as sum_distinct,
@@ -52,6 +52,10 @@ class DuckDBSession(
52
52
  super().__init__(conn, *args, **kwargs)
53
53
  self._last_result = None
54
54
 
55
+ @cached_property
56
+ def _cur(self) -> DuckDBPyConnection: # type: ignore
57
+ return self._conn
58
+
55
59
  @classmethod
56
60
  def _try_get_map(cls, value: t.Any) -> t.Optional[t.Dict[str, t.Any]]:
57
61
  if value and isinstance(value, dict):
@@ -193,6 +193,7 @@ from sqlframe.base.functions import (
193
193
  stddev_pop as stddev_pop,
194
194
  stddev_samp as stddev_samp,
195
195
  substring as substring,
196
+ substr as substr,
196
197
  sum as sum,
197
198
  sumDistinct as sumDistinct,
198
199
  sum_distinct as sum_distinct,
@@ -18,4 +18,5 @@ from sqlframe.base.function_alternatives import ( # noqa
18
18
  add_months_by_multiplication as add_months,
19
19
  arrays_overlap_renamed as arrays_overlap,
20
20
  _is_string_using_typeof_string_lcase as _is_string,
21
+ try_element_at_zero_based as try_element_at,
21
22
  )
@@ -2,6 +2,7 @@ from sqlframe.base.function_alternatives import ( # noqa
2
2
  percentile_without_disc as percentile,
3
3
  add_months_by_multiplication as add_months,
4
4
  arrays_overlap_renamed as arrays_overlap,
5
+ try_element_at_zero_based as try_element_at,
5
6
  )
6
7
  from sqlframe.base.functions import (
7
8
  abs as abs,
@@ -372,7 +373,6 @@ from sqlframe.base.functions import (
372
373
  try_aes_decrypt as try_aes_decrypt,
373
374
  try_avg as try_avg,
374
375
  try_divide as try_divide,
375
- try_element_at as try_element_at,
376
376
  try_multiply as try_multiply,
377
377
  try_subtract as try_subtract,
378
378
  try_sum as try_sum,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sqlframe
3
- Version: 3.3.0
3
+ Version: 3.4.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
@@ -1,5 +1,5 @@
1
1
  prettytable<3.11.1
2
- sqlglot<25.22,>=24.0.0
2
+ sqlglot<25.25,>=24.0.0
3
3
  typing_extensions<5,>=4.8
4
4
 
5
5
  [bigquery]
@@ -10,7 +10,7 @@ google-cloud-bigquery[pandas]<4,>=3
10
10
  duckdb<1.2,>=0.9
11
11
  findspark<3,>=2
12
12
  mypy<1.12,>=1.10.0
13
- openai<1.46,>=1.30
13
+ openai<1.52,>=1.30
14
14
  pandas-stubs<3,>=2
15
15
  pandas<3,>=2
16
16
  psycopg<4,>=3.1
@@ -26,7 +26,7 @@ types-psycopg2<3,>=2.9
26
26
  pre-commit>=3.5
27
27
 
28
28
  [dev:python_version >= "3.9"]
29
- pre-commit<3.9,>=3.7
29
+ pre-commit<4.1,>=3.7
30
30
 
31
31
  [docs]
32
32
  mkdocs-include-markdown-plugin==6.0.6
@@ -40,7 +40,7 @@ duckdb<1.2,>=0.9
40
40
  pandas<3,>=2
41
41
 
42
42
  [openai]
43
- openai<1.46,>=1.30
43
+ openai<1.52,>=1.30
44
44
 
45
45
  [pandas]
46
46
  pandas<3,>=2
@@ -117,8 +117,11 @@ def spark_session(pyspark_session: PySparkSession) -> SparkSession:
117
117
 
118
118
  @pytest.fixture(scope="function")
119
119
  def duckdb_session() -> DuckDBSession:
120
- connection = duckdb.connect(config={"TimeZone": "UTC"})
121
- return DuckDBSession(conn=connection)
120
+ connector = duckdb.connect()
121
+ connector.execute("set TimeZone = 'UTC'")
122
+ connector.execute("SELECT * FROM duckdb_settings() WHERE name = 'TimeZone'")
123
+ assert connector.fetchone()[1] == "UTC" # type: ignore
124
+ return DuckDBSession(conn=connector)
122
125
 
123
126
 
124
127
  @pytest.fixture
@@ -9,7 +9,9 @@ def duckdb_session() -> DuckDBSession:
9
9
  import duckdb
10
10
 
11
11
  connector = duckdb.connect()
12
- connector.sql("set TimeZone = 'UTC'")
12
+ connector.execute("set TimeZone = 'UTC'")
13
+ connector.execute("SELECT * FROM duckdb_settings() WHERE name = 'TimeZone'")
14
+ assert connector.fetchone()[1] == "UTC" # type: ignore
13
15
  session = DuckDBSession(connector)
14
16
  session._execute('''ATTACH ':memory:' AS "default"''')
15
17
  session._execute('''ATTACH ':memory:' AS "catalog1"''')
@@ -18,7 +18,7 @@ from sqlframe.base.util import (
18
18
  get_func_from_session as get_func_from_session_without_fallback,
19
19
  )
20
20
  from sqlframe.bigquery import BigQuerySession
21
- from sqlframe.duckdb import DuckDBSession
21
+ from sqlframe.duckdb import DuckDBCatalog, DuckDBSession
22
22
  from sqlframe.postgres import PostgresDataFrame, PostgresSession
23
23
  from sqlframe.snowflake import SnowflakeSession
24
24
  from sqlframe.spark.session import SparkSession
@@ -1823,12 +1823,12 @@ def test_instr(expression, expected):
1823
1823
  @pytest.mark.parametrize(
1824
1824
  "expression, expected",
1825
1825
  [
1826
- (SF.overlay("cola", "colb", 3, 7), "OVERLAY(cola, colb, 3, 7)"),
1826
+ (SF.overlay("cola", "colb", 3, 7), "OVERLAY(cola PLACING colb FROM 3 FOR 7)"),
1827
1827
  (
1828
1828
  SF.overlay(SF.col("cola"), SF.col("colb"), SF.lit(3), SF.lit(7)),
1829
- "OVERLAY(cola, colb, 3, 7)",
1829
+ "OVERLAY(cola PLACING colb FROM 3 FOR 7)",
1830
1830
  ),
1831
- (SF.overlay("cola", "colb", 3), "OVERLAY(cola, colb, 3)"),
1831
+ (SF.overlay("cola", "colb", 3), "OVERLAY(cola PLACING colb FROM 3)"),
1832
1832
  ],
1833
1833
  )
1834
1834
  def test_overlay(expression, expected):
@@ -2263,8 +2263,8 @@ def test_array_contains(expression, expected):
2263
2263
  @pytest.mark.parametrize(
2264
2264
  "expression, expected",
2265
2265
  [
2266
- (SF.arrays_overlap("cola", "colb"), "ARRAY_OVERLAPS(cola, colb)"),
2267
- (SF.arrays_overlap(SF.col("cola"), SF.col("colb")), "ARRAY_OVERLAPS(cola, colb)"),
2266
+ (SF.arrays_overlap("cola", "colb"), "cola && colb"),
2267
+ (SF.arrays_overlap(SF.col("cola"), SF.col("colb")), "cola && colb"),
2268
2268
  ],
2269
2269
  )
2270
2270
  def test_arrays_overlap(expression, expected):
@@ -4495,9 +4495,9 @@ def test_str_to_map(expression, expected):
4495
4495
  @pytest.mark.parametrize(
4496
4496
  "expression, expected",
4497
4497
  [
4498
- (SF.substr("cola", "colb"), "SUBSTR(cola, colb)"),
4499
- (SF.substr(SF.col("cola"), SF.col("colb")), "SUBSTR(cola, colb)"),
4500
- (SF.substr("cola", "colb", "colc"), "SUBSTR(cola, colb, colc)"),
4498
+ (SF.substr("cola", "colb"), "SUBSTRING(cola, colb)"),
4499
+ (SF.substr(SF.col("cola"), SF.col("colb")), "SUBSTRING(cola, colb)"),
4500
+ (SF.substr("cola", "colb", "colc"), "SUBSTRING(cola, colb, colc)"),
4501
4501
  ],
4502
4502
  )
4503
4503
  def test_substr(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
File without changes
File without changes
File without changes
File without changes
File without changes