Example #1
0
    def from_node(cls, node):
        """Load values from node.

        :param node: `etree.Element` instance.
        :returns: `messages.TransformRequest` instance.
        """
        node = super(TransformRequest, cls).from_node(node)

        entity_nodes = node.find("Entities")
        if entity_nodes is None:
            raise exceptions.MalformedMessageError('Request requires "Entities" tag.')

        instance = cls()

        for entity in entity_nodes.getchildren():
            instance.entities.append(Entity.from_node(entity))

        fields = node.find("TransformFields")
        if fields is not None:
            for field in fields.getchildren():
                if "Name" not in field.attrib:
                    raise exceptions.MalformedMessageError('No "Name" attribute in Field')
                name = field.attrib["Name"]
                value = field.text and field.text.strip()
                instance.fields[name] = value

        limit = node.find("Limits")
        if limit is not None:
            instance.soft_limit = int(limit.attrib.get("SoftLimit", constants.DEFAULT_SOFT_LIMIT))
            instance.hard_limit = int(limit.attrib.get("HardLimit", constants.DEFAULT_SOFT_LIMIT))

        return instance
Example #2
0
    def from_node(cls, node):
        """Load values from node.

        :param node: `etree.Element` instance.
        :returns: `messages.TransformRequest` instance.
        """
        node = super(TransformRequest, cls).from_node(node)

        entity_nodes = node.find('Entities')
        if entity_nodes is None:
            raise exceptions.MalformedMessageError(
                'Request requires "Entities" tag.'
            )

        instance = cls()

        for entity in entity_nodes.getchildren():
            instance.entities.append(Entity.from_node(entity))

        fields = node.find('TransformFields')
        if fields is not None:
            for field in fields.getchildren():
                if 'Name' not in field.attrib:
                    raise exceptions.MalformedMessageError(
                        'No "Name" attribute in Field'
                    )
                name = field.attrib['Name']
                value = field.text and field.text.strip()
                instance.fields[name] = value

        limit = node.find('Limits')
        if limit is not None:
            instance.soft_limit = int(
                limit.attrib.get('SoftLimit', constants.DEFAULT_SOFT_LIMIT)
            )
            instance.hard_limit = int(
                limit.attrib.get('HardLimit', constants.DEFAULT_SOFT_LIMIT)
            )

        return instance
Example #3
0
    def from_node(cls, node):
        """Load values from node.

        :param node: `etree.Element` instance.
        :returns: `messages.TransformResponse` instance.
        """
        node = super(TransformResponse, cls).from_node(node)

        entity_nodes = node.find("Entities")
        if entity_nodes is None:
            raise exceptions.MalformedMessageError('Request requires "Entities" tag.')

        entities = []
        for entity in entity_nodes.getchildren():
            entities.append(Entity.from_node(entity))

        ui_messages = []
        message_nodes = node.find("UIMessages")
        for message in message_nodes.getchildren():
            ui_messages.append(UIMessage.from_node(message))

        return cls(entities, ui_messages)
Example #4
0
    def from_node(cls, node):
        """Load values from node.

        :param node: `etree.Element` instance.
        :returns: `messages.TransformResponse` instance.
        """
        node = super(TransformResponse, cls).from_node(node)

        entity_nodes = node.find('Entities')
        if entity_nodes is None:
            raise exceptions.MalformedMessageError(
                'Request requires "Entities" tag.'
            )

        entities = []
        for entity in entity_nodes.getchildren():
            entities.append(Entity.from_node(entity))

        ui_messages = []
        message_nodes = node.find('UIMessages')
        for message in message_nodes.getchildren():
            ui_messages.append(UIMessage.from_node(message))

        return cls(entities, ui_messages)