def format_kwargs()

in tools/tensorflow_docs/api_generator/signature.py [0:0]


  def format_kwargs(self, kwargs: List[inspect.Parameter],
                    ast_defaults: Dict[str, str]) -> List[str]:
    """Creates a text representation of the kwargs in a method/function.

    Args:
      kwargs: List of kwargs to format.
      ast_defaults: Default values extracted from the function's AST tree.

    Returns:
      Formatted kwargs with type annotations if they exist.
    """

    kwargs_text_repr = []

    for kwarg in kwargs:
      kname = kwarg.name
      ast_default = ast_defaults.get(kname)
      default_val = kwarg.default

      if id(default_val) in self._reverse_index:
        default_text = self._reverse_index[id(default_val)]
      elif ast_default is not None:
        default_text = ast_default
        if default_text != repr(default_val):
          default_text = self._replace_internal_names(default_text)
      # Kwarg without default value.
      elif default_val is kwarg.empty:
        kwargs_text_repr.extend(self.format_args([kwarg]))
        continue
      else:
        # Strip object memory addresses to avoid unnecessary doc churn.
        default_text = self._OBJECT_MEMORY_ADDRESS_RE.sub(
            r'<\g<type>>', repr(default_val))
      default_text = html.escape(str(default_text))

      # Format the kwargs to add the type annotation and default values.
      if kname in self._type_annotations:
        typeanno = self.preprocess(self._type_annotations[kname],
                                   kwarg.annotation)
        kwargs_text_repr.append(f'{kname}: {typeanno} = {default_text}')
      else:
        kwargs_text_repr.append(f'{kname}={default_text}')

    return kwargs_text_repr