@@ -219,6 +219,28 @@ static PyObject *Consumer_unassign (Handle *self, PyObject *ignore) {
219
219
Py_RETURN_NONE ;
220
220
}
221
221
222
+ static PyObject * Consumer_assignment (Handle * self , PyObject * args ,
223
+ PyObject * kwargs ) {
224
+
225
+ PyObject * plist ;
226
+ rd_kafka_topic_partition_list_t * c_parts ;
227
+ rd_kafka_resp_err_t err ;
228
+
229
+ err = rd_kafka_assignment (self -> rk , & c_parts );
230
+ if (err ) {
231
+ cfl_PyErr_Format (err ,
232
+ "Failed to get assignment: %s" ,
233
+ rd_kafka_err2str (err ));
234
+ return NULL ;
235
+ }
236
+
237
+
238
+ plist = c_parts_to_py (c_parts );
239
+ rd_kafka_topic_partition_list_destroy (c_parts );
240
+
241
+ return plist ;
242
+ }
243
+
222
244
223
245
224
246
static PyObject * Consumer_commit (Handle * self , PyObject * args ,
@@ -465,6 +487,17 @@ static PyMethodDef Consumer_methods[] = {
465
487
" Removes the current partition assignment and stops consuming.\n"
466
488
"\n"
467
489
},
490
+ { "assignment" , (PyCFunction )Consumer_assignment ,
491
+ METH_VARARGS |METH_KEYWORDS ,
492
+ ".. py:function:: assignment()\n"
493
+ "\n"
494
+ " Returns the current partition assignment.\n"
495
+ "\n"
496
+ " :returns: List of assigned topic+partitions.\n"
497
+ " :rtype: list(TopicPartition)\n"
498
+ " :raises: KafkaException\n"
499
+ "\n"
500
+ },
468
501
{ "commit" , (PyCFunction )Consumer_commit , METH_VARARGS |METH_KEYWORDS ,
469
502
".. py:function:: commit([message=None], [offsets=None], [async=True])\n"
470
503
"\n"
0 commit comments