This is an automated email from the ASF dual-hosted git repository.

ash pushed a commit to branch task-sdk-first-code
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 89b1846752b8c901efed26d32213c63b3ec2fd0c
Author: Kaxil Naik <[email protected]>
AuthorDate: Wed Oct 23 13:31:27 2024 +0100

    Use attrs converters for access_control [skip ci]
    
    skip ci
---
 task_sdk/src/airflow/sdk/definitions/dag.py | 24 ++++++++++--------------
 1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/task_sdk/src/airflow/sdk/definitions/dag.py 
b/task_sdk/src/airflow/sdk/definitions/dag.py
index 8224f3a3167..71dbdc6f9eb 100644
--- a/task_sdk/src/airflow/sdk/definitions/dag.py
+++ b/task_sdk/src/airflow/sdk/definitions/dag.py
@@ -170,6 +170,13 @@ def _convert_tags(tags: Collection[str] | None) -> 
MutableSet[str]:
     return set(tags or [])
 
 
+def _convert_access_control(value, self_: DAG):
+    if hasattr(self_, "_upgrade_outdated_dag_access_control"):
+        return self_._upgrade_outdated_dag_access_control(value)
+    else:
+        return value
+
+
 def _all_after_dag_id_to_kw_only(cls, fields: list[attrs.Attribute]):
     i = iter(fields)
     f = next(i)
@@ -353,7 +360,9 @@ class DAG:
         default=None,
         converter=attrs.Converter(_convert_params, takes_self=True),  # type: 
ignore[misc, call-overload]
     )
-    _access_control: dict | None = None
+    access_control: dict | None = attrs.field(
+        default=None, converter=attrs.Converter(_convert_access_control, 
takes_self=True)
+    )
     is_paused_upon_creation: bool | None = None
     jinja_environment_kwargs: dict | None = None
     render_template_as_native_obj: bool = attrs.field(default=False, 
converter=bool)
@@ -381,8 +390,6 @@ class DAG:
 
         self.start_date = timezone.convert_to_utc(self.start_date)
         self.end_date = timezone.convert_to_utc(self.end_date)
-        # This should trigger the setters for access_control
-        self.access_control = self.access_control
 
     @fileloc.default
     def _default_fileloc(self) -> str:
@@ -686,17 +693,6 @@ class DAG:
             result._log = self._log  # type: ignore[attr-defined]
         return result
 
-    @property
-    def access_control(self):
-        return self._access_control
-
-    @access_control.setter
-    def access_control(self, value):
-        if hasattr(self, "_upgrade_outdated_dag_access_control"):
-            self._access_control = 
self._upgrade_outdated_dag_access_control(value)
-        else:
-            self._access_control = value
-
     def partial_subset(
         self,
         task_ids_or_regex: str | Pattern | Iterable[str],

Reply via email to