code: def delivery_report(err, msg):
      if err is not None:
          print(
              "Delivery failed for record {}: {}".format(msg.key(), err)
          )
          return
      print(
          "Record {} successfully produced to {} [{}] at offset {}".format(
              msg.key(), msg.topic(), msg.partition(), msg.offset()
          )
      )
  
file_path: data-engineering-zoomcamp/06-streaming/python/avro_example/producer.py
imports: import os
  import csv
  from time import sleep
  from typing import Dict
  from confluent_kafka import Producer
  from confluent_kafka.schema_registry import SchemaRegistryClient
  from confluent_kafka.schema_registry.avro import AvroSerializer
  from confluent_kafka.serialization import SerializationContext, MessageField
  from ride_record_key import RideRecordKey, ride_record_key_to_dict
  from ride_record import RideRecord, ride_record_to_dict
  from settings import RIDE_KEY_SCHEMA_PATH, RIDE_VALUE_SCHEMA_PATH, SCHEMA_REGISTRY_URL, BOOTSTRAP_SERVERS, INPUT_DATA_PATH, KAFKA_TOPIC
label_desc: Use image node_id 3 for calling the RideAvroProducer obj's underlying member method code with example usage: obj.delivery_report(err, msg) without return types