code: def run(self, args=None):
          
  
          if not args:
              args = self.parse(sys.argv[1:])
  
          if getattr(args, 'verbose', False):
              self.logger.setLevel(logging.DEBUG)
  
          try:
              if hasattr(args, 'run'):
                  args.run(self, args)
              else:
                  self.__main__(args)  # pylint: disable-msg=E1101
          except Exception as e:  # pylint: disable-msg=W0703
              import traceback
              self.logger.debug(traceback.format_exc())
              self.logger.error(str(e))
              if self.raise_exceptions:
                  raise
              sys.exit(2)
docs: Runs the main command or sub command based on user input