code: def handle(self, *arguments, **options):
          
          self.arguments = arguments
          self.options = options
          self.arguments = self.parse_arguments(arguments)
          self.options = self.parse_options(options)
          
          for name in self.get_actions():
              validate = getattr(self, "validate_{name:s}".format(
                  name=name), None)
              if validate is not None and isinstance(validate, collections.Callable):
                  validate(*arguments, **options)
          for name in self.get_actions():
              handle = getattr(self, "handle_{name:s}".format(
                  name=name), None)
              if handle is not None and isinstance(handle, collections.Callable):
                  handle(*self.arguments, **self.options)
docs: Parses arguments and options, runs validate_<action> for each action
          named by self.get_actions(), then runs handle_<action> for each action
          named by self.get_actions().