class_docstr: A table for serialized DAGs.
  
  serialized_dag table is a snapshot of DAG files synchronized by scheduler.
  This feature is controlled by:
  
  * ``[core] min_serialized_dag_update_interval = 30`` (s):
    serialized DAGs are updated in DB when a file gets processed by scheduler,
    to reduce DB write rate, there is a minimal interval of updating serialized DAGs.
  * ``[scheduler] dag_dir_list_interval = 300`` (s):
    interval of deleting serialized DAGs in DB when the files are deleted, suggest
    to use a smaller interval such as 60
  * ``[core] compress_serialized_dags``:
    whether compressing the dag data to the Database.
  
  It is used by webserver to load dags
  because reading from database is lightweight compared to importing from files,
  it solves the webserver scalability issue.
docstr: Get the dependencies between DAGs.
  
  :param session: ORM Session
docstr_tok: ["Get","the","dependencies","between","DAGs",".",":","param","session",":","ORM","Session"]
code: def get_dag_dependencies(
      cls, session: Session = NEW_SESSION
  ) -> dict[str, list[DagDependency]]:
      """
      Get the dependencies between DAGs.
  
      :param session: ORM Session
      """
      if session.bind.dialect.name in ["sqlite", "mysql"]:
          query = session.execute(
              select(
                  cls.dag_id,
                  func.json_extract(
                      cls._data, "$.dag.dag_dependencies"
                  ),
              )
          )
          iterator = (
              (dag_id, json.loads(deps_data) if deps_data else [])
              for dag_id, deps_data in query
          )
      else:
          iterator = session.execute(
              select(
                  cls.dag_id,
                  func.json_extract_path(
                      cls._data, "dag", "dag_dependencies"
                  ),
              )
          )
      return {
          dag_id: [DagDependency(**d) for d in (deps_data or [])]
          for dag_id, deps_data in iterator
      }
  
imports: from __future__ import annotations
  import logging
  import zlib
  from datetime import timedelta
  from typing import TYPE_CHECKING, Collection
  import sqlalchemy_jsonfield
  from sqlalchemy import BigInteger, Column, Index, LargeBinary, String, and_, exc, or_, select
  from sqlalchemy.orm import backref, foreign, relationship
  from sqlalchemy.sql.expression import func, literal
  from airflow.api_internal.internal_api_call import internal_api_call
  from airflow.exceptions import TaskNotFound
  from airflow.models.base import ID_LEN, Base
  from airflow.models.dag import DagModel
  from airflow.models.dagcode import DagCode
  from airflow.models.dagrun import DagRun
  from airflow.serialization.serialized_objects import DagDependency, SerializedDAG
  from airflow.settings import COMPRESS_SERIALIZED_DAGS, MIN_SERIALIZED_DAG_UPDATE_INTERVAL, json
  from airflow.utils import timezone
  from airflow.utils.hashlib_wrapper import md5
  from airflow.utils.session import NEW_SESSION, provide_session
  from airflow.utils.sqlalchemy import UtcDateTime
label_desc: Use image node_id 17 for calling the SerializedDagModel obj's underlying member method code with example usage: obj.get_dag_dependencies(cls, session) and returns: unknown