docstr: Calls the method if it exists on this object, otherwise
  call a default method name (module name)
  
  Raises
  ------
  ClassMethodNotFound
      If the Class method is not found
docstr_tok: ["Calls","the","method","if","it","exists","on","this","object",",","otherwise","call","a","default","method","name","(","module","name",")","Raises","--","--","--","ClassMethodNotFound","If","the","Class","method","is","not","found"]
code: def execute(self):
      """
      Calls the method if it exists on this object, otherwise
      call a default method name (module name)
  
      Raises
      ------
      ClassMethodNotFound
          If the Class method is not found
      """
      # Sometimes eg(--help) the parser automagically handles the entire response
      # and calls exit.  If this happens, self.args is set to True
      # in base.parse.   Simply return True
      if self.args is True:
          return True
  
      if getattr(self.args, "command") is None:
          self.args.command = "datmo"
  
      command_args = vars(self.args).copy()
      # use command name if it exists,
      # otherwise use the module name
      function_name = None
      method = None
  
      try:
          if (
              "subcommand" in command_args
              and command_args["subcommand"] is not None
          ):
              function_name = getattr(
                  self.args, "subcommand", self.args.command
              )
              method = getattr(self, function_name)
          else:
              function_name = getattr(
                  self.args, "command", self.args.command
              )
              method = getattr(self, function_name)
      except AttributeError:
          raise ClassMethodNotFound(
              __(
                  "error",
                  "cli.general.method.not_found",
                  (self.args.command, function_name),
              )
          )
  
      # remove extraneous options that the method should need to care about
      if "command" in command_args:
          del command_args["command"]
      if "subcommand" in command_args:
          del command_args["subcommand"]
  
      if method is None:
          raise ClassMethodNotFound(
              __(
                  "error",
                  "cli.general.method.not_found",
                  (self.args.command, method),
              )
          )
  
      method_result = method(**command_args)
      return method_result
  
file_path: datmo/datmo/cli/command/base.py
imports: from datmo.config import Config
  from datmo.core.util.i18n import get
  from datmo.core.util.exceptions import ClassMethodNotFound, PathDoesNotExist
  from datmo.cli.parser import get_datmo_parser
  from datmo.core.controller.task import TaskController
  from datmo.core.util.logger import DatmoLogger
  from datmo.core.util.misc_functions import parameterized, parse_paths
label_desc: Use image node_id 4 for calling the BaseCommand obj's underlying member method code with example usage: obj.execute() and returns: method_result, True