code: def _convert_value(val):
      
      def _is_number(x, op):
          try:
              op(x)
              return True
          except ValueError:
              return False
      if isinstance(val, (list, tuple)):
          return [_convert_value(x) for x in val]
      elif val is None:
          return val
      elif _is_number(val, int):
          return int(val)
      elif _is_number(val, float):
          return float(val)
      elif val.find(";;") >= 0:
          return [_convert_value(v) for v in val.split(";;")]
      elif val.startswith(("{", "[")):
          # Can get ugly JSON output from CWL with unicode and ' instead of "
          # This tries to fix it so parsed correctly by json loader
          return json.loads(val.replace("u'", "'").replace("'", '"'))
      elif val.lower() == "true":
          return True
      elif val.lower() == "false":
          return False
      else:
          return val
docs: Handle multiple input type values.