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