diff --git a/.github/workflows/python-code-format.yml b/.github/workflows/python-code-format.yml index 7a8d937..3e2c636 100644 --- a/.github/workflows/python-code-format.yml +++ b/.github/workflows/python-code-format.yml @@ -22,7 +22,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.12" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/python-publish-pypi.yml b/.github/workflows/python-publish-pypi.yml index 7d67841..d583f30 100644 --- a/.github/workflows/python-publish-pypi.yml +++ b/.github/workflows/python-publish-pypi.yml @@ -17,7 +17,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.12" - name: Verify version run: | python -m pip install setuptools @@ -60,7 +60,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.12" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml index 7b72455..9b08bc1 100644 --- a/.github/workflows/python-tests.yml +++ b/.github/workflows/python-tests.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] name: Testing Python ${{ matrix.python-version }} steps: diff --git a/denonavr/api.py b/denonavr/api.py index e2aada6..5f56ce1 100644 --- a/denonavr/api.py +++ b/denonavr/api.py @@ -14,6 +14,7 @@ import time import xml.etree.ElementTree as ET from collections import defaultdict +from collections.abc import Hashable from io import BytesIO from typing import ( Awaitable, @@ -21,7 +22,6 @@ Coroutine, DefaultDict, Dict, - Hashable, List, Optional, Set, diff --git a/denonavr/audyssey.py b/denonavr/audyssey.py index 1e79033..2848970 100644 --- a/denonavr/audyssey.py +++ b/denonavr/audyssey.py @@ -8,7 +8,8 @@ """ import logging -from typing import Hashable, List, Optional +from collections.abc import Hashable +from typing import List, Optional import attr diff --git a/denonavr/foundation.py b/denonavr/foundation.py index 4f279fd..319c386 100644 --- a/denonavr/foundation.py +++ b/denonavr/foundation.py @@ -10,8 +10,9 @@ import asyncio import logging import xml.etree.ElementTree as ET +from collections.abc import Hashable from copy import deepcopy -from typing import Dict, Hashable, List, Optional, Union +from typing import Dict, List, Optional, Union import attr import httpx diff --git a/denonavr/input.py b/denonavr/input.py index cd8d2b2..94f5ca4 100644 --- a/denonavr/input.py +++ b/denonavr/input.py @@ -9,8 +9,9 @@ import asyncio import logging +from collections.abc import Hashable from copy import deepcopy -from typing import Dict, Hashable, List, Optional, Set, Tuple +from typing import Dict, List, Optional, Set, Tuple import attr import httpx diff --git a/denonavr/soundmode.py b/denonavr/soundmode.py index 8aa9376..2cf76ab 100644 --- a/denonavr/soundmode.py +++ b/denonavr/soundmode.py @@ -9,8 +9,9 @@ import asyncio import logging +from collections.abc import Hashable from copy import deepcopy -from typing import Dict, Hashable, List, Optional +from typing import Dict, List, Optional import attr diff --git a/denonavr/tonecontrol.py b/denonavr/tonecontrol.py index 93675ec..576394c 100644 --- a/denonavr/tonecontrol.py +++ b/denonavr/tonecontrol.py @@ -9,7 +9,8 @@ import logging import time -from typing import Hashable, Optional +from collections.abc import Hashable +from typing import Optional import attr diff --git a/denonavr/volume.py b/denonavr/volume.py index 07002a5..8af5734 100644 --- a/denonavr/volume.py +++ b/denonavr/volume.py @@ -8,7 +8,8 @@ """ import logging -from typing import Hashable, Optional, Union +from collections.abc import Hashable +from typing import Optional, Union import attr diff --git a/pyproject.toml b/pyproject.toml index 5c0d042..9980618 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,7 @@ classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", ] requires-python = ">=3.7" dependencies = [ diff --git a/tox.ini b/tox.ini index 6e09e58..b412f60 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,9 @@ [tox] -envlist = py37,py38,py39,py310,py311,pylint,lint,format +envlist = py37,py38,py39,py310,py311,py312,pylint,lint,format skip_missing_interpreters = True [testenv:format] -basepython = python3.11 +basepython = python3.12 deps = -r{toxinidir}/test-requirements.txt commands = @@ -11,13 +11,13 @@ commands = python -m black denonavr tests --check --verbose [testenv:pylint] -basepython = python3.11 +basepython = python3.12 deps = -r{toxinidir}/test-requirements.txt commands=python -m pylint denonavr tests [testenv:lint] -basepython = python3.11 +basepython = python3.12 deps = -r{toxinidir}/test-requirements.txt commands =