diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3a846ab50..7f271f8c5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ['3.8', '3.9', '3.10.6'] + python-version: ['3.8', '3.9', '3.10.6', '3.11'] steps: - uses: actions/checkout@v3 diff --git a/pyproject.toml b/pyproject.toml index a7aaf932a..e8739978d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Scientific/Engineering" ] packages = [ @@ -30,12 +31,13 @@ packages = [ "Documentation" = "https://pandas.pydata.org/pandas-docs/stable" [tool.poetry.dependencies] -python = ">=3.8,<3.11" +python = ">=3.8,<3.12" types-pytz = ">= 2022.1.1" [tool.poetry.dev-dependencies] mypy = "==0.990" -pyarrow = ">=9.0.0" +# Until pyarrow releases wheels for 3.11 this is required to make the ci pass +pyarrow = { version = ">=9.0.0", python = "<3.11" } pytest = ">=7.1.2" pyright = ">=1.1.278" poethepoet = "0.16.0" @@ -47,8 +49,8 @@ pre-commit = ">=2.19.0" black = ">=22.8.0" isort = ">=5.10.1" openpyxl = ">=3.0.10" -tables = ">=3.7.0" -lxml = ">=4.7.1,<4.9.0" +tables = { version = ">=3.7.0", python = "<3.11" } +lxml = { version = ">=4.7.1,<4.9.0", python = "<3.11" } pyreadstat = ">=1.1.9" xlrd = ">=2.0.1" pyxlsb = ">=1.0.9" diff --git a/tests/test_io.py b/tests/test_io.py index 3a8bee13d..2139ee7a2 100644 --- a/tests/test_io.py +++ b/tests/test_io.py @@ -5,6 +5,7 @@ import pathlib from pathlib import Path import sqlite3 +import sys from typing import ( TYPE_CHECKING, Any, @@ -69,6 +70,10 @@ CWD = os.path.split(os.path.abspath(__file__))[0] +if sys.version_info >= (3, 11): + # This is only needed temporarily due to no wheels being available for arrow on 3.11 + _arrow = pytest.importorskip("arrow") + @pytest.mark.skipif(WINDOWS, reason="ORC not available on windows") def test_orc(): with ensure_clean() as path: