'Generates a SELECT tag, including OPTIONs (only 1 option allowed)
see also: `FormWidget.widget`'

def widget(self, field, value, **attributes):

    default = dict(value=value)
    attr = self._attributes(field, default, **attributes)
    requires = field.requires
    if (not isinstance(requires, (list, tuple))):
        requires = [requires]
    if requires:
        if hasattr(requires[0], 'options'):
            options = requires[0].options()
        else:
            raise SyntaxError(('widget    cannot    determine    options    of    %s' % field))
    icons = self.icons
    if icons:
        options = icons(options)
        opts = []
        oappend = opts.append
        for (k, v, i) in options:
            oattr = {'_value': k}
            if i:
                oattr['_data-style'] = ("background-image:url('%s');height:%spx;width:%spx" % (i[0], i[1], i[2]))
            opt = OPTION(v, **oattr)
            oappend(opt)
    else:
        opts = [OPTION(v, _value=k) for (k, v) in options]
    return SELECT(*opts, **attr)
