@@ -231,6 +231,28 @@ static PyObject *Consumer_unassign (Handle *self, PyObject *ignore) {
231
231
Py_RETURN_NONE ;
232
232
}
233
233
234
+ static PyObject * Consumer_assignment (Handle * self , PyObject * args ,
235
+ PyObject * kwargs ) {
236
+
237
+ PyObject * plist ;
238
+ rd_kafka_topic_partition_list_t * c_parts ;
239
+ rd_kafka_resp_err_t err ;
240
+
241
+ err = rd_kafka_assignment (self -> rk , & c_parts );
242
+ if (err ) {
243
+ cfl_PyErr_Format (err ,
244
+ "Failed to get assignment: %s" ,
245
+ rd_kafka_err2str (err ));
246
+ return NULL ;
247
+ }
248
+
249
+
250
+ plist = c_parts_to_py (c_parts );
251
+ rd_kafka_topic_partition_list_destroy (c_parts );
252
+
253
+ return plist ;
254
+ }
255
+
234
256
235
257
236
258
static PyObject * Consumer_commit (Handle * self , PyObject * args ,
@@ -489,6 +511,17 @@ static PyMethodDef Consumer_methods[] = {
489
511
" :raises: KafkaException\n"
490
512
"\n"
491
513
},
514
+ { "assignment" , (PyCFunction )Consumer_assignment ,
515
+ METH_VARARGS |METH_KEYWORDS ,
516
+ ".. py:function:: assignment()\n"
517
+ "\n"
518
+ " Returns the current partition assignment.\n"
519
+ "\n"
520
+ " :returns: List of assigned topic+partitions.\n"
521
+ " :rtype: list(TopicPartition)\n"
522
+ " :raises: KafkaException\n"
523
+ "\n"
524
+ },
492
525
{ "commit" , (PyCFunction )Consumer_commit , METH_VARARGS |METH_KEYWORDS ,
493
526
".. py:function:: commit([message=None], [offsets=None], [async=True])\n"
494
527
"\n"
0 commit comments