diff --git a/.github/workflows/kedro-datasets.yml b/.github/workflows/kedro-datasets.yml index d5aae0282..6ff234aa9 100644 --- a/.github/workflows/kedro-datasets.yml +++ b/.github/workflows/kedro-datasets.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest, windows-latest ] - python-version: [ "3.10", "3.11", "3.12" ] + python-version: [ "3.13" ] uses: ./.github/workflows/unit-tests.yml with: plugin: kedro-datasets diff --git a/kedro-datasets/RELEASE.md b/kedro-datasets/RELEASE.md index b48bcce39..e69d43ad7 100755 --- a/kedro-datasets/RELEASE.md +++ b/kedro-datasets/RELEASE.md @@ -2,6 +2,7 @@ ## Major features and improvements +- Added support for Python 3.13 - Supported passing `database` to `ibis.TableDataset` for load and save operations. - Added functionality to save pandas DataFrames directly to Snowflake, facilitating seamless `.csv` ingestion. - Added Python 3.9, 3.10 and 3.11 support for `snowflake.SnowflakeTableDataset`. diff --git a/kedro-datasets/pyproject.toml b/kedro-datasets/pyproject.toml index 91b938c19..84e6a6deb 100644 --- a/kedro-datasets/pyproject.toml +++ b/kedro-datasets/pyproject.toml @@ -98,7 +98,7 @@ pandas-jsondataset = ["kedro-datasets[pandas-base]"] pandas-parquetdataset = ["kedro-datasets[pandas-base]", "pyarrow>=6.0"] pandas-sqltabledataset = ["kedro-datasets[pandas-base]", "SQLAlchemy>=1.4, <3.0"] pandas-sqlquerydataset = ["kedro-datasets[pandas-base]", "SQLAlchemy>=1.4, <3.0", "pyodbc>=4.0"] -pandas-xmldataset = ["kedro-datasets[pandas-base]", "lxml~=4.6"] +pandas-xmldataset = ["kedro-datasets[pandas-base]", "lxml"] pandas = [ """kedro-datasets[pandas-csvdataset,\ pandas-deltatabledataset,\ @@ -115,7 +115,7 @@ pandas = [ pandas-xmldataset]""" ] -pickle-pickledataset = ["compress-pickle[lz4]~=2.1.0"] +pickle-pickledataset = ["compress-pickle[lz4]>=2.1.0"] pickle = ["kedro-datasets[pickle-pickledataset]"] pillow-imagedataset = ["Pillow>=9.0"] @@ -212,7 +212,7 @@ test = [ "compress-pickle[lz4]~=2.1.0", "coverage>=7.2.0", "dask[complete]>=2021.10", - "delta-spark>=1.0, <3.0", + "delta-spark>=1.0, <4.0", "deltalake>=0.10.0", "dill~=0.3.1", "filelock>=3.4.0, <4.0", @@ -227,7 +227,7 @@ test = [ "joblib>=0.14", "jupyterlab>=3.0", "jupyter~=1.0", - "lxml~=4.6", + "lxml~=5.3", "matplotlib>=3.5, <4.0", "memory_profiler>=0.50.0, <1.0", "moto==5.0.0", @@ -239,7 +239,8 @@ test = [ "plotly>=4.8.0, <6.0", "polars[deltalake,xlsx2csv]>=1.0", "pyarrow>=1.0; python_version < '3.11'", - "pyarrow>=7.0; python_version >= '3.11'", # Adding to avoid numpy build errors + "pyarrow>=7.0; python_version >= '3.11' and python_version < '3.13'", # Adding to avoid numpy build errors + "pyarrow>=18.0; python_version >= '3.13'", "pyodbc~=5.0", "pyspark>=3.0; python_version < '3.11'", "pyspark>=3.4; python_version >= '3.11'", @@ -258,8 +259,8 @@ test = [ "pyOpenSSL>=22.1.0", # Workaround for incorrect pin in the snowflake-connector-python package; see https://github.com/snowflakedb/snowflake-connector-python/issues/2109 "SQLAlchemy>=1.2", "tables>=3.6", - "tensorflow-macos~=2.0; platform_system == 'Darwin' and platform_machine == 'arm64'", - "tensorflow~=2.0; platform_system != 'Darwin' or platform_machine != 'arm64'", + "tensorflow-macos~=2.12; platform_system == 'Darwin' and platform_machine == 'arm64' and python_version < '3.13'", + "tensorflow~=2.12; (platform_system != 'Darwin' or platform_machine != 'arm64') and python_version < '3.13'", "triad>=0.6.7, <1.0", "xarray>=2023.1.0", "xlsxwriter~=1.0", @@ -274,7 +275,7 @@ lint = [ "bandit>=1.6.2, <2.0", "blacken-docs==1.9.2", "black~=22.0", - "import-linter[toml]==1.2.6", + "import-linter[toml]>=1.2.6", "mypy~=1.0", "pre-commit>=2.9.2", "ruff~=0.0.290", diff --git a/kedro-datasets/tests/biosequence/test_biosequence_dataset.py b/kedro-datasets/tests/biosequence/test_biosequence_dataset.py index b5c35bd8f..802578296 100644 --- a/kedro-datasets/tests/biosequence/test_biosequence_dataset.py +++ b/kedro-datasets/tests/biosequence/test_biosequence_dataset.py @@ -1,6 +1,5 @@ from io import StringIO from pathlib import PurePosixPath - import pytest from Bio import SeqIO from fsspec.implementations.http import HTTPFileSystem diff --git a/kedro-datasets/tests/tensorflow/test_tensorflow_model_dataset.py b/kedro-datasets/tests/tensorflow/test_tensorflow_model_dataset.py index 8855dc4f3..f48a67086 100644 --- a/kedro-datasets/tests/tensorflow/test_tensorflow_model_dataset.py +++ b/kedro-datasets/tests/tensorflow/test_tensorflow_model_dataset.py @@ -15,6 +15,9 @@ allow_module_level=True, ) +if sys.version.minor >= 13: + pytest.skip("Tensorflow is not available in Python 3.13 yet") + # In this test module, we wrap tensorflow and TensorFlowModelDataset imports into a module-scoped # fixtures to avoid them being evaluated immediately when a new test process is spawned.