sqlframe 3.22.0__tar.gz → 3.22.1__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.22.0 → sqlframe-3.22.1}/PKG-INFO +1 -1
- {sqlframe-3.22.0 → sqlframe-3.22.1}/setup.py +1 -1
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/_version.py +9 -4
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/catalog.py +6 -3
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/util.py +0 -9
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/window.py +19 -30
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/session.py +1 -3
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe.egg-info/requires.txt +1 -1
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/test_int_dataframe.py +86 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/test_column.py +4 -2
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/test_window.py +18 -6
- {sqlframe-3.22.0 → sqlframe-3.22.1}/.github/CODEOWNERS +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/.gitignore +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/.readthedocs.yaml +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/LICENSE +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/Makefile +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/README.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/cake.gif +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/bigquery.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/configuration.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/databricks.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/docs/images/favicon_old.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/docs/images/sqlframe_diagram.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/docs/postgres.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/duckdb.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/images/SF.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/images/favicon.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/images/favicon_old.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/images/sqlframe_diagram.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/index.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/postgres.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/redshift.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/requirements.txt +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/snowflake.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/spark.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/standalone.md +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/mkdocs.yml +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/pytest.ini +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/renovate.json +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/setup.cfg +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/LICENSE +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/group.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/common_fixtures.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/conftest.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/test_engine_column.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/test_int_functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/conftest.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.22.0 → sqlframe-3.22.1}/tests/unit/test_util.py +0 -0
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
# file generated by
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
2
|
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
|
|
5
|
+
|
|
3
6
|
TYPE_CHECKING = False
|
|
4
7
|
if TYPE_CHECKING:
|
|
5
|
-
from typing import Tuple
|
|
8
|
+
from typing import Tuple
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
6
11
|
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
7
12
|
else:
|
|
8
13
|
VERSION_TUPLE = object
|
|
@@ -12,5 +17,5 @@ __version__: str
|
|
|
12
17
|
__version_tuple__: VERSION_TUPLE
|
|
13
18
|
version_tuple: VERSION_TUPLE
|
|
14
19
|
|
|
15
|
-
__version__ = version = '3.22.
|
|
16
|
-
__version_tuple__ = version_tuple = (3, 22,
|
|
20
|
+
__version__ = version = '3.22.1'
|
|
21
|
+
__version_tuple__ = version_tuple = (3, 22, 1)
|
|
@@ -70,13 +70,16 @@ class _BaseCatalog(t.Generic[SESSION, DF]):
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
def add_table(
|
|
73
|
-
self,
|
|
73
|
+
self,
|
|
74
|
+
table: exp.Table | str,
|
|
75
|
+
column_mapping: t.Optional[ColumnMapping] = None,
|
|
76
|
+
**kwargs: t.Any,
|
|
74
77
|
) -> None:
|
|
75
78
|
# TODO: Making this an update or add
|
|
76
79
|
table = self.ensure_table(table)
|
|
77
80
|
if self._schema.find(table):
|
|
78
81
|
return
|
|
79
|
-
if
|
|
82
|
+
if column_mapping is None:
|
|
80
83
|
try:
|
|
81
84
|
column_mapping = {
|
|
82
85
|
normalize_string(
|
|
@@ -100,7 +103,7 @@ class _BaseCatalog(t.Generic[SESSION, DF]):
|
|
|
100
103
|
if column.this.quoted:
|
|
101
104
|
self._quoted_columns[table].append(column.this.name)
|
|
102
105
|
|
|
103
|
-
self._schema.add_table(table, column_mapping, dialect=self.session.input_dialect)
|
|
106
|
+
self._schema.add_table(table, column_mapping, dialect=self.session.input_dialect, **kwargs)
|
|
104
107
|
|
|
105
108
|
def getDatabase(self, dbName: str) -> Database:
|
|
106
109
|
"""Get the database with the specified name.
|
|
@@ -279,15 +279,6 @@ def verify_openai_installed():
|
|
|
279
279
|
)
|
|
280
280
|
|
|
281
281
|
|
|
282
|
-
def verify_numpy_installed():
|
|
283
|
-
try:
|
|
284
|
-
import numpy # noqa
|
|
285
|
-
except ImportError:
|
|
286
|
-
raise ImportError(
|
|
287
|
-
"""Numpy is required for this functionality. `pip install "sqlframe[pandas]"` (also include your engine if needed) to install pandas/numpy."""
|
|
288
|
-
)
|
|
289
|
-
|
|
290
|
-
|
|
291
282
|
def quote_preserving_alias_or_name(col: t.Union[exp.Column, exp.Alias]) -> str:
|
|
292
283
|
from sqlframe.base.session import _BaseSession
|
|
293
284
|
|
|
@@ -82,37 +82,26 @@ class WindowSpec:
|
|
|
82
82
|
def _calc_start_end(
|
|
83
83
|
self, start: int, end: int
|
|
84
84
|
) -> t.Dict[str, t.Optional[t.Union[str, exp.Expression]]]:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
def get_value_and_side(x: int) -> t.Tuple[t.Union[str, exp.Expression], t.Optional[str]]:
|
|
86
|
+
if x == Window.currentRow:
|
|
87
|
+
return "CURRENT ROW", None
|
|
88
|
+
if x < 0:
|
|
89
|
+
side = "PRECEDING"
|
|
90
|
+
value = "UNBOUNDED" if x <= Window.unboundedPreceding else F.lit(abs(x)).expression
|
|
91
|
+
return value, side
|
|
92
|
+
else:
|
|
93
|
+
side = "FOLLOWING"
|
|
94
|
+
value = "UNBOUNDED" if x >= Window.unboundedFollowing else F.lit(x).expression
|
|
95
|
+
return value, side
|
|
96
|
+
|
|
97
|
+
start, start_side = get_value_and_side(start) # type: ignore
|
|
98
|
+
end, end_side = get_value_and_side(end) # type: ignore
|
|
99
|
+
return {
|
|
100
|
+
"start": start, # type: ignore
|
|
101
|
+
"start_side": start_side,
|
|
102
|
+
"end": end, # type: ignore
|
|
103
|
+
"end_side": end_side,
|
|
88
104
|
}
|
|
89
|
-
if start == Window.currentRow:
|
|
90
|
-
kwargs["start"] = "CURRENT ROW"
|
|
91
|
-
else:
|
|
92
|
-
kwargs = {
|
|
93
|
-
**kwargs,
|
|
94
|
-
**{
|
|
95
|
-
"start_side": "PRECEDING",
|
|
96
|
-
"start": (
|
|
97
|
-
"UNBOUNDED"
|
|
98
|
-
if start <= Window.unboundedPreceding
|
|
99
|
-
else F.lit(start).expression
|
|
100
|
-
),
|
|
101
|
-
},
|
|
102
|
-
}
|
|
103
|
-
if end == Window.currentRow:
|
|
104
|
-
kwargs["end"] = "CURRENT ROW"
|
|
105
|
-
else:
|
|
106
|
-
kwargs = {
|
|
107
|
-
**kwargs,
|
|
108
|
-
**{
|
|
109
|
-
"end_side": "FOLLOWING",
|
|
110
|
-
"end": (
|
|
111
|
-
"UNBOUNDED" if end >= Window.unboundedFollowing else F.lit(end).expression
|
|
112
|
-
),
|
|
113
|
-
},
|
|
114
|
-
}
|
|
115
|
-
return kwargs
|
|
116
105
|
|
|
117
106
|
def rowsBetween(self, start: int, end: int) -> WindowSpec:
|
|
118
107
|
window_spec = self.copy()
|
|
@@ -4,7 +4,7 @@ import typing as t
|
|
|
4
4
|
from functools import cached_property
|
|
5
5
|
|
|
6
6
|
from sqlframe.base.session import _BaseSession
|
|
7
|
-
from sqlframe.base.util import soundex
|
|
7
|
+
from sqlframe.base.util import soundex
|
|
8
8
|
from sqlframe.duckdb.catalog import DuckDBCatalog
|
|
9
9
|
from sqlframe.duckdb.dataframe import DuckDBDataFrame
|
|
10
10
|
from sqlframe.duckdb.readwriter import (
|
|
@@ -46,8 +46,6 @@ class DuckDBSession(
|
|
|
46
46
|
if not hasattr(self, "_conn"):
|
|
47
47
|
conn = conn or duckdb.connect()
|
|
48
48
|
try:
|
|
49
|
-
# Creating a function requires numpy to be installed so if they don't have it, we'll just skip it
|
|
50
|
-
verify_numpy_installed()
|
|
51
49
|
conn.create_function("SOUNDEX", lambda x: soundex(x), return_type=VARCHAR)
|
|
52
50
|
except ImportError:
|
|
53
51
|
pass
|
|
@@ -6,8 +6,10 @@ import pandas as pd
|
|
|
6
6
|
import pytest
|
|
7
7
|
from _pytest.fixtures import FixtureRequest
|
|
8
8
|
from pyspark.sql import DataFrame as PySparkDataFrame
|
|
9
|
+
from pyspark.sql import Window
|
|
9
10
|
from pyspark.sql import functions as F
|
|
10
11
|
|
|
12
|
+
from sqlframe.standalone import Window as SWindow
|
|
11
13
|
from sqlframe.standalone import functions as SF
|
|
12
14
|
from sqlframe.standalone.dataframe import StandaloneDataFrame
|
|
13
15
|
from tests.integration.fixtures import StandaloneSession, is_snowflake
|
|
@@ -2548,3 +2550,87 @@ def test_full_outer_nulls_no_match(
|
|
|
2548
2550
|
dfs = dfs_concept_1.join(dfs_concept_2, on="col1", how="outer")
|
|
2549
2551
|
|
|
2550
2552
|
compare_frames(df, dfs, compare_schema=False)
|
|
2553
|
+
|
|
2554
|
+
|
|
2555
|
+
# https://github.com/eakmanrq/sqlframe/issues/317
|
|
2556
|
+
def test_rows_between_negative_start(
|
|
2557
|
+
pyspark_employee: PySparkDataFrame,
|
|
2558
|
+
get_df: t.Callable[[str], BaseDataFrame],
|
|
2559
|
+
compare_frames: t.Callable,
|
|
2560
|
+
):
|
|
2561
|
+
session = pyspark_employee.sparkSession
|
|
2562
|
+
df = session.createDataFrame(
|
|
2563
|
+
pd.DataFrame(
|
|
2564
|
+
{"store": [1, 1, 1, 2, 2, 2, 2], "price": [1, 2, 3, 4, 3, 2, 1], "date": list(range(7))}
|
|
2565
|
+
)
|
|
2566
|
+
)
|
|
2567
|
+
window = Window().partitionBy("store").orderBy("date").rowsBetween(-1, 1)
|
|
2568
|
+
df = df.withColumn("rolling_price", F.mean("price").over(window))
|
|
2569
|
+
|
|
2570
|
+
employee = get_df("employee")
|
|
2571
|
+
sf_session = employee.session
|
|
2572
|
+
dfs = sf_session.createDataFrame(
|
|
2573
|
+
pd.DataFrame(
|
|
2574
|
+
{"store": [1, 1, 1, 2, 2, 2, 2], "price": [1, 2, 3, 4, 3, 2, 1], "date": list(range(7))}
|
|
2575
|
+
)
|
|
2576
|
+
)
|
|
2577
|
+
swindow = SWindow().partitionBy("store").orderBy("date").rowsBetween(-1, 1)
|
|
2578
|
+
dfs = dfs.withColumn("rolling_price", SF.mean("price").over(swindow))
|
|
2579
|
+
|
|
2580
|
+
compare_frames(df, dfs, compare_schema=False)
|
|
2581
|
+
|
|
2582
|
+
|
|
2583
|
+
# https://github.com/eakmanrq/sqlframe/issues/317
|
|
2584
|
+
def test_rows_between_negative_end(
|
|
2585
|
+
pyspark_employee: PySparkDataFrame,
|
|
2586
|
+
get_df: t.Callable[[str], BaseDataFrame],
|
|
2587
|
+
compare_frames: t.Callable,
|
|
2588
|
+
):
|
|
2589
|
+
session = pyspark_employee.sparkSession
|
|
2590
|
+
df = session.createDataFrame(
|
|
2591
|
+
pd.DataFrame(
|
|
2592
|
+
{"store": [1, 1, 1, 2, 2, 2, 2], "price": [1, 2, 3, 4, 3, 2, 1], "date": list(range(7))}
|
|
2593
|
+
)
|
|
2594
|
+
)
|
|
2595
|
+
window = Window().partitionBy("store").orderBy("date").rowsBetween(-2, -1)
|
|
2596
|
+
df = df.withColumn("rolling_price", F.mean("price").over(window))
|
|
2597
|
+
|
|
2598
|
+
employee = get_df("employee")
|
|
2599
|
+
sf_session = employee.session
|
|
2600
|
+
dfs = sf_session.createDataFrame(
|
|
2601
|
+
pd.DataFrame(
|
|
2602
|
+
{"store": [1, 1, 1, 2, 2, 2, 2], "price": [1, 2, 3, 4, 3, 2, 1], "date": list(range(7))}
|
|
2603
|
+
)
|
|
2604
|
+
)
|
|
2605
|
+
swindow = SWindow().partitionBy("store").orderBy("date").rowsBetween(-2, -1)
|
|
2606
|
+
dfs = dfs.withColumn("rolling_price", SF.mean("price").over(swindow))
|
|
2607
|
+
|
|
2608
|
+
compare_frames(df, dfs, compare_schema=False)
|
|
2609
|
+
|
|
2610
|
+
|
|
2611
|
+
# https://github.com/eakmanrq/sqlframe/issues/317
|
|
2612
|
+
def test_rows_between_positive_both_start_end(
|
|
2613
|
+
pyspark_employee: PySparkDataFrame,
|
|
2614
|
+
get_df: t.Callable[[str], BaseDataFrame],
|
|
2615
|
+
compare_frames: t.Callable,
|
|
2616
|
+
):
|
|
2617
|
+
session = pyspark_employee.sparkSession
|
|
2618
|
+
df = session.createDataFrame(
|
|
2619
|
+
pd.DataFrame(
|
|
2620
|
+
{"store": [1, 1, 1, 2, 2, 2, 2], "price": [1, 2, 3, 4, 3, 2, 1], "date": list(range(7))}
|
|
2621
|
+
)
|
|
2622
|
+
)
|
|
2623
|
+
window = Window().partitionBy("store").orderBy("date").rowsBetween(1, 2)
|
|
2624
|
+
df = df.withColumn("rolling_price", F.mean("price").over(window))
|
|
2625
|
+
|
|
2626
|
+
employee = get_df("employee")
|
|
2627
|
+
sf_session = employee.session
|
|
2628
|
+
dfs = sf_session.createDataFrame(
|
|
2629
|
+
pd.DataFrame(
|
|
2630
|
+
{"store": [1, 1, 1, 2, 2, 2, 2], "price": [1, 2, 3, 4, 3, 2, 1], "date": list(range(7))}
|
|
2631
|
+
)
|
|
2632
|
+
)
|
|
2633
|
+
swindow = SWindow().partitionBy("store").orderBy("date").rowsBetween(1, 2)
|
|
2634
|
+
dfs = dfs.withColumn("rolling_price", SF.mean("price").over(swindow))
|
|
2635
|
+
|
|
2636
|
+
compare_frames(df, dfs, compare_schema=False)
|
|
@@ -207,7 +207,9 @@ def test_over():
|
|
|
207
207
|
assert (
|
|
208
208
|
(
|
|
209
209
|
F.sum("cola").over(
|
|
210
|
-
Window.partitionBy("colb")
|
|
210
|
+
Window.partitionBy("colb")
|
|
211
|
+
.orderBy("colc")
|
|
212
|
+
.rowsBetween(-1, Window.unboundedFollowing)
|
|
211
213
|
)
|
|
212
214
|
).sql()
|
|
213
215
|
== "SUM(cola) OVER (PARTITION BY colb ORDER BY colc ROWS BETWEEN 1 PRECEDING AND UNBOUNDED FOLLOWING)"
|
|
@@ -217,7 +219,7 @@ def test_over():
|
|
|
217
219
|
F.sum("cola").over(
|
|
218
220
|
Window.partitionBy("colb")
|
|
219
221
|
.orderBy("colc")
|
|
220
|
-
.rangeBetween(1, Window.unboundedFollowing)
|
|
222
|
+
.rangeBetween(-1, Window.unboundedFollowing)
|
|
221
223
|
)
|
|
222
224
|
).sql()
|
|
223
225
|
== "SUM(cola) OVER (PARTITION BY colb ORDER BY colc RANGE BETWEEN 1 PRECEDING AND UNBOUNDED FOLLOWING)"
|
|
@@ -11,29 +11,41 @@ from sqlframe.standalone.window import Window, WindowSpec
|
|
|
11
11
|
(Window.partitionBy(F.col("cola"), F.col("colb")), "OVER (PARTITION BY cola, colb)"),
|
|
12
12
|
(WindowSpec().orderBy("cola", "colb"), "OVER (ORDER BY cola, colb)"),
|
|
13
13
|
(Window.orderBy("cola", "colb"), "OVER (ORDER BY cola, colb)"),
|
|
14
|
-
(WindowSpec().rowsBetween(3, 5), "OVER (ROWS BETWEEN 3
|
|
15
|
-
(Window.rowsBetween(3, 5), "OVER (ROWS BETWEEN 3
|
|
16
|
-
(WindowSpec().rangeBetween(3, 5), "OVER (RANGE BETWEEN 3
|
|
17
|
-
(Window.rangeBetween(3, 5), "OVER (RANGE BETWEEN 3
|
|
14
|
+
(WindowSpec().rowsBetween(3, 5), "OVER (ROWS BETWEEN 3 FOLLOWING AND 5 FOLLOWING)"),
|
|
15
|
+
(Window.rowsBetween(3, 5), "OVER (ROWS BETWEEN 3 FOLLOWING AND 5 FOLLOWING)"),
|
|
16
|
+
(WindowSpec().rangeBetween(3, 5), "OVER (RANGE BETWEEN 3 FOLLOWING AND 5 FOLLOWING)"),
|
|
17
|
+
(Window.rangeBetween(3, 5), "OVER (RANGE BETWEEN 3 FOLLOWING AND 5 FOLLOWING)"),
|
|
18
18
|
(
|
|
19
19
|
Window.rowsBetween(Window.unboundedPreceding, 2),
|
|
20
20
|
"OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND 2 FOLLOWING)",
|
|
21
21
|
),
|
|
22
22
|
(
|
|
23
23
|
Window.rowsBetween(1, Window.unboundedFollowing),
|
|
24
|
-
"OVER (ROWS BETWEEN 1
|
|
24
|
+
"OVER (ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING)",
|
|
25
25
|
),
|
|
26
26
|
(
|
|
27
27
|
Window.rowsBetween(Window.unboundedPreceding, Window.unboundedFollowing),
|
|
28
28
|
"OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)",
|
|
29
29
|
),
|
|
30
|
+
(
|
|
31
|
+
Window.rowsBetween(-1, Window.currentRow),
|
|
32
|
+
"OVER (ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)",
|
|
33
|
+
),
|
|
34
|
+
(
|
|
35
|
+
Window.rowsBetween(-1, 2),
|
|
36
|
+
"OVER (ROWS BETWEEN 1 PRECEDING AND 2 FOLLOWING)",
|
|
37
|
+
),
|
|
38
|
+
(
|
|
39
|
+
Window.rowsBetween(-2, -1),
|
|
40
|
+
"OVER (ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING)",
|
|
41
|
+
),
|
|
30
42
|
(
|
|
31
43
|
Window.rangeBetween(Window.unboundedPreceding, 2),
|
|
32
44
|
"OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND 2 FOLLOWING)",
|
|
33
45
|
),
|
|
34
46
|
(
|
|
35
47
|
Window.rangeBetween(1, Window.unboundedFollowing),
|
|
36
|
-
"OVER (RANGE BETWEEN 1
|
|
48
|
+
"OVER (RANGE BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING)",
|
|
37
49
|
),
|
|
38
50
|
(
|
|
39
51
|
Window.rangeBetween(Window.unboundedPreceding, Window.unboundedFollowing),
|
|
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.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
|
File without changes
|
|
File without changes
|
{sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
|
File without changes
|
{sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
|
File without changes
|
{sqlframe-3.22.0 → sqlframe-3.22.1}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
|
File without changes
|
{sqlframe-3.22.0 → sqlframe-3.22.1}/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
|