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

jedcunningham pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new d6e618f26b9 Add DagFolderDagBundle to expose the DAG folder as a 
bundle (#44699)
d6e618f26b9 is described below

commit d6e618f26b95a12ad1413d14b4755a5ff87df5db
Author: Jed Cunningham <[email protected]>
AuthorDate: Thu Dec 5 14:16:06 2024 -0700

    Add DagFolderDagBundle to expose the DAG folder as a bundle (#44699)
    
    Why not simply use LocalDagBundle? This keeps the config for the
    traditional `[core] dags_folder` in the Airflow config system.
---
 airflow/dag_processing/bundles/dagfolder.py | 28 ++++++++++++++++++++++++++++
 tests/dag_processing/test_dag_bundles.py    |  8 ++++++++
 2 files changed, 36 insertions(+)

diff --git a/airflow/dag_processing/bundles/dagfolder.py 
b/airflow/dag_processing/bundles/dagfolder.py
new file mode 100644
index 00000000000..40ba6496445
--- /dev/null
+++ b/airflow/dag_processing/bundles/dagfolder.py
@@ -0,0 +1,28 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+from __future__ import annotations
+
+from airflow import settings
+from airflow.dag_processing.bundles.local import LocalDagBundle
+
+
+class DagsFolderDagBundle(LocalDagBundle):
+    """A bundle for the DAGs folder."""
+
+    def __init__(self, **kwargs):
+        super().__init__(local_folder=settings.DAGS_FOLDER, **kwargs)
diff --git a/tests/dag_processing/test_dag_bundles.py 
b/tests/dag_processing/test_dag_bundles.py
index 8ad72d1df69..65be620fe5e 100644
--- a/tests/dag_processing/test_dag_bundles.py
+++ b/tests/dag_processing/test_dag_bundles.py
@@ -24,6 +24,7 @@ import pytest
 from git import Repo
 
 from airflow.dag_processing.bundles.base import BaseDagBundle
+from airflow.dag_processing.bundles.dagfolder import DagsFolderDagBundle
 from airflow.dag_processing.bundles.git import GitDagBundle
 from airflow.dag_processing.bundles.local import LocalDagBundle
 from airflow.exceptions import AirflowException
@@ -72,6 +73,13 @@ class TestLocalDagBundle:
         assert bundle.get_current_version() is None
 
 
+class TestDagsFolderDagBundle:
+    @conf_vars({("core", "dags_folder"): "/tmp/somewhere/dags"})
+    def test_path(self):
+        bundle = DagsFolderDagBundle(name="test")
+        assert bundle.path == Path("/tmp/somewhere/dags")
+
+
 GIT_DEFAULT_BRANCH = "main"
 
 

Reply via email to