code: def _get_leader_for_partition(self, topic, partition):
          
  
          key = TopicPartition(topic, partition)
  
          # Use cached metadata if it is there
          if self.topics_to_brokers.get(key) is not None:
              return self.topics_to_brokers[key]
  
          # Otherwise refresh metadata
  
          # If topic does not already exist, this will raise
          # UnknownTopicOrPartitionError if not auto-creating
          # LeaderNotAvailableError otherwise until partitions are created
          self.load_metadata_for_topics(topic)
  
          # If the partition doesn't actually exist, raise
          if partition not in self.topic_partitions.get(topic, []):
              raise UnknownTopicOrPartitionError(key)
  
          # If there's no leader for the partition, raise
          leader = self.topic_partitions[topic][partition]
          if leader == -1:
              raise LeaderNotAvailableError((topic, partition))
  
          # Otherwise return the BrokerMetadata
          return self.brokers[leader]
docs: Returns the leader for a partition or None if the partition exists
          but has no leader.
  
          Raises:
              UnknownTopicOrPartitionError: If the topic or partition is not part
                  of the metadata.
              LeaderNotAvailableError: If the server has metadata, but there is no
          current leader.