14
14
# KIND, either express or implied. See the License for the
15
15
# specific language governing permissions and limitations
16
16
# under the License.
17
+
17
18
"""Dag sub-commands."""
18
19
19
20
from __future__ import annotations
@@ -315,7 +316,7 @@ def print_execution_interval(interval: DataInterval | None):
315
316
@suppress_logs_and_warning
316
317
@providers_configuration_loaded
317
318
@provide_session
318
- def dag_list_dags (args , session = NEW_SESSION ) -> None :
319
+ def dag_list_dags (args , session : Session = NEW_SESSION ) -> None :
319
320
"""Display dags with or without stats at the command line."""
320
321
cols = args .columns if args .columns else []
321
322
invalid_cols = [c for c in cols if c not in dag_schema .fields ]
@@ -350,8 +351,14 @@ def get_dag_detail(dag: DAG) -> dict:
350
351
dag_detail = _get_dagbag_dag_details (dag )
351
352
return {col : dag_detail [col ] for col in valid_cols }
352
353
354
+ def filter_dags_by_bundle ():
355
+ """Filter DAGs based on the specified bundle name, if provided."""
356
+ if args .bundle_name :
357
+ return [dag for dag in dagbag .dags .values () if dag .get_bundle_name () == args .bundle_name ]
358
+ return dagbag .dags .values ()
359
+
353
360
AirflowConsole ().print_as (
354
- data = sorted (dagbag . dags . values (), key = operator .attrgetter ("dag_id" )),
361
+ data = sorted (filter_dags_by_bundle (), key = operator .attrgetter ("dag_id" )),
355
362
output = args .output ,
356
363
mapper = get_dag_detail ,
357
364
)
@@ -361,7 +368,7 @@ def get_dag_detail(dag: DAG) -> dict:
361
368
@suppress_logs_and_warning
362
369
@providers_configuration_loaded
363
370
@provide_session
364
- def dag_details (args , session = NEW_SESSION ):
371
+ def dag_details (args , session : Session = NEW_SESSION ):
365
372
"""Get DAG details given a DAG id."""
366
373
dag = DagModel .get_dagmodel (args .dag_id , session = session )
367
374
if not dag :
0 commit comments