code: def run(self, args):
          
          args = vars(args)
          positionals = []
          keywords = {}
          for action in self.argparser._actions:
              if not hasattr(action, 'label'):
                  continue
              if action.label == 'positional':
                  positionals.append(args[action.dest])
              elif action.label == 'varargs':
                  positionals.extend(args[action.dest])
              elif action.label == 'keyword':
                  keywords[action.dest] = args[action.dest]
              elif action.label == 'varkwargs':
                  kwpairs = iter(args[action.dest] or [])
                  for key in kwpairs:
                      try:
                          key, value = key.split('=', 1)
                      except ValueError:
                          value = next(kwpairs)
                          key = key.strip('-')
                      keywords[key] = value
          return self.func(*positionals, **keywords)
docs: Convert the unordered args into function arguments.