summaryrefslogtreecommitdiff
path: root/kafka/coordinator/assignors/abstract.py
diff options
context:
space:
mode:
Diffstat (limited to 'kafka/coordinator/assignors/abstract.py')
-rw-r--r--kafka/coordinator/assignors/abstract.py27
1 files changed, 23 insertions, 4 deletions
diff --git a/kafka/coordinator/assignors/abstract.py b/kafka/coordinator/assignors/abstract.py
index ed09a6e..773280a 100644
--- a/kafka/coordinator/assignors/abstract.py
+++ b/kafka/coordinator/assignors/abstract.py
@@ -19,17 +19,36 @@ class AbstractPartitionAssignor(object):
def assign(self, cluster, members):
"""Perform group assignment given cluster metadata and member subscriptions
- @param cluster: cluster metadata
- @param members: {member_id: subscription}
- @return {member_id: MemberAssignment}
+ Arguments:
+ cluster (ClusterMetadata): metadata for use in assignment
+ members (dict of {member_id: MemberMetadata}): decoded metadata for
+ each member in the group.
+
+ Returns:
+ dict: {member_id: MemberAssignment}
"""
pass
@abc.abstractmethod
def metadata(self, topics):
- """return ProtocolMetadata to be submitted via JoinGroupRequest"""
+ """Generate ProtocolMetadata to be submitted via JoinGroupRequest.
+
+ Arguments:
+ topics (set): a member's subscribed topics
+
+ Returns:
+ MemberMetadata struct
+ """
pass
@abc.abstractmethod
def on_assignment(self, assignment):
+ """Callback that runs on each assignment.
+
+ This method can be used to update internal state, if any, of the
+ partition assignor.
+
+ Arguments:
+ assignment (MemberAssignment): the member's assignment
+ """
pass