def _merge_docstrings(add_method, layer_string): # create combined docstring with parameters from add_* and Viewer methods import textwrap add_method_doc = _NumpyDocString(add_method.__doc__) # this ugliness is because the indentation of the parsed numpydocstring # is different for the first parameter :( lines = add_method_doc._str_param_list('Parameters') lines = lines[:3] + textwrap.dedent("\n".join(lines[3:])).splitlines() params = "\n".join(lines) + "\n" + textwrap.dedent(_VIEW_PARAMS) n = 'n' if layer_string.startswith(tuple('aeiou')) else '' return _doc_template.format(n=n, layer_string=layer_string, params=params)
'view_surface', 'view_tracks', 'view_vectors', ] _doc_template = """Create a viewer and add a{n} {layer_string} layer. {params} Returns ------- viewer : :class:`napari.Viewer` The newly-created viewer. """ _VIEW_DOC = _NumpyDocString(Viewer.__doc__) _VIEW_PARAMS = " " + "\n".join(_VIEW_DOC._str_param_list('Parameters')[2:]) def _merge_docstrings(add_method, layer_string): # create combined docstring with parameters from add_* and Viewer methods import textwrap add_method_doc = _NumpyDocString(add_method.__doc__) # this ugliness is because the indentation of the parsed numpydocstring # is different for the first parameter :( lines = add_method_doc._str_param_list('Parameters') lines = lines[:3] + textwrap.dedent("\n".join(lines[3:])).splitlines() params = "\n".join(lines) + "\n" + textwrap.dedent(_VIEW_PARAMS) n = 'n' if layer_string.startswith(tuple('aeiou')) else ''