Skip to content

Commit 2eadf31

Browse files
committed
Fix typing errors
1 parent a3abdce commit 2eadf31

File tree

4 files changed

+23
-18
lines changed

4 files changed

+23
-18
lines changed

src/ansible_runner/__main__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@
4444
from ansible_runner import run
4545
from ansible_runner import output
4646
from ansible_runner import cleanup
47-
from ansible_runner.utils import dump_artifact, Bunch, register_for_cleanup
47+
from ansible_runner._internal._dump_artifacts import dump_artifact
48+
from ansible_runner.utils import Bunch, register_for_cleanup
4849
from ansible_runner.utils.capacity import get_cpu_count, get_mem_in_bytes, ensure_uuid
4950
from ansible_runner.utils.importlib_compat import importlib_metadata
5051
from ansible_runner.runner import Runner

src/ansible_runner/_internal/_dump_artifacts.py

+13-10
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,23 @@
88
import tempfile
99

1010
from collections.abc import MutableMapping
11+
from typing import Any
1112

1213
from ansible_runner.config.runner import RunnerConfig
1314
from ansible_runner.utils import isinventory, isplaybook
1415

1516

1617
def dump_artifacts(config: RunnerConfig) -> None:
1718
"""Introspect the arguments and dump objects to disk"""
19+
private_data_dir = config.private_data_dir or ""
20+
1821
if config.role:
19-
role = {'name': config.role}
22+
role: dict[str, Any] = {'name': config.role}
2023
if config.role_vars:
2124
role['vars'] = config.role_vars
2225

2326
hosts = config.host_pattern or 'all'
24-
play = [{'hosts': hosts, 'roles': [role]}]
27+
play: list[dict[str, Any]] = [{'hosts': hosts, 'roles': [role]}]
2528

2629
if config.role_skip_facts:
2730
play[0]['gather_facts'] = False
@@ -33,9 +36,9 @@ def dump_artifacts(config: RunnerConfig) -> None:
3336

3437
roles_path = config.roles_path
3538
if not roles_path:
36-
roles_path = os.path.join(config.private_data_dir, 'roles')
39+
roles_path = os.path.join(private_data_dir, 'roles')
3740
else:
38-
roles_path += f":{os.path.join(config.private_data_dir, 'roles')}"
41+
roles_path += f":{os.path.join(private_data_dir, 'roles')}"
3942

4043
config.envvars['ANSIBLE_ROLES_PATH'] = roles_path
4144

@@ -46,12 +49,12 @@ def dump_artifacts(config: RunnerConfig) -> None:
4649
playbook = [playbook]
4750

4851
if isplaybook(playbook):
49-
path = os.path.join(config.private_data_dir, 'project')
52+
path = os.path.join(private_data_dir, 'project')
5053
config.playbook = dump_artifact(json.dumps(playbook), path, 'main.json')
5154

5255
obj = config.inventory
5356
if obj and isinventory(obj):
54-
path = os.path.join(config.private_data_dir, 'inventory')
57+
path = os.path.join(private_data_dir, 'inventory')
5558
if isinstance(obj, MutableMapping):
5659
config.inventory = dump_artifact(json.dumps(obj), path, 'hosts.json')
5760
elif isinstance(obj, str):
@@ -65,14 +68,14 @@ def dump_artifacts(config: RunnerConfig) -> None:
6568
if not config.suppress_env_files:
6669
for key in ('envvars', 'extravars', 'passwords', 'settings'):
6770
obj = getattr(config, key, None)
68-
if obj and not os.path.exists(os.path.join(config.private_data_dir, 'env', key)):
69-
path = os.path.join(config.private_data_dir, 'env')
71+
if obj and not os.path.exists(os.path.join(private_data_dir, 'env', key)):
72+
path = os.path.join(private_data_dir, 'env')
7073
dump_artifact(json.dumps(obj), path, key)
7174

7275
for key in ('ssh_key', 'cmdline'):
7376
obj = getattr(config, key, None)
74-
if obj and not os.path.exists(os.path.join(config.private_data_dir, 'env', key)):
75-
path = os.path.join(config.private_data_dir, 'env')
77+
if obj and not os.path.exists(os.path.join(private_data_dir, 'env', key)):
78+
path = os.path.join(private_data_dir, 'env')
7679
dump_artifact(obj, path, key)
7780

7881

src/ansible_runner/interface.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,20 @@ def init_runner(
6767

6868
if streamer:
6969
# undo any full paths that were dumped by dump_artifacts above in the streamer case
70-
private_data_dir = config.private_data_dir
70+
private_data_dir = config.private_data_dir or ""
7171
project_dir = os.path.join(private_data_dir, 'project')
7272

7373
playbook_path = config.playbook or ''
74-
if os.path.isabs(playbook_path) and playbook_path.startswith(project_dir):
74+
if isinstance(playbook_path, str) and os.path.isabs(playbook_path) and playbook_path.startswith(project_dir):
7575
config.playbook = os.path.relpath(playbook_path, project_dir)
7676

7777
inventory_path = config.inventory or ''
78-
if os.path.isabs(inventory_path) and inventory_path.startswith(private_data_dir):
78+
if isinstance(inventory_path, str) and os.path.isabs(inventory_path) and inventory_path.startswith(private_data_dir):
7979
config.inventory = os.path.relpath(inventory_path, private_data_dir)
8080

81-
envvars = config.envvars or {}
82-
roles_path = envvars.get('ANSIBLE_ROLES_PATH') or ''
81+
if config.envvars is None:
82+
config.envvars = {}
83+
roles_path = config.envvars.get('ANSIBLE_ROLES_PATH') or ''
8384
if os.path.isabs(roles_path) and roles_path.startswith(private_data_dir):
8485
config.envvars['ANSIBLE_ROLES_PATH'] = os.path.relpath(roles_path, private_data_dir)
8586

src/ansible_runner/streaming.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__ import annotations # allow newer type syntax until 3.10 is our minimum
22

33
import codecs
4-
import io
54
import json
65
import os
76
import stat
@@ -13,6 +12,7 @@
1312
from collections.abc import Mapping
1413
from functools import wraps
1514
from threading import Event, RLock, Thread
15+
from typing import BinaryIO
1616

1717
import ansible_runner
1818
from ansible_runner.exceptions import ConfigurationError
@@ -38,7 +38,7 @@ def __init__(self, settings):
3838

3939

4040
class Transmitter:
41-
def __init__(self, only_transmit_kwargs: bool, _output: io.FileIO | None, **kwargs):
41+
def __init__(self, only_transmit_kwargs: bool, _output: BinaryIO | None, **kwargs):
4242
if _output is None:
4343
_output = sys.stdout.buffer
4444
self._output = _output

0 commit comments

Comments
 (0)