Example #1
0
    def _build_basic_properties(self, properties):
        """
        Get the pika.BasicProperties from a pikachewie.data.Properties object.

        :param pikachewie.data.Properties properties: properties to convert
        :rtype: pika.spec.BasicProperties

        """
        basic_properties = BasicProperties()
        attrs = '''
            app_id
            content_encoding
            content_type
            correlation_id
            delivery_mode
            priority
            reply_to
            message_id
            type
            user_id
        '''.split()
        for attr in attrs:
            value = getattr(properties, attr)
            if value is not None:
                setattr(basic_properties, attr, value)

        basic_properties.timestamp = properties.timestamp or int(time.time())
        if properties.expiration is not None:
            basic_properties.expiration = str(properties.expiration)
        if properties.headers is not None and \
                len(properties.headers.keys()):
            basic_properties.headers = dict(properties.headers)

        return basic_properties