From 3df9e2e231f1e29d0906a73e7af508ba1dd5a0d9 Mon Sep 17 00:00:00 2001 From: Daniel Standish Date: Tue, 23 Mar 2021 21:54:59 -0700 Subject: [PATCH 1/2] Fix import cycle in cluster policy examples --- tests/cluster_policies/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/cluster_policies/__init__.py b/tests/cluster_policies/__init__.py index 9d2818117187e..d395ec0982c04 100644 --- a/tests/cluster_policies/__init__.py +++ b/tests/cluster_policies/__init__.py @@ -18,10 +18,9 @@ from datetime import timedelta from typing import Callable, List -from airflow import DAG from airflow.configuration import conf from airflow.exceptions import AirflowClusterPolicyViolation -from airflow.models import TaskInstance +from airflow.models import DAG, TaskInstance from airflow.models.baseoperator import BaseOperator From d49cc07cfc833b8cc0ab7481b5dfac99aca036ce Mon Sep 17 00:00:00 2001 From: Daniel Standish Date: Tue, 23 Mar 2021 22:06:54 -0700 Subject: [PATCH 2/2] add note in docs --- docs/apache-airflow/concepts.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/apache-airflow/concepts.rst b/docs/apache-airflow/concepts.rst index 90da836cc4f7c..10d564488ebad 100644 --- a/docs/apache-airflow/concepts.rst +++ b/docs/apache-airflow/concepts.rst @@ -1350,6 +1350,12 @@ Here is what it may look like: :start-after: [START example_dag_cluster_policy] :end-before: [END example_dag_cluster_policy] + +.. note:: + + To avoid import cycles, if using ``DAG`` in type annotations in your cluster policy, be sure to import from ``airflow.models`` and not from ``airflow``. + + Task level cluster policy ----------------------------- For example, this function could apply a specific queue property when