self.on_success_callback = on_success_callback
        self.on_failure_callback = on_failure_callback
        
        
        
        self.edge_info: dict[str, dict[str, EdgeInfoType]] = {}
        
        
        self.has_on_success_callback = self.on_success_callback is not None
        self.has_on_failure_callback = self.on_failure_callback is not None
        self._access_control = DAG._upgrade_outdated_dag_access_control(access_control)
        self.is_paused_upon_creation = is_paused_upon_creation
        self.auto_register = auto_register
        self.jinja_environment_kwargs = jinja_environment_kwargs
        self.render_template_as_native_obj = render_template_as_native_obj
        self.doc_md = self.get_doc_md(doc_md)
        self.tags = tags or []
        self._task_group = TaskGroup.create_root(self)
        self.validate_schedule_and_params()
        wrong_links = dict(self.iter_invalid_owner_links())
        if wrong_links:
            raise AirflowException(
                "Wrong link format was used for the owner. Use a valid link \n"
                f"Bad formatted links are: {wrong_links}"
            )
        
        
        
        self._processor_dags_folder = None
    def get_doc_md(self, doc_md: str | None) -> str | None: