Skip to content

Commit 1a33733

Browse files
gopidesupavanYour Name
authored andcommitted
[v3-0-test] Bump mypy to 1.16.1 for airflow-core and fix airflow-core mypy errors (apache#53004)
* Bump mypy to 1.16.1 and fix airflow-core mypy errors * Bump mypy to 1.16.1 and fix airflow-core mypy errors * remove mypy dep from additional_dependencies * resolve comments (cherry picked from commit bd38225) Co-authored-by: GPK <[email protected]>
1 parent 414b752 commit 1a33733

File tree

6 files changed

+11
-6
lines changed

6 files changed

+11
-6
lines changed

airflow-core/src/airflow/api/common/trigger_dag.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def _trigger_dag(
6767
raise DagNotFound(f"Dag id {dag_id} not found")
6868

6969
run_after = run_after or timezone.coerce_datetime(timezone.utcnow())
70+
coerced_logical_date: datetime | None = None
7071
if logical_date:
7172
if not timezone.is_localized(logical_date):
7273
raise ValueError("The logical date should be localized")
@@ -84,7 +85,6 @@ def _trigger_dag(
8485
coerced_logical_date = timezone.coerce_datetime(logical_date)
8586
data_interval = dag.timetable.infer_manual_data_interval(run_after=run_after)
8687
else:
87-
coerced_logical_date = None
8888
data_interval = None
8989

9090
run_id = run_id or DagRun.generate_run_id(

airflow-core/src/airflow/api_fastapi/core_api/routes/ui/structure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def structure_data(
141141
}
142142
)
143143

144-
if asset_expression := serialized_dag.dag_model.asset_expression:
144+
if (asset_expression := serialized_dag.dag_model.asset_expression) and entry_node_ref:
145145
upstream_asset_nodes, upstream_asset_edges = get_upstream_assets(
146146
asset_expression, entry_node_ref["id"]
147147
)

airflow-core/src/airflow/models/baseoperator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ def __init__(self, **kwargs):
301301
def dag(self) -> SchedulerDAG: # type: ignore[override]
302302
return super().dag # type: ignore[return-value]
303303

304-
@dag.setter
304+
@dag.setter # type: ignore[override]
305305
def dag(self, val: SchedulerDAG):
306306
# For type checking only
307307
...

airflow-core/src/airflow/serialization/serde.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,12 @@ def deserialize(o: T | None, full=True, type_hint: Any = None) -> object:
273273
class_version,
274274
)
275275

276-
return cls(**deserialize(value))
276+
deserialize_value = deserialize(value)
277+
if not isinstance(deserialize_value, dict):
278+
raise TypeError(
279+
f"deserialized value for {classname} is not a dict, got {type(deserialize_value)}"
280+
)
281+
return cls(**deserialize_value) # type: ignore[operator]
277282

278283
# no deserializer available
279284
raise TypeError(f"No deserializer found for {classname}")

airflow-core/src/airflow/serialization/serialized_objects.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2164,7 +2164,7 @@ def get_task_assets(
21642164
ports_getter = self._get_mapped_operator_ports
21652165
else:
21662166
ports_getter = self._get_base_operator_ports
2167-
directions = ("inlets",) if inlets else ()
2167+
directions: tuple[str, ...] = ("inlets",) if inlets else ()
21682168
if outlets:
21692169
directions += ("outlets",)
21702170
for direction in directions:

airflow-core/tests/unit/dags/test_task_view_type_check.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def __call__(self):
4242
"""A __call__ method"""
4343

4444

45-
def a_function(_, __):
45+
def a_function(arg_x, __):
4646
"""A function with two args"""
4747

4848

0 commit comments

Comments
 (0)