Skip to content

Commit ed1e94e

Browse files
fix: add support for python 3.14 (#4795)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 11c3824 commit ed1e94e

File tree

5 files changed

+122
-55
lines changed

5 files changed

+122
-55
lines changed

.config/requirements-lock.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ platformdirs==4.4.0
5555
# via black
5656
pycparser==2.23 ; implementation_name != 'PyPy'
5757
# via cffi
58-
pyyaml==6.0.2
58+
pyyaml==6.0.3
5959
# via
6060
# ansible-compat
6161
# ansible-core

pyproject.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ classifiers = [
3434
dependencies = [
3535
"ansible-compat>=25.8.0", # indirect dependency of cryptography
3636
"ansible-core>=2.16.11", # indirect dependency of ansible-core
37+
"ansible-core>=2.20.0b1 ; python_full_version >= '3.14'", # indirect dependency of ansible-core
3738
"black>=24.3.0", # indirect dependency of ansible-core
3839
"cffi>=1.17.1", # indirect dependency of ruamel-yaml
3940
"cryptography>=38",
@@ -44,6 +45,7 @@ dependencies = [
4445
"packaging>=22.0",
4546
"pathspec>=0.10.3",
4647
"pyyaml>=6.0.2",
48+
"pyyaml>=6.0.3 ; python_full_version < '3.14'", # py314 support
4749
"referencing>=0.36.2",
4850
"ruamel-yaml>=0.18.11",
4951
"ruamel-yaml-clib>=0.2.12 ; python_full_version < '3.14'",
@@ -760,6 +762,17 @@ runner = "uv-venv-runner"
760762
uv_sync_flags = ["--upgrade", "--prerelease=allow"]
761763
uv_sync_locked = false
762764

765+
[tool.tox.env.py314-devel]
766+
dependency_groups = ["dev"]
767+
deps = [
768+
"ansible-compat @ git+https://github.com/ansible/ansible-compat.git",
769+
"ansible-core @ git+https://github.com/ansible/ansible.git",
770+
]
771+
description = "Run the tests with newest dependencies (no lock and allowing prereleases)"
772+
runner = "uv-venv-runner"
773+
uv_sync_flags = ["--upgrade", "--prerelease=allow"]
774+
uv_sync_locked = false
775+
763776
[tool.tox.env.redirects]
764777
commands = [
765778
[

src/ansiblelint/requirements.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ def __init__(self, name: str = "ansible-lint") -> None:
1818
for req_str in metadata.json["requires_dist"]:
1919
req = Requirement(req_str)
2020
if req.name:
21+
if req.marker and not req.marker.evaluate():
22+
continue
2123
self[req.name] = req.specifier
2224

2325
def matches(self, req_name: str, req_version: str | Version) -> bool:

src/ansiblelint/utils.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@
4747
import ruamel.yaml.parser
4848
import yaml
4949
from ansible.errors import AnsibleError, AnsibleParserError
50-
from ansible.module_utils._text import to_bytes
50+
51+
try:
52+
from ansible.module_utils.common.text.converters import to_bytes
53+
except ImportError: # pragma: no branch
54+
from ansible.module_utils._text import to_bytes
5155
from ansible.module_utils.parsing.convert_bool import boolean
5256
from ansible.parsing.dataloader import DataLoader
5357
from ansible.parsing.mod_args import ModuleArgsParser

0 commit comments

Comments
 (0)