from slixmpp.xmlstream import ElementBase class Action(ElementBase): """ A stanza class for XML content of the form: X X X """ #: The `name` field refers to the basic XML tag name of the #: stanza. Here, the tag name will be 'action'. name = 'action' #: The namespace of the main XML tag. namespace = 'slixmpp:custom:actions' #: The `plugin_attrib` value is the name that can be used #: with a parent stanza to access this stanza. For example #: from an Iq stanza object, accessing: #: #: iq['action'] #: #: would reference an Action object, and will even create #: an Action object and append it to the Iq stanza if #: one doesn't already exist. plugin_attrib = 'action' #: Stanza objects expose dictionary-like interfaces for #: accessing and manipulating substanzas and other values. #: The set of interfaces defined here are the names of #: these dictionary-like interfaces provided by this stanza #: type. For example, an Action stanza object can use: #: #: action['method'] = 'foo' #: print(action['param']) #: del action['status'] #: #: to set, get, or remove its values. interfaces = {'method', 'param', 'status'} #: By default, values in the `interfaces` set are mapped to #: attribute values. This can be changed such that an interface #: maps to a subelement's text value by adding interfaces to #: the sub_interfaces set. For example, here all interfaces #: are marked as sub_interfaces, and so the XML produced will #: look like: #: #: #: foo #: sub_interfaces = interfaces