code: def _argument(self, argument, value):
      optional = False
      argument_type = ""
      while not isinstance(value, str):
          if isinstance(value, Schema.OptionalType):
              value = value.element_type
              optional = True
          elif isinstance(value, Schema.ListType):
              size = str(value.size) if hasattr(value, "size") else ""
              argument_type = "[" + size + "]" + argument_type
              value = value.element_type
          elif isinstance(value, Schema.DictType):
              value = str(value)
          else:
              name = value.name
              name = (
                  self._primitives[name]
                  if name in self._primitives
                  else name
              )
              argument_type = name + argument_type
              break
      if argument_type:
          argument["type"] = argument_type
      else:
          argument.pop("type", None)
      if optional:
          argument["optional"] = True
      else:
          argument.pop("optional", False)
  
imports: import json
  import os
label_desc: Use image node_id 3 for calling the Metadata obj's underlying member method code with example usage: obj._argument(argument, value) without return types