'Store public data via PEP.
This is just a (very) thin wrapper around the XEP-0060 publish()
method to set the defaults expected by PEP.
Arguments:
stanza   -- The private content to store.
node     -- The node to publish the content to. If not specified,
the stanza\'s namespace will be used.
id       -- Optionally specify the ID of the item.
options  -- Publish options to use, which will be modified to
fit the persistent storage option profile.
ifrom    -- Specify the sender\'s JID.
block    -- Specify if the send call will block until a response
is received, or a timeout occurs. Defaults to True.
timeout  -- The length of time (in seconds) to wait for a response
before exiting the send call if blocking is used.
Defaults to sleekxmpp.xmlstream.RESPONSE_TIMEOUT
callback -- Optional reference to a stream handler function. Will
be executed when a reply stanza is received.'

def store(self, stanza, node=None, id=None, ifrom=None, options=None, block=True, callback=None, timeout=None):

    if (not options):
        options = self.xmpp['xep_0004'].stanza.Form()
        options['type'] = 'submit'
        options.add_field(var='FORM_TYPE', ftype='hidden', value='http://jabber.org/protocol/pubsub#publish-options')
    fields = options['fields']
    for (field, value) in self.profile.items():
        if (field not in fields):
            options.add_field(var=field)
        options['fields'][field]['value'] = value
    return self.xmpp['xep_0163'].publish(stanza, node, options=options, ifrom=ifrom, block=block, callback=callback, timeout=timeout)
