code: def container_obj_to_bytes(self, obj_info, object_queue, parent_addr):
      bytes = b""
      if self.write_magic:
          bytes = struct.pack("<4s", obj_info.obj.DESCRIPTOR.name[0:4])
  
      for descriptor in obj_info.obj.DESCRIPTOR.fields:
          if (
              obj_info.obj.DESCRIPTOR.name in self.exclude_fileds
              and descriptor.name
              in self.exclude_fileds[obj_info.obj.DESCRIPTOR.name]
          ):  # noqa
              continue
          value = getattr(obj_info.obj, descriptor.name)
          if descriptor.label == descriptor.LABEL_REPEATED:
              array = value
              bytes = self.array_to_bytes(
                  bytes, array, object_queue, parent_addr, descriptor
              )
          elif descriptor.type in SimpleTypeArray:
              bytes += self.pack(value, descriptor.type)
          elif descriptor.type is descriptor.TYPE_STRING:
              bytes = self.string_info_to_bytes(
                  bytes, value, object_queue, parent_addr
              )
          elif descriptor.type is descriptor.TYPE_BYTES:
              bytes = self.bytes_info_to_bytes(
                  bytes, value, object_queue, parent_addr
              )
          else:
              mace_check(
                  False,
                  "The pb type is not supported: %s" % descriptor.type,
              )
      return bytes
  
imports: from google.protobuf.descriptor import FieldDescriptor
  from utils.util import mace_check
  import sys
  import struct
  import tempfile
label_desc: Use image node_id 10 for calling the ProtoConverter obj's underlying member method code with example usage: obj.container_obj_to_bytes(obj_info, object_queue, parent_addr) and returns: bytes