'Create an :class:`~sleekxmpp.stanza.iq.Iq` stanza of type ``\'set\'``.
Optionally, a substanza may be given to use as the
stanza\'s payload.
:param sub: Either an
:class:`~sleekxmpp.xmlstream.stanzabase.ElementBase`
stanza object or an
:class:`~xml.etree.ElementTree.Element` XML object
to use as the :class:`~sleekxmpp.stanza.iq.Iq`\'s payload.
:param ito: The destination :class:`~sleekxmpp.xmlstream.jid.JID`
for this stanza.
:param ifrom: The ``\'from\'`` :class:`~sleekxmpp.xmlstream.jid.JID`
to use for this stanza.
:param iq: Optionally use an existing stanza instead
of generating a new one.'

def make_iq_set(self, sub=None, ito=None, ifrom=None, iq=None):

    if (not iq):
        iq = self.Iq()
    iq[u'type'] = u'set'
    if (sub != None):
        iq.append(sub)
    if ito:
        iq[u'to'] = ito
    if ifrom:
        iq[u'from'] = ifrom
    return iq
