sqlframe 3.37.0__tar.gz → 3.38.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.37.0 → sqlframe-3.38.0}/PKG-INFO +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.0}/setup.py +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/_version.py +2 -2
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/column.py +8 -1
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/session.py +6 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe.egg-info/requires.txt +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/test_engine_column.py +18 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/test_int_functions.py +7 -1
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/test_column.py +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.0}/.github/CODEOWNERS +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/.gitignore +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/.readthedocs.yaml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/LICENSE +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/Makefile +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/README.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/cake.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/bigquery.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/configuration.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/databricks.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/docs/postgres.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/duckdb.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/images/SF.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/images/favicon.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/index.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/postgres.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/redshift.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/requirements.txt +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/snowflake.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/spark.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/standalone.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/mkdocs.yml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/pytest.ini +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/renovate.json +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/setup.cfg +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/LICENSE +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/util.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/base/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/py.typed +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/common_fixtures.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/conftest.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/test_int_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/conftest.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/duck/test_reader_options.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/spark/test_reader_options.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/test_base_reader_options.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/test_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.0}/tests/unit/test_util.py +0 -0
@@ -222,6 +222,12 @@ class Column:
|
|
222
222
|
else:
|
223
223
|
value = value.astimezone(datetime.timezone.utc).isoformat(sep=" ")
|
224
224
|
return cls(exp.cast(exp.Literal.string(value), exp.DataType.Type.TIMESTAMPTZ))
|
225
|
+
elif isinstance(value, datetime.timedelta):
|
226
|
+
return cls(
|
227
|
+
exp.Interval(
|
228
|
+
this=exp.Literal.string(int(value.total_seconds())), unit=exp.Var(this="SECOND")
|
229
|
+
)
|
230
|
+
)
|
225
231
|
return cls(exp.convert(value))
|
226
232
|
|
227
233
|
@classmethod
|
@@ -413,8 +419,9 @@ class Column:
|
|
413
419
|
return self.invoke_expression_over_column(self, exp.StartsWith, expression=value.expression)
|
414
420
|
|
415
421
|
def endswith(self, value: t.Union[str, Column]) -> Column:
|
422
|
+
ends_with_func = get_func_from_session("endswith")
|
416
423
|
value = self._lit(value) if not isinstance(value, Column) else value
|
417
|
-
return
|
424
|
+
return ends_with_func(self, value)
|
418
425
|
|
419
426
|
def rlike(self, regexp: str) -> Column:
|
420
427
|
return self.invoke_expression_over_column(
|
@@ -12,6 +12,7 @@ from collections import defaultdict
|
|
12
12
|
from functools import cached_property
|
13
13
|
|
14
14
|
import sqlglot
|
15
|
+
from dateutil.relativedelta import relativedelta
|
15
16
|
from sqlglot import Dialect, exp
|
16
17
|
from sqlglot.dialects.dialect import DialectType, NormalizationStrategy
|
17
18
|
from sqlglot.expressions import parse_identifier
|
@@ -613,6 +614,11 @@ class _BaseSession(t.Generic[CATALOG, READER, WRITER, DF, TABLE, CONN, UDF_REGIS
|
|
613
614
|
return [cls._to_value(x) for x in value]
|
614
615
|
elif isinstance(value, datetime.datetime):
|
615
616
|
return value.replace(tzinfo=None)
|
617
|
+
elif isinstance(value, relativedelta):
|
618
|
+
return datetime.timedelta(
|
619
|
+
days=value.days, hours=value.hours, minutes=value.minutes, seconds=value.seconds
|
620
|
+
)
|
621
|
+
|
616
622
|
return value
|
617
623
|
|
618
624
|
@classmethod
|
@@ -90,3 +90,21 @@ def test_contains(get_session: t.Callable[[], _BaseSession], get_func):
|
|
90
90
|
df_bar_lit = df.select(df.a.contains(lit("bar"))).collect()
|
91
91
|
assert df_bar_lit[0][0] is False
|
92
92
|
assert df_bar_lit[1][0] is True
|
93
|
+
|
94
|
+
|
95
|
+
def test_endswith(get_session: t.Callable[[], _BaseSession], get_func):
|
96
|
+
session = get_session()
|
97
|
+
lit = get_func("lit", session)
|
98
|
+
df = session.createDataFrame([Row(a="abc"), Row(a="def")])
|
99
|
+
df_endswith_c = df.select(df.a.endswith("c")).collect()
|
100
|
+
assert df_endswith_c[0][0] is True
|
101
|
+
assert df_endswith_c[1][0] is False
|
102
|
+
df_endswith_c_lit = df.select(df.a.endswith(lit("c"))).collect()
|
103
|
+
assert df_endswith_c_lit[0][0] is True
|
104
|
+
assert df_endswith_c_lit[1][0] is False
|
105
|
+
df_endswith_f = df.select(df.a.endswith("f")).collect()
|
106
|
+
assert df_endswith_f[0][0] is False
|
107
|
+
assert df_endswith_f[1][0] is True
|
108
|
+
df_endswith_f_lit = df.select(df.a.endswith(lit("f"))).collect()
|
109
|
+
assert df_endswith_f_lit[0][0] is False
|
110
|
+
assert df_endswith_f_lit[1][0] is True
|
@@ -121,6 +121,7 @@ def get_types() -> t.Callable:
|
|
121
121
|
),
|
122
122
|
({"cola": 1}, {"cola": 1}),
|
123
123
|
(Row(**{"cola": 1, "colb": "test"}), Row(**{"cola": 1, "colb": "test"})),
|
124
|
+
(datetime.timedelta(1), datetime.timedelta(1)),
|
124
125
|
],
|
125
126
|
)
|
126
127
|
def test_lit(get_session_and_func, arg, expected):
|
@@ -141,6 +142,11 @@ def test_lit(get_session_and_func, arg, expected):
|
|
141
142
|
if isinstance(session, SnowflakeSession):
|
142
143
|
if isinstance(arg, Row):
|
143
144
|
pytest.skip("Snowflake doesn't support literal row types")
|
145
|
+
if isinstance(arg, datetime.timedelta):
|
146
|
+
pytest.skip("Snowflake doesn't support literal timedelta types")
|
147
|
+
if isinstance(session, DatabricksSession):
|
148
|
+
if isinstance(arg, datetime.timedelta):
|
149
|
+
pytest.skip("Databricks doesn't support literal timedelta types")
|
144
150
|
if isinstance(session, DuckDBSession):
|
145
151
|
if isinstance(arg, dict):
|
146
152
|
expected = Row(**expected)
|
@@ -3748,7 +3754,6 @@ def test_elt(get_session_and_func, get_func):
|
|
3748
3754
|
|
3749
3755
|
def test_endswith(get_session_and_func, get_func):
|
3750
3756
|
session, endswith = get_session_and_func("endswith")
|
3751
|
-
to_binary = get_func("to_binary", session)
|
3752
3757
|
df = session.createDataFrame(
|
3753
3758
|
[
|
3754
3759
|
(
|
@@ -3768,6 +3773,7 @@ def test_endswith(get_session_and_func, get_func):
|
|
3768
3773
|
],
|
3769
3774
|
["e", "f"],
|
3770
3775
|
)
|
3776
|
+
to_binary = get_func("to_binary", session)
|
3771
3777
|
df = df.select(to_binary("e").alias("e"), to_binary("f").alias("f"))
|
3772
3778
|
assert df.select(endswith("e", "f"), endswith("f", "e")).collect() == [
|
3773
3779
|
Row(value1=True, value2=False)
|
@@ -105,7 +105,7 @@ def test_startswith():
|
|
105
105
|
|
106
106
|
|
107
107
|
def test_endswith():
|
108
|
-
assert (F.col("cola").endswith("test")).sql() == "ENDSWITH(cola, 'test')"
|
108
|
+
assert (F.col("cola").endswith("test")).sql() == "ENDSWITH(cola, 'test') AS endswith__cola__"
|
109
109
|
|
110
110
|
|
111
111
|
def test_rlike():
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
File without changes
|
File without changes
|
{sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
File without changes
|
{sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
File without changes
|
{sqlframe-3.37.0 → sqlframe-3.38.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
File without changes
|
{sqlframe-3.37.0 → sqlframe-3.38.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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|