Page MenuHomePhabricator

No OneTemporary

diff --git a/sipsimple/payloads/imdn.py b/sipsimple/payloads/imdn.py
index dc25c4bb..485e9f94 100644
--- a/sipsimple/payloads/imdn.py
+++ b/sipsimple/payloads/imdn.py
@@ -1,199 +1,199 @@
"""Parses and produces IMDN messages according to RFC5438."""
__all__ = ['namespace',
'IMDNDocument',
'MessageId',
'DateTime',
'RecipientUri',
'OriginalRecipientUri',
'Subject',
'Delivered',
'Failed',
'Displayed',
'Processed',
'Stored',
'Error',
'Forbidden',
'DeliveryStatus',
'DisplayStatus',
'ProcessingStatus',
'DeliveryNotification',
'DisplayNotification',
'ProcessingNotification',
'IMDNMessage']
from sipsimple.payloads import XMLDocument, XMLRootElement, XMLAnyURIElement, XMLStringElement, XMLElementChild, XMLElementChoiceChild, XMLEmptyElement, XMLElement
namespace = 'urn:ietf:params:xml:ns:imdn'
class IMDNDocument(XMLDocument):
content_type = "message/imdn+xml"
IMDNDocument.register_namespace(namespace, prefix=None, schema='imdn.xsd')
# Elements
class MessageId(XMLStringElement):
_xml_tag = 'message-id'
_xml_namespace = namespace
_xml_document = IMDNDocument
class DateTime(XMLStringElement):
_xml_tag = 'datetime'
_xml_namespace = namespace
_xml_document = IMDNDocument
class RecipientUri(XMLAnyURIElement):
_xml_tag = 'recipient-uri'
_xml_namespace = namespace
_xml_document = IMDNDocument
class OriginalRecipientUri(XMLAnyURIElement):
_xml_tag = 'original-recipient-uri'
_xml_namespace = namespace
_xml_document = IMDNDocument
class Subject(XMLStringElement):
_xml_tag = 'subject'
_xml_namespace = namespace
_xml_document = IMDNDocument
class StatusElement(XMLEmptyElement):
_xml_namespace = namespace
_xml_document = IMDNDocument
def __init__(self):
XMLEmptyElement.__init__(self)
def __str__(self):
return "%s" % (self._xml_tag)
class Delivered(StatusElement):
_xml_tag = 'delivered'
class Failed(StatusElement):
_xml_tag = 'failed'
class Displayed(StatusElement):
_xml_tag = 'displayed'
class Processed(StatusElement):
_xml_tag = 'processed'
class Stored(StatusElement):
_xml_tag = 'stored'
class Error(StatusElement):
_xml_tag = 'error'
class Forbidden(StatusElement):
_xml_tag = 'forbidden'
class Status(XMLElement):
_xml_tag = 'status'
_xml_namespace = namespace
_xml_document = IMDNDocument
def __init__(self, status):
XMLElement.__init__(self)
- if isinstance(status, basestring) and status not in ('delivered', 'failed', 'displayed', 'processed', 'stored', 'forbidden', 'error'):
+ if isinstance(status, str) and status not in ('delivered', 'failed', 'displayed', 'processed', 'stored', 'forbidden', 'error'):
raise ValueError("illegal value for status")
- self.status = status if not isinstance(status, basestring) else eval(status.title())()
+ self.status = status if not isinstance(status, str) else eval(status.title())()
def __repr__(self):
return "%s(%r)" % (self.__class__.__name__, self.status)
def __str__(self):
return "%s" % (self.status)
class DeliveryStatus(Status):
status = XMLElementChoiceChild('status', types=(Delivered, Failed, Forbidden, Error), required=True, test_equal=True)
class DisplayStatus(Status):
status = XMLElementChoiceChild('status', types=(Displayed, Forbidden, Error), required=True, test_equal=True)
class ProcessingStatus(Status):
status = XMLElementChoiceChild('status', types=(Processed, Stored, Forbidden, Error), required=True, test_equal=True)
class NotificationType(XMLElement):
_xml_namespace = namespace
_xml_document = IMDNDocument
def __init__(self, status):
XMLElement.__init__(self)
self.status = status
class DeliveryNotification(NotificationType):
_xml_tag = 'delivery-notification'
status = XMLElementChild('status', type=DeliveryStatus, required=True, test_equal=True)
class DisplayNotification(NotificationType):
_xml_tag = 'display-notification'
status = XMLElementChild('status', type=DisplayStatus, required=True, test_equal=True)
class ProcessingNotification(NotificationType):
_xml_tag = 'processing-notification'
status = XMLElementChild('status', type=ProcessingStatus, required=True, test_equal=True)
# document
class IMDNMessage(XMLRootElement):
_xml_tag = 'imdn'
_xml_namespace = namespace
_xml_document = IMDNDocument
_xml_children_order = {MessageId.qname: 0,
DateTime.qname: 1,
RecipientUri.qname: 2,
OriginalRecipientUri.qname: 3,
Subject.qname: 4,
DeliveryNotification.qname: 5,
DisplayNotification.qname: 6,
ProcessingNotification.qname: 7,
None: 8}
message_id = XMLElementChild('message_id', type=MessageId, required=True, test_equal=True)
datetime = XMLElementChild('datetime', type=DateTime, required=True, test_equal=True)
recipient_uri = XMLElementChild('recipient_uri', type=RecipientUri, required=False, test_equal=True)
original_recipient_uri = XMLElementChild('original_recipient_uri', type=OriginalRecipientUri, required=False, test_equal=True)
subject = XMLElementChild('subject', type=Subject, required=False, test_equal=True)
notification = XMLElementChoiceChild('notification', types=(DisplayNotification, DeliveryNotification, ProcessingNotification), required=True, test_equal=True)
def __init__(self, message_id=None, datetime=None, recipient_uri=None, original_recipient_uri=None, subject=None, notification=None):
XMLRootElement.__init__(self)
self.message_id = message_id
self.datetime = datetime
self.recipient_uri = recipient_uri
self.original_recipient_uri = original_recipient_uri if original_recipient_uri is not None else recipient_uri
self.subject = subject
self.notification = notification

File Metadata

Mime Type
text/x-diff
Expires
Sat, Nov 23, 4:02 AM (13 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3408747
Default Alt Text
(6 KB)

Event Timeline