sqlframe 3.28.2__tar.gz → 3.29.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.
- {sqlframe-3.28.2 → sqlframe-3.29.0}/PKG-INFO +7 -6
- {sqlframe-3.28.2 → sqlframe-3.29.0}/README.md +6 -5
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/databricks.md +1 -3
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/_version.py +2 -2
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/dataframe.py +12 -5
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe.egg-info/PKG-INFO +7 -6
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/test_engine_dataframe.py +44 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/.github/CODEOWNERS +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/.gitignore +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/.readthedocs.yaml +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/LICENSE +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/Makefile +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/cake.gif +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/bigquery.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/configuration.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/docs/postgres.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/duckdb.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/images/SF.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/images/favicon.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/index.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/postgres.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/redshift.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/requirements.txt +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/snowflake.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/spark.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/standalone.md +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/mkdocs.yml +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/pytest.ini +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/renovate.json +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/setup.cfg +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/setup.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/LICENSE +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/group.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/util.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/base/window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/py.typed +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe.egg-info/requires.txt +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/common_fixtures.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/conftest.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/test_engine_column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/test_int_functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/test_int_dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/conftest.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/duck/test_reader_options.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/spark/test_reader_options.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/test_column.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.0}/tests/unit/test_base_reader_options.py +0 -0
- {sqlframe-3.28.2 → sqlframe-3.29.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
|
+
Version: 3.29.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
|
@@ -34,18 +34,19 @@ License-File: LICENSE
|
|
34
34
|
|
35
35
|
SQLFrame implements the PySpark DataFrame API in order to enable running transformation pipelines directly on database engines - no Spark clusters or dependencies required.
|
36
36
|
|
37
|
-
SQLFrame currently supports the following engines
|
37
|
+
SQLFrame currently supports the following engines:
|
38
38
|
|
39
39
|
* [BigQuery](https://sqlframe.readthedocs.io/en/stable/bigquery/)
|
40
|
+
* [Databricks](https://sqlframe.readthedocs.io/en/stable/databricks)
|
40
41
|
* [DuckDB](https://sqlframe.readthedocs.io/en/stable/duckdb)
|
41
42
|
* [Postgres](https://sqlframe.readthedocs.io/en/stable/postgres)
|
42
43
|
* [Snowflake](https://sqlframe.readthedocs.io/en/stable/snowflake)
|
43
44
|
* [Spark](https://sqlframe.readthedocs.io/en/stable/spark)
|
44
45
|
|
45
|
-
There
|
46
|
+
There is also one engine in development. This engine lacks test coverage and robust documentation, but is available for testing:
|
46
47
|
|
47
48
|
* [Redshift](https://sqlframe.readthedocs.io/en/stable/redshift)
|
48
|
-
|
49
|
+
|
49
50
|
|
50
51
|
SQLFrame also has a "Standalone" session that be used to generate SQL without any connection to a database engine.
|
51
52
|
|
@@ -63,6 +64,8 @@ SQLFrame is great for:
|
|
63
64
|
```bash
|
64
65
|
# BigQuery
|
65
66
|
pip install "sqlframe[bigquery]"
|
67
|
+
# Databricks
|
68
|
+
pip install "sqlframe[databricks]"
|
66
69
|
# DuckDB
|
67
70
|
pip install "sqlframe[duckdb]"
|
68
71
|
# Postgres
|
@@ -73,8 +76,6 @@ pip install "sqlframe[snowflake]"
|
|
73
76
|
pip install "sqlframe[spark]"
|
74
77
|
# Redshift (in development)
|
75
78
|
pip install "sqlframe[redshift]"
|
76
|
-
# Databricks (in development)
|
77
|
-
pip install "sqlframe[databricks]"
|
78
79
|
# Standalone
|
79
80
|
pip install sqlframe
|
80
81
|
```
|
@@ -4,18 +4,19 @@
|
|
4
4
|
|
5
5
|
SQLFrame implements the PySpark DataFrame API in order to enable running transformation pipelines directly on database engines - no Spark clusters or dependencies required.
|
6
6
|
|
7
|
-
SQLFrame currently supports the following engines
|
7
|
+
SQLFrame currently supports the following engines:
|
8
8
|
|
9
9
|
* [BigQuery](https://sqlframe.readthedocs.io/en/stable/bigquery/)
|
10
|
+
* [Databricks](https://sqlframe.readthedocs.io/en/stable/databricks)
|
10
11
|
* [DuckDB](https://sqlframe.readthedocs.io/en/stable/duckdb)
|
11
12
|
* [Postgres](https://sqlframe.readthedocs.io/en/stable/postgres)
|
12
13
|
* [Snowflake](https://sqlframe.readthedocs.io/en/stable/snowflake)
|
13
14
|
* [Spark](https://sqlframe.readthedocs.io/en/stable/spark)
|
14
15
|
|
15
|
-
There
|
16
|
+
There is also one engine in development. This engine lacks test coverage and robust documentation, but is available for testing:
|
16
17
|
|
17
18
|
* [Redshift](https://sqlframe.readthedocs.io/en/stable/redshift)
|
18
|
-
|
19
|
+
|
19
20
|
|
20
21
|
SQLFrame also has a "Standalone" session that be used to generate SQL without any connection to a database engine.
|
21
22
|
|
@@ -33,6 +34,8 @@ SQLFrame is great for:
|
|
33
34
|
```bash
|
34
35
|
# BigQuery
|
35
36
|
pip install "sqlframe[bigquery]"
|
37
|
+
# Databricks
|
38
|
+
pip install "sqlframe[databricks]"
|
36
39
|
# DuckDB
|
37
40
|
pip install "sqlframe[duckdb]"
|
38
41
|
# Postgres
|
@@ -43,8 +46,6 @@ pip install "sqlframe[snowflake]"
|
|
43
46
|
pip install "sqlframe[spark]"
|
44
47
|
# Redshift (in development)
|
45
48
|
pip install "sqlframe[redshift]"
|
46
|
-
# Databricks (in development)
|
47
|
-
pip install "sqlframe[databricks]"
|
48
49
|
# Standalone
|
49
50
|
pip install sqlframe
|
50
51
|
```
|
@@ -1595,6 +1595,8 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
1595
1595
|
|
1596
1596
|
@operation(Operation.LIMIT)
|
1597
1597
|
def limit(self, num: int) -> Self:
|
1598
|
+
if limit_exp := self.expression.args.get("limit"):
|
1599
|
+
num = min(num, int(limit_exp.expression.this))
|
1598
1600
|
return self.copy(expression=self.expression.limit(num))
|
1599
1601
|
|
1600
1602
|
def toDF(self, *cols: str) -> Self:
|
@@ -1850,11 +1852,11 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
1850
1852
|
def head(self, n: int) -> t.List[Row]: ...
|
1851
1853
|
|
1852
1854
|
def head(self, n: t.Optional[int] = None) -> t.Union[t.Optional[Row], t.List[Row]]:
|
1853
|
-
|
1854
|
-
|
1855
|
-
if n
|
1856
|
-
return
|
1857
|
-
return
|
1855
|
+
df = self.limit(n or 1)
|
1856
|
+
collected = df.collect()
|
1857
|
+
if n is None:
|
1858
|
+
return seq_get(collected, 0)
|
1859
|
+
return collected
|
1858
1860
|
|
1859
1861
|
def first(self) -> t.Optional[Row]:
|
1860
1862
|
return self.head()
|
@@ -1935,6 +1937,11 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
1935
1937
|
def createGlobalTempView(self, name: str) -> None:
|
1936
1938
|
raise NotImplementedError("Global temp views are not yet supported")
|
1937
1939
|
|
1940
|
+
def isEmpty(self) -> bool:
|
1941
|
+
from sqlframe.base import functions as F
|
1942
|
+
|
1943
|
+
return not bool(self.select(F.lit(True)).head())
|
1944
|
+
|
1938
1945
|
"""
|
1939
1946
|
Stat Functions
|
1940
1947
|
"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sqlframe
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.29.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
|
@@ -34,18 +34,19 @@ License-File: LICENSE
|
|
34
34
|
|
35
35
|
SQLFrame implements the PySpark DataFrame API in order to enable running transformation pipelines directly on database engines - no Spark clusters or dependencies required.
|
36
36
|
|
37
|
-
SQLFrame currently supports the following engines
|
37
|
+
SQLFrame currently supports the following engines:
|
38
38
|
|
39
39
|
* [BigQuery](https://sqlframe.readthedocs.io/en/stable/bigquery/)
|
40
|
+
* [Databricks](https://sqlframe.readthedocs.io/en/stable/databricks)
|
40
41
|
* [DuckDB](https://sqlframe.readthedocs.io/en/stable/duckdb)
|
41
42
|
* [Postgres](https://sqlframe.readthedocs.io/en/stable/postgres)
|
42
43
|
* [Snowflake](https://sqlframe.readthedocs.io/en/stable/snowflake)
|
43
44
|
* [Spark](https://sqlframe.readthedocs.io/en/stable/spark)
|
44
45
|
|
45
|
-
There
|
46
|
+
There is also one engine in development. This engine lacks test coverage and robust documentation, but is available for testing:
|
46
47
|
|
47
48
|
* [Redshift](https://sqlframe.readthedocs.io/en/stable/redshift)
|
48
|
-
|
49
|
+
|
49
50
|
|
50
51
|
SQLFrame also has a "Standalone" session that be used to generate SQL without any connection to a database engine.
|
51
52
|
|
@@ -63,6 +64,8 @@ SQLFrame is great for:
|
|
63
64
|
```bash
|
64
65
|
# BigQuery
|
65
66
|
pip install "sqlframe[bigquery]"
|
67
|
+
# Databricks
|
68
|
+
pip install "sqlframe[databricks]"
|
66
69
|
# DuckDB
|
67
70
|
pip install "sqlframe[duckdb]"
|
68
71
|
# Postgres
|
@@ -73,8 +76,6 @@ pip install "sqlframe[snowflake]"
|
|
73
76
|
pip install "sqlframe[spark]"
|
74
77
|
# Redshift (in development)
|
75
78
|
pip install "sqlframe[redshift]"
|
76
|
-
# Databricks (in development)
|
77
|
-
pip install "sqlframe[databricks]"
|
78
79
|
# Standalone
|
79
80
|
pip install sqlframe
|
80
81
|
```
|
@@ -189,3 +189,47 @@ def test_show_from_create_with_space_with_schema(get_session: t.Callable[[], _Ba
|
|
189
189
|
df.printSchema()
|
190
190
|
captured = capsys.readouterr()
|
191
191
|
assert "|-- an tan:" in captured.out.strip()
|
192
|
+
|
193
|
+
|
194
|
+
def test_multiple_limit(get_session: t.Callable[[], _BaseSession], capsys, get_func) -> None:
|
195
|
+
session = get_session()
|
196
|
+
lit = get_func("lit", session)
|
197
|
+
df = session.range(20)
|
198
|
+
assert df.select("id").limit(10).limit(0).count() == 0
|
199
|
+
assert df.select("id").limit(0).limit(10).count() == 0
|
200
|
+
assert df.limit(0).limit(10).limit(5).count() == 0
|
201
|
+
assert df.limit(0).filter(lit(True)).limit(10).limit(5).count() == 0
|
202
|
+
|
203
|
+
|
204
|
+
def test_is_empty(get_session):
|
205
|
+
session = get_session()
|
206
|
+
df_non_empty = session.createDataFrame([(1, 4), (2, 5), (3, 6)], schema=["foo", "BAR"])
|
207
|
+
df_empty = session.createDataFrame([], schema=["foo", "BAR"])
|
208
|
+
|
209
|
+
assert not df_non_empty.isEmpty()
|
210
|
+
assert df_empty.isEmpty()
|
211
|
+
|
212
|
+
|
213
|
+
def test_head(get_session, get_func):
|
214
|
+
session = get_session()
|
215
|
+
lit = get_func("lit", session)
|
216
|
+
df_non_empty = session.createDataFrame(
|
217
|
+
data=[(2, "Alice"), (5, "Bob"), (8, "Charly")],
|
218
|
+
schema=["age", "name"],
|
219
|
+
)
|
220
|
+
df_empty = df_non_empty.filter(lit(False))
|
221
|
+
|
222
|
+
# head() on DataFrame containing data: single row
|
223
|
+
assert df_non_empty.head() == Row(**{"age": 2, "name": "Alice"})
|
224
|
+
|
225
|
+
# head() on empty DataFrame: None
|
226
|
+
assert df_empty.head() is None
|
227
|
+
|
228
|
+
# head(n) on DataFrame containing data: list of rows
|
229
|
+
assert df_non_empty.head(2) == [
|
230
|
+
Row(**{"age": 2, "name": "Alice"}),
|
231
|
+
Row(**{"age": 5, "name": "Bob"}),
|
232
|
+
]
|
233
|
+
|
234
|
+
# head(n) on empty DataFrame : empty list
|
235
|
+
assert df_empty.head(2) == []
|
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.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
File without changes
|
File without changes
|
{sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
File without changes
|
{sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
File without changes
|
{sqlframe-3.28.2 → sqlframe-3.29.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
File without changes
|
{sqlframe-3.28.2 → sqlframe-3.29.0}/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
|