docs: def _parse_param_line(self, line):
          """ Parse a single param line. """
          value = line.strip('\n \t')
          if len(value) > 0:
              i = Input()
              if value.find('#') != -1:
                  value, extra_attributes = value.split('#')
                  try:
                      extra_attributes = eval(extra_attributes)
                  except SyntaxError:
                      raise InputException("Incorrectly formatted input for {0}!".format(value))
                  if not isinstance(extra_attributes, dict):
                      raise InputException("Incorrectly formatted input for {0}!".format(value))
                  if 'prompt' in extra_attributes:
                      i.prompt = extra_attributes['prompt']
                  if 'help' in extra_attributes:
                      i.help = extra_attributes['help']
                  if 'type' in extra_attributes:
                      i.in_type = extra_attributes['type']
                      if i.in_type.find('/') != -1:
                          i.in_type, i.out_type = i.in_type.split('/')
                  if 'cast' in extra_attributes:
                      i.out_type = extra_attributes['cast']
              if value.find('==') != -1:
                  value, default = value.split('==')
                  i.default = default
              if value.endswith('?'):
                  value = value[:-1]
                  i.is_secret = True
              return (value, i)
          return None