code: def process(self, value, state):
      if self.nargs > 1:
          holes = sum(1 for x in value if x is None)
          if holes == len(value):
              value = None
          elif holes != 0:
              raise BadArgumentUsage(
                  "argument {} takes {} values".format(
                      self.dest, self.nargs
                  )
              )
      state.opts[self.dest] = value
      state.order.append(self.obj)
  
imports: import re
  from collections import deque
  from .exceptions import BadArgumentUsage
  from .exceptions import BadOptionUsage
  from .exceptions import NoSuchOption
  from .exceptions import UsageError
label_desc: Use image node_id 2 for calling the Argument obj's underlying member method code with example usage: obj.process(value, state) without return types