code: def __init__(self, cluster, members):
      self.members = members
      # a mapping between consumers and their assigned partitions that is updated during assignment procedure
      self.current_assignment = defaultdict(list)
      # an assignment from a previous generation
      self.previous_assignment = {}
      # a mapping between partitions and their assigned consumers
      self.current_partition_consumer = {}
      # a flag indicating that there were no previous assignments performed ever
      self.is_fresh_assignment = False
      # a mapping of all topic partitions to all consumers that can be assigned to them
      self.partition_to_all_potential_consumers = {}
      # a mapping of all consumers to all potential topic partitions that can be assigned to them
      self.consumer_to_all_potential_partitions = {}
      # an ascending sorted set of consumers based on how many topic partitions are already assigned to them
      self.sorted_current_subscriptions = SortedSet()
      # an ascending sorted list of topic partitions based on how many consumers can potentially use them
      self.sorted_partitions = []
      # all partitions that need to be assigned
      self.unassigned_partitions = []
      # a flag indicating that a certain partition cannot remain assigned to its current consumer because the consumer
      # is no longer subscribed to its topic
      self.revocation_required = False
  
      self.partition_movements = PartitionMovements()
      self._initialize(cluster)
  
imports: import logging
  from collections import defaultdict, namedtuple
  from copy import deepcopy
  from kafka.cluster import ClusterMetadata
  from kafka.coordinator.assignors.abstract import AbstractPartitionAssignor
  from kafka.coordinator.assignors.sticky.partition_movements import PartitionMovements
  from kafka.coordinator.assignors.sticky.sorted_set import SortedSet
  from kafka.coordinator.protocol import ConsumerProtocolMemberMetadata, ConsumerProtocolMemberAssignment
  from kafka.coordinator.protocol import Schema
  from kafka.protocol.struct import Struct
  from kafka.protocol.types import String, Array, Int32
  from kafka.structs import TopicPartition
  from kafka.vendor import six
label_desc: Use image node_id 1 to create a new StickyAssignmentExecutor object  with example: obj = StickyAssignmentExecutor(cluster, members)