@@ -133,21 +133,26 @@ def encode_produce_request(cls, payloads=(), acks=1, timeout=1000):
133133 if acks not in (1 , 0 , - 1 ):
134134 raise ValueError ('ProduceRequest acks (%s) must be 1, 0, -1' % acks )
135135
136+ topics = []
137+ for topic , topic_payloads in group_by_topic_and_partition (payloads ).items ():
138+ topic_msgs = []
139+ for partition , payload in topic_payloads .items ():
140+ partition_msgs = []
141+ for msg in payload .messages :
142+ m = kafka .protocol .message .Message (
143+ msg .value , key = msg .key ,
144+ magic = msg .magic , attributes = msg .attributes
145+ )
146+ partition_msgs .append ((0 , m .encode ()))
147+ topic_msgs .append ((partition , partition_msgs ))
148+ topics .append ((topic , topic_msgs ))
149+
150+
136151 return kafka .protocol .produce .ProduceRequest [0 ](
137152 required_acks = acks ,
138153 timeout = timeout ,
139- topics = [(
140- topic ,
141- [(
142- partition ,
143- [(0 ,
144- kafka .protocol .message .Message (
145- msg .value , key = msg .key ,
146- magic = msg .magic , attributes = msg .attributes
147- ).encode ())
148- for msg in payload .messages ])
149- for partition , payload in topic_payloads .items ()])
150- for topic , topic_payloads in group_by_topic_and_partition (payloads ).items ()])
154+ topics = topics
155+ )
151156
152157 @classmethod
153158 def decode_produce_response (cls , response ):
0 commit comments