class_docstr: A placeholder that evaluates to a proto message.
class_docstr_tok: ["A","placeholder","that","evaluates","to","a","proto","message","."]
docstr: Yields all placeholders under and including this one.
docstr_tok: ["Yields","all","placeholders","under","and","including","this","one","."]
code: def traverse(self) -> Iterator[placeholder_base.Placeholder]:
      """Yields all placeholders under and including this one."""
      yield from super().traverse()
      for value in self._fields.values():
          if isinstance(value, placeholder_base.Placeholder):
              yield from value.traverse()
  
file_path: tfx/tfx/dsl/placeholder/proto_placeholder.py
imports: from __future__ import annotations
  from typing import Dict, Generic, Iterator, List, Optional, Tuple, Type, TypeVar, Union
  from tfx.dsl.placeholder import placeholder_base
  from tfx.proto.orchestration import placeholder_pb2
  from tfx.utils import proto_utils
  from google.protobuf import any_pb2
  from google.protobuf import descriptor
  from google.protobuf import message
label_desc: Use image node_id 4 for calling the MakeProtoPlaceholder obj's underlying member method code with example usage: obj.traverse() without return types