Parse a single param line.

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