sqlframe 3.31.1__tar.gz → 3.31.3__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.
- {sqlframe-3.31.1 → sqlframe-3.31.3}/PKG-INFO +1 -1
- {sqlframe-3.31.1 → sqlframe-3.31.3}/setup.py +2 -2
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/_version.py +2 -2
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/functions.py +61 -5
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/session.py +2 -1
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe.egg-info/requires.txt +2 -2
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/test_int_functions.py +38 -1
- {sqlframe-3.31.1 → sqlframe-3.31.3}/.github/CODEOWNERS +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/.gitignore +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/.readthedocs.yaml +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/LICENSE +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/Makefile +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/README.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/cake.gif +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/bigquery.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/configuration.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/databricks.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/docs/postgres.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/duckdb.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/images/SF.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/images/favicon.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/index.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/postgres.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/redshift.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/requirements.txt +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/snowflake.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/spark.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/standalone.md +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/mkdocs.yml +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/pytest.ini +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/renovate.json +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/setup.cfg +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/LICENSE +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/group.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/util.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/base/window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/py.typed +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/common_fixtures.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/conftest.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/test_engine_column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/test_int_dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/conftest.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/duck/test_reader_options.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/spark/test_reader_options.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/test_column.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/test_base_reader_options.py +0 -0
- {sqlframe-3.31.1 → sqlframe-3.31.3}/tests/unit/test_util.py +0 -0
@@ -36,7 +36,7 @@ setup(
|
|
36
36
|
"pandas>=2,<3",
|
37
37
|
"pandas-stubs>=2,<3",
|
38
38
|
"psycopg>=3.1,<4",
|
39
|
-
"pyarrow>=10,<
|
39
|
+
"pyarrow>=10,<21",
|
40
40
|
"pyspark>=2,<3.6",
|
41
41
|
"pytest>=8.2.0,<8.4",
|
42
42
|
"pytest-forked",
|
@@ -70,7 +70,7 @@ setup(
|
|
70
70
|
"redshift_connector>=2.1.1,<2.2.0",
|
71
71
|
],
|
72
72
|
"snowflake": [
|
73
|
-
"snowflake-connector-python[secure-local-storage]>=3.10.0,<3.
|
73
|
+
"snowflake-connector-python[secure-local-storage]>=3.10.0,<3.16",
|
74
74
|
],
|
75
75
|
"spark": [
|
76
76
|
"pyspark>=2,<3.6",
|
@@ -625,11 +625,22 @@ def covar_samp(col1: ColumnOrName, col2: ColumnOrName) -> Column:
|
|
625
625
|
def first(col: ColumnOrName, ignorenulls: t.Optional[bool] = None) -> Column:
|
626
626
|
session = _get_session()
|
627
627
|
|
628
|
-
if session._is_duckdb:
|
629
|
-
ignorenulls = None
|
630
|
-
|
631
628
|
this = Column.invoke_expression_over_column(col, expression.First)
|
632
629
|
if ignorenulls:
|
630
|
+
if session._is_duckdb:
|
631
|
+
return Column(
|
632
|
+
expression.Filter(
|
633
|
+
this=this.expression,
|
634
|
+
expression=expression.Where(
|
635
|
+
this=expression.Not(
|
636
|
+
this=expression.Is(
|
637
|
+
this=Column.ensure_col(col).expression,
|
638
|
+
expression=expression.Null(),
|
639
|
+
)
|
640
|
+
)
|
641
|
+
),
|
642
|
+
)
|
643
|
+
)
|
633
644
|
return Column.invoke_expression_over_column(this, expression.IgnoreNulls)
|
634
645
|
return this
|
635
646
|
|
@@ -3266,12 +3277,57 @@ def find_in_set(str: ColumnOrName, str_array: ColumnOrName) -> Column:
|
|
3266
3277
|
return Column.invoke_anonymous_function(str, "find_in_set", str_array)
|
3267
3278
|
|
3268
3279
|
|
3269
|
-
@meta(unsupported_engines="
|
3280
|
+
@meta(unsupported_engines=["bigquery", "postgres", "snowflake"])
|
3270
3281
|
def first_value(col: ColumnOrName, ignoreNulls: t.Optional[t.Union[bool, Column]] = None) -> Column:
|
3282
|
+
"""Returns the first value of `col` for a group of rows. It will return the first non-null
|
3283
|
+
value it sees when `ignoreNulls` is set to true. If all values are null, then null is returned.
|
3284
|
+
|
3285
|
+
Parameters
|
3286
|
+
----------
|
3287
|
+
col : :class:`~pyspark.sql.Column` or str
|
3288
|
+
target column to work on.
|
3289
|
+
ignorenulls : :class:`~pyspark.sql.Column` or bool
|
3290
|
+
if first value is null then look for first non-null value.
|
3291
|
+
|
3292
|
+
Returns
|
3293
|
+
-------
|
3294
|
+
:class:`~pyspark.sql.Column`
|
3295
|
+
some value of `col` for a group of rows.
|
3296
|
+
|
3297
|
+
Examples
|
3298
|
+
--------
|
3299
|
+
>>> import pyspark.sql.functions as sf
|
3300
|
+
>>> spark.createDataFrame(
|
3301
|
+
... [(None, 1), ("a", 2), ("a", 3), ("b", 8), (None, 2)], ["a", "b"]
|
3302
|
+
... ).select(sf.first_value('a'), sf.first_value('b')).show()
|
3303
|
+
+--------------+--------------+
|
3304
|
+
|first_value(a)|first_value(b)|
|
3305
|
+
+--------------+--------------+
|
3306
|
+
| NULL| 1|
|
3307
|
+
+--------------+--------------+
|
3308
|
+
|
3309
|
+
>>> import pyspark.sql.functions as sf
|
3310
|
+
>>> spark.createDataFrame(
|
3311
|
+
... [(None, 1), ("a", 2), ("a", 3), ("b", 8), (None, 2)], ["a", "b"]
|
3312
|
+
... ).select(sf.first_value('a', True), sf.first_value('b', True)).show()
|
3313
|
+
+--------------+--------------+
|
3314
|
+
|first_value(a)|first_value(b)|
|
3315
|
+
+--------------+--------------+
|
3316
|
+
| a| 1|
|
3317
|
+
+--------------+--------------+
|
3318
|
+
"""
|
3319
|
+
session = _get_session()
|
3320
|
+
|
3271
3321
|
column = Column.invoke_expression_over_column(col, expression.FirstValue)
|
3272
3322
|
|
3273
3323
|
if ignoreNulls:
|
3274
|
-
|
3324
|
+
column = Column(expression.IgnoreNulls(this=column.column_expression))
|
3325
|
+
|
3326
|
+
if session._is_duckdb:
|
3327
|
+
agg_func = first(col, ignoreNulls) # type: ignore
|
3328
|
+
agg_func.expression._meta = agg_func.expression._meta or {}
|
3329
|
+
agg_func.expression._meta["window_func"] = column.expression
|
3330
|
+
return agg_func
|
3275
3331
|
return column
|
3276
3332
|
|
3277
3333
|
|
@@ -41,13 +41,14 @@ class DuckDBSession(
|
|
41
41
|
|
42
42
|
def __init__(self, conn: t.Optional[DuckDBPyConnection] = None, *args, **kwargs):
|
43
43
|
import duckdb
|
44
|
+
from duckdb import InvalidInputException
|
44
45
|
from duckdb.typing import VARCHAR
|
45
46
|
|
46
47
|
if not hasattr(self, "_conn"):
|
47
48
|
conn = conn or duckdb.connect()
|
48
49
|
try:
|
49
50
|
conn.create_function("SOUNDEX", lambda x: soundex(x), return_type=VARCHAR)
|
50
|
-
except ImportError:
|
51
|
+
except (ImportError, InvalidInputException):
|
51
52
|
pass
|
52
53
|
|
53
54
|
super().__init__(conn, *args, **kwargs)
|
@@ -18,7 +18,7 @@ pandas-stubs<3,>=2
|
|
18
18
|
pandas<3,>=2
|
19
19
|
pre-commit<5,>=3.7
|
20
20
|
psycopg<4,>=3.1
|
21
|
-
pyarrow<
|
21
|
+
pyarrow<21,>=10
|
22
22
|
pyspark<3.6,>=2
|
23
23
|
pytest-forked
|
24
24
|
pytest-postgresql<8,>=6
|
@@ -51,7 +51,7 @@ psycopg2<3,>=2.8
|
|
51
51
|
redshift_connector<2.2.0,>=2.1.1
|
52
52
|
|
53
53
|
[snowflake]
|
54
|
-
snowflake-connector-python[secure-local-storage]<3.
|
54
|
+
snowflake-connector-python[secure-local-storage]<3.16,>=3.10.0
|
55
55
|
|
56
56
|
[spark]
|
57
57
|
pyspark<3.6,>=2
|
@@ -3753,8 +3753,10 @@ def test_find_in_set(get_session_and_func, get_func):
|
|
3753
3753
|
assert df.select(find_in_set(df.a, df.b).alias("r")).first()[0] == 3
|
3754
3754
|
|
3755
3755
|
|
3756
|
-
def test_first_value(get_session_and_func, get_func):
|
3756
|
+
def test_first_value(get_session_and_func, get_func, get_window):
|
3757
3757
|
session, first_value = get_session_and_func("first_value")
|
3758
|
+
col = get_func("col", session)
|
3759
|
+
Window = get_window(session)
|
3758
3760
|
assert session.createDataFrame(
|
3759
3761
|
[(None, 1), ("a", 2), ("a", 3), ("b", 8), ("b", 2)], ["a", "b"]
|
3760
3762
|
).select(first_value("a"), first_value("b")).collect() == [Row(value1=None, value2=1)]
|
@@ -3763,6 +3765,41 @@ def test_first_value(get_session_and_func, get_func):
|
|
3763
3765
|
).select(first_value("a", True), first_value("b", True)).collect() == [
|
3764
3766
|
Row(value1="a", value2=1)
|
3765
3767
|
]
|
3768
|
+
data = {
|
3769
|
+
"b": [None, None, "a", None, "b", "c", None, None, None, "d"],
|
3770
|
+
"idx": list(range(10)),
|
3771
|
+
}
|
3772
|
+
window = (
|
3773
|
+
Window().orderBy(col("idx").asc_nulls_first()).rowsBetween(Window.unboundedPreceding, 0)
|
3774
|
+
)
|
3775
|
+
assert session.createDataFrame(pd.DataFrame(data)).withColumn(
|
3776
|
+
"bf", first_value("b", ignoreNulls=True).over(window)
|
3777
|
+
).collect() == [
|
3778
|
+
Row(b=None, idx=0, bf=None),
|
3779
|
+
Row(b=None, idx=1, bf=None),
|
3780
|
+
Row(b="a", idx=2, bf="a"),
|
3781
|
+
Row(b=None, idx=3, bf="a"),
|
3782
|
+
Row(b="b", idx=4, bf="a"),
|
3783
|
+
Row(b="c", idx=5, bf="a"),
|
3784
|
+
Row(b=None, idx=6, bf="a"),
|
3785
|
+
Row(b=None, idx=7, bf="a"),
|
3786
|
+
Row(b=None, idx=8, bf="a"),
|
3787
|
+
Row(b="d", idx=9, bf="a"),
|
3788
|
+
]
|
3789
|
+
assert session.createDataFrame(pd.DataFrame(data)).withColumn(
|
3790
|
+
"bf", first_value("b").over(window)
|
3791
|
+
).collect() == [
|
3792
|
+
Row(b=None, idx=0, bf=None),
|
3793
|
+
Row(b=None, idx=1, bf=None),
|
3794
|
+
Row(b="a", idx=2, bf=None),
|
3795
|
+
Row(b=None, idx=3, bf=None),
|
3796
|
+
Row(b="b", idx=4, bf=None),
|
3797
|
+
Row(b="c", idx=5, bf=None),
|
3798
|
+
Row(b=None, idx=6, bf=None),
|
3799
|
+
Row(b=None, idx=7, bf=None),
|
3800
|
+
Row(b=None, idx=8, bf=None),
|
3801
|
+
Row(b="d", idx=9, bf=None),
|
3802
|
+
]
|
3766
3803
|
|
3767
3804
|
|
3768
3805
|
def test_get(get_session_and_func, get_func):
|
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
|
{sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
File without changes
|
File without changes
|
{sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
File without changes
|
{sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
File without changes
|
{sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
File without changes
|
{sqlframe-3.31.1 → sqlframe-3.31.3}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif
RENAMED
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
|
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
|
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
|
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
|
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
|
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
|