class_docstr: Formats a TFX component in the context of an interactive notebook.
class_docstr_tok: ["Formats","a","TFX","component","in","the","context","of","an","interactive","notebook","."]
docstr: Get a possibly nested attribute of a given object.
docstr_tok: ["Get","a","possibly","nested","attribute","of","a","given","object","."]
code: def _extended_getattr(
      self, obj: object, property_name: str
  ) -> object:
      """Get a possibly nested attribute of a given object."""
      if callable(property_name):
          return property_name(obj)
      parts = property_name.split(".")
      current = obj
      for part in parts:
          current = getattr(current, part)
      return current
  
file_path: tfx/tfx/orchestration/experimental/interactive/notebook_formatters.py
imports: import builtins
  import html
  from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union
  from tfx.dsl.components.base.base_component import BaseComponent
  from tfx.orchestration.experimental.interactive.execution_result import ExecutionResult
  from tfx.types.artifact import Artifact
  from tfx.types.channel import Channel
label_desc: Use image node_id 2 for calling the NotebookFormatter obj's underlying member method code with example usage: obj._extended_getattr(obj, property_name) and returns: current, property_name