@@ -133,21 +133,26 @@ def encode_produce_request(cls, payloads=(), acks=1, timeout=1000):
133
133
if acks not in (1 , 0 , - 1 ):
134
134
raise ValueError ('ProduceRequest acks (%s) must be 1, 0, -1' % acks )
135
135
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
+
136
151
return kafka .protocol .produce .ProduceRequest [0 ](
137
152
required_acks = acks ,
138
153
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
+ )
151
156
152
157
@classmethod
153
158
def decode_produce_response (cls , response ):
0 commit comments