text: #! /usr/bin/env python3
  # -*- coding: utf-8 -*-
  
  # `pip install …`
  import kafka  # … kafka-python
  
  import argparse
  
  
  def main():
      parser = argparse.ArgumentParser(description="Kafka Topic manager")
      parser.add_argument(
          "--server",
          type=str,
          metavar="HOST",
          default="localhost",
          help="Kafka bootstrap-server address",
      )
      parser.add_argument(
          "--port",
          type=int,
          metavar="PORT",
          default=9092,
          help="Kafka bootstrap-server port",
      )
      parser.add_argument(
          "--client",
          type=str,
          default="ch-kafka-python",
          help="custom client id for this producer",
      )
  
      commands = parser.add_mutually_exclusive_group()
      commands.add_argument(
          "--create",
          type=str,
          metavar="TOPIC",
          nargs="+",
          help="create new topic(s) in the cluster",
      )
      commands.add_argument(
          "--delete",
          type=str,
          metavar="TOPIC",
          nargs="+",
          help="delete existing topic(s) from the cluster",
      )
  
      args = parser.parse_args()
      config = {
          "bootstrap_servers": f"{args.server}:{args.port}",
          "client_id": args.client,
      }
  
      client = kafka.KafkaAdminClient(**config)
      if args.create:
          print((client.create_topics(args.create)))
      elif args.delete:
          print((client.delete_topics(args.delete)))
  
      client.close()
      return 0
  
  
  if __name__ == "__main__":
      exit(main())
  