Skip to content

Commit 99610bf

Browse files
authored
Bump minimum required Python version to 3.12 (#1871)
* Bump minimum required Python version to 3.12 * Update CI/CD
1 parent d3a4a80 commit 99610bf

File tree

14 files changed

+15
-467
lines changed

14 files changed

+15
-467
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// Use 'forwardPorts' to make a list of ports inside the container available locally.
1313
// "forwardPorts": [],
1414
// Use 'postCreateCommand' to run commands after the container is created.
15-
"postCreateCommand": "uv sync && uv run pre-commit install",
15+
"postCreateCommand": "uv sync --all-extras --dev && uv run pre-commit install",
1616
// Configure tool-specific properties.
1717
"customizations": {
1818
"vscode": {

.github/workflows/lint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
16+
python-version: ["3.12", "3.13", "3.14"]
1717

1818
steps:
1919
- uses: actions/checkout@v6

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
16+
python-version: ["3.12", "3.13", "3.14"]
1717

1818
steps:
1919
- uses: actions/checkout@v6

pyoverkiz/enums/command.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
"""Command-related enums and parameters used by device commands."""
22

3-
import sys
4-
from enum import unique
5-
6-
# Since we support Python versions lower than 3.11, we use
7-
# a backport for StrEnum when needed.
8-
if sys.version_info >= (3, 11):
9-
from enum import StrEnum
10-
else:
11-
from backports.strenum import StrEnum # type: ignore[import]
3+
from enum import StrEnum, unique
124

135

146
@unique

pyoverkiz/enums/execution.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
"""Execution related enums (types, states and subtypes)."""
22

33
import logging
4-
import sys
5-
from enum import unique
4+
from enum import StrEnum, unique
65

76
_LOGGER = logging.getLogger(__name__)
87

9-
# Since we support Python versions lower than 3.11, we use
10-
# a backport for StrEnum when needed.
11-
if sys.version_info >= (3, 11):
12-
from enum import StrEnum
13-
else:
14-
from backports.strenum import StrEnum # type: ignore[import]
15-
168

179
@unique
1810
class ExecutionType(StrEnum):

pyoverkiz/enums/gateway.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
"""Enums for gateway types and related helpers."""
22

33
import logging
4-
import sys
5-
from enum import IntEnum, unique
4+
from enum import IntEnum, StrEnum, unique
65

76
_LOGGER = logging.getLogger(__name__)
87

9-
# Since we support Python versions lower than 3.11, we use
10-
# a backport for StrEnum when needed.
11-
if sys.version_info >= (3, 11):
12-
from enum import StrEnum
13-
else:
14-
from backports.strenum import StrEnum # type: ignore[import]
15-
168

179
@unique
1810
class GatewayType(IntEnum):

pyoverkiz/enums/general.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
"""General-purpose enums like product types, data types and event names."""
22

33
import logging
4-
import sys
5-
from enum import IntEnum, unique
4+
from enum import IntEnum, StrEnum, unique
65

76
_LOGGER = logging.getLogger(__name__)
87

9-
# Since we support Python versions lower than 3.11, we use
10-
# a backport for StrEnum when needed.
11-
if sys.version_info >= (3, 11):
12-
from enum import StrEnum
13-
else:
14-
from backports.strenum import StrEnum # type: ignore[import]
15-
168

179
@unique
1810
class ProductType(IntEnum):

pyoverkiz/enums/measured_value_type.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
"""Measured value type enums used to interpret numeric sensor data."""
22

3-
import sys
4-
from enum import unique
5-
6-
# Since we support Python versions lower than 3.11, we use
7-
# a backport for StrEnum when needed.
8-
if sys.version_info >= (3, 11):
9-
from enum import StrEnum
10-
else:
11-
from backports.strenum import StrEnum # type: ignore[import]
3+
from enum import StrEnum, unique
124

135

146
@unique

pyoverkiz/enums/protocol.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
"""Protocol enums describe device URL schemes used by Overkiz."""
22

33
import logging
4-
import sys
5-
from enum import unique
4+
from enum import StrEnum, unique
65

76
_LOGGER = logging.getLogger(__name__)
87

9-
# Since we support Python versions lower than 3.11, we use
10-
# a backport for StrEnum when needed.
11-
if sys.version_info >= (3, 11):
12-
from enum import StrEnum
13-
else:
14-
from backports.strenum import StrEnum # type: ignore[import]
15-
168

179
@unique
1810
class Protocol(StrEnum):

pyoverkiz/enums/server.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
"""Server and API type enums used to select target Overkiz endpoints."""
22

3-
import sys
4-
from enum import unique
5-
6-
# Since we support Python versions lower than 3.11, we use
7-
# a backport for StrEnum when needed.
8-
if sys.version_info >= (3, 11):
9-
from enum import StrEnum
10-
else:
11-
from backports.strenum import StrEnum # type: ignore[import]
3+
from enum import StrEnum, unique
124

135

146
@unique

0 commit comments

Comments
 (0)