def get_list(cls, *fields):
    """
        List of *fields.
        :param fields: Field name of `Option`. Such as `code`, (`name`, `code`), [`code`, `name`, `text`] or etc.
        :return: List of *fields tuple or single value.
        """
    if len(fields) == 0:
        raise ValueError('No fields argument found.')
    found_fields = set()
    for f in fields:
        if f not in ['code', 'name', 'text']:
            raise NameError(
                "'%s' is incorrect Option field. Only 'code', 'name' and 'text' are available."
                 % str(f))
        if f in found_fields:
            raise ValueError("Duplicated fields '%s' found." % str(f))
        found_fields.add(f)
    lst = []
    for o in cls.__get_name_options_mapping().values():
        value = []
        for f in fields:
            value.append(getattr(o, f))
        lst.append(value[0] if len(value) == 1 else tuple(value))
    return lst
