code: def run(self) -> None:
      self.validate()
      assert self._models
  
      try:
          DashboardDAO.delete(self._models)
      except DAODeleteFailedError as ex:
          logger.exception(ex.exception)
          raise DashboardDeleteFailedError() from ex
  
file_path: superset/superset/commands/dashboard/delete.py
imports: import logging
  from typing import Optional
  from flask_babel import lazy_gettext
  from superset import security_manager
  from superset.commands.base import BaseCommand
  from superset.commands.dashboard.exceptions import DashboardDeleteFailedError, DashboardDeleteFailedReportsExistError, DashboardForbiddenError, DashboardNotFoundError
  from superset.daos.dashboard import DashboardDAO
  from superset.daos.exceptions import DAODeleteFailedError
  from superset.daos.report import ReportScheduleDAO
  from superset.exceptions import SupersetSecurityException
  from superset.models.dashboard import Dashboard
label_desc: Use image node_id 2 for calling the DeleteDashboardCommand obj's underlying member method code with example usage: obj.run() without return types