Skip to content

Commit 87302d8

Browse files
committed
ci: fix type errors resulting from pyright upgrade
1 parent 1a017a1 commit 87302d8

File tree

5 files changed

+38
-24
lines changed

5 files changed

+38
-24
lines changed

src/taskgraph/generator.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
import logging
77
import os
88
from dataclasses import dataclass
9-
from typing import Dict
9+
from typing import Callable, Dict, Optional, Union
1010

1111
from . import filter_tasks
1212
from .config import GraphConfig, load_graph_config
1313
from .graph import Graph
1414
from .morph import morph
1515
from .optimize.base import optimize_task_graph
16-
from .parameters import parameters_loader
16+
from .parameters import Parameters, parameters_loader
1717
from .task import Task
1818
from .taskgraph import TaskGraph
1919
from .transforms.base import TransformConfig, TransformSequence
@@ -119,10 +119,10 @@ class TaskGraphGenerator:
119119

120120
def __init__(
121121
self,
122-
root_dir,
123-
parameters,
124-
decision_task_id="DECISION-TASK",
125-
write_artifacts=False,
122+
root_dir: Optional[str],
123+
parameters: Union[Parameters, Callable[[GraphConfig], Parameters]],
124+
decision_task_id: str = "DECISION-TASK",
125+
write_artifacts: bool = False,
126126
):
127127
"""
128128
@param root_dir: root directory containing the Taskgraph config.yml file

src/taskgraph/optimize/base.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import logging
1616
from abc import ABCMeta, abstractmethod
1717
from collections import defaultdict
18+
from typing import Dict, Set
1819

1920
from slugid import nice as slugid
2021

@@ -365,11 +366,11 @@ def replace_tasks(
365366

366367

367368
def get_subgraph(
368-
target_task_graph,
369-
removed_tasks,
370-
replaced_tasks,
371-
label_to_taskid,
372-
decision_task_id,
369+
target_task_graph: TaskGraph,
370+
removed_tasks: Set[str],
371+
replaced_tasks: Set[str],
372+
label_to_taskid: Dict[str, str],
373+
decision_task_id: str,
373374
):
374375
"""
375376
Return the subgraph of target_task_graph consisting only of
@@ -399,7 +400,9 @@ def get_subgraph(
399400
for label in sorted(
400401
target_task_graph.graph.nodes - removed_tasks - set(label_to_taskid)
401402
):
402-
label_to_taskid[label] = slugid()
403+
task_id = slugid()
404+
assert isinstance(task_id, str)
405+
label_to_taskid[label] = task_id
403406

404407
# resolve labels to taskIds and populate task['dependencies']
405408
tasks_by_taskid = {}
@@ -424,14 +427,15 @@ def get_subgraph(
424427
}
425428
)
426429

430+
assert task.task_id
427431
task.task = resolve_task_references(
428432
task.label,
429433
task.task,
430434
task_id=task.task_id,
431435
decision_task_id=decision_task_id,
432436
dependencies=named_task_dependencies,
433437
)
434-
deps = task.task.setdefault("dependencies", []) # type: ignore
438+
deps = task.task.setdefault("dependencies", [])
435439
deps.extend(sorted(named_task_dependencies.values()))
436440
tasks_by_taskid[task.task_id] = task
437441

src/taskgraph/transforms/run/common.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,8 @@ def support_caches(
170170
if use_caches is None:
171171
# Use project default values for filtering caches, default to
172172
# checkout cache if no selection is specified.
173-
use_caches = (
174-
config.graph_config.get("taskgraph", {})
175-
.get("run", {})
176-
.get("use-caches", ["checkout"])
177-
)
173+
taskgraph_config = config.graph_config.get("taskgraph") or {}
174+
use_caches = taskgraph_config.get("run", {}).get("use-caches", ["checkout"])
178175

179176
for name, cache_cfg in CACHES.items():
180177
if not should_use_cache(name, use_caches, run["checkout"]):

src/taskgraph/util/parameterization.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55

66
import re
7+
from typing import Any, Dict
78

89
from taskgraph.util.taskcluster import get_artifact_url
910
from taskgraph.util.time import json_time_from_now
@@ -44,7 +45,13 @@ def resolve_timestamps(now, task_def):
4445
)
4546

4647

47-
def resolve_task_references(label, task_def, task_id, decision_task_id, dependencies):
48+
def resolve_task_references(
49+
label: str,
50+
task_def: Dict[str, Any],
51+
task_id: str,
52+
decision_task_id: str,
53+
dependencies: Dict[str, str],
54+
) -> Dict[str, Any]:
4855
"""Resolve all instances of ``{'task-reference': '..<..>..'} ``
4956
and ``{'artifact-reference`: '..<dependency/artifact/path>..'}``
5057
in the given task definition, using the given dependencies.
@@ -91,10 +98,12 @@ def repl(match):
9198

9299
return ARTIFACT_REFERENCE_PATTERN.sub(repl, val)
93100

94-
return _recurse(
101+
result = _recurse(
95102
task_def,
96103
{
97104
"task-reference": task_reference,
98105
"artifact-reference": artifact_reference,
99106
},
100107
)
108+
assert isinstance(result, dict)
109+
return result

test/test_util_parameterization.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,8 @@ def test_artifact_refs_private(monkeypatch, assert_artifact_refs):
211211
monkeypatch.setenv("TASKCLUSTER_PROXY_URL", tc_proxy_url)
212212

213213
assert_artifact_refs(
214-
{"artifact-reference": "<edge1/private/foo>"},
215-
f"{tc_proxy_url}/api/queue/v1/task/tid1/artifacts/private/foo",
214+
{"url": {"artifact-reference": "<edge1/private/foo>"}},
215+
{"url": f"{tc_proxy_url}/api/queue/v1/task/tid1/artifacts/private/foo"},
216216
)
217217

218218

@@ -255,6 +255,10 @@ def test_artifact_refs_badly_formed():
255255
"resolve_task_references ignores badly-formatted artifact references"
256256
for inv in ["<edge1>", "edge1/foo>", "<edge1>/foo", "<edge1>foo"]:
257257
resolved = resolve_task_references(
258-
"subject", {"artifact-reference": inv}, "tid-self", "tid-decision", {}
258+
"subject",
259+
{"key": {"artifact-reference": inv}},
260+
"tid-self",
261+
"tid-decision",
262+
{},
259263
)
260-
assert resolved == inv
264+
assert resolved == {"key": inv}

0 commit comments

Comments
 (0)