code: def format_docstring(owner_name, docstring, formatters):
      
      # Build a dict of parameters to a vanilla format() call by searching for
      # each entry in **formatters and applying any leading whitespace to each
      # line in the desired substitution.
      format_params = {}
      for target, doc_for_target in iteritems(formatters):
          # Search for '{name}', with optional leading whitespace.
          regex = re.compile(r'^(\s*)' + '({' + target + '})$', re.MULTILINE)
          matches = regex.findall(docstring)
          if not matches:
              raise ValueError(
                  "Couldn't find template for parameter {!r} in docstring "
                  "for {}."
                  "\nParameter name must be alone on a line surrounded by "
                  "braces.".format(target, owner_name),
              )
          elif len(matches) > 1:
              raise ValueError(
                  "Couldn't found multiple templates for parameter {!r}"
                  "in docstring for {}."
                  "\nParameter should only appear once.".format(
                      target, owner_name
                  )
              )
  
          (leading_whitespace, _) = matches[0]
          format_params[target] = pad_lines_after_first(
              leading_whitespace,
              doc_for_target,
          )
  
      return docstring.format(**format_params)
docs: Template ``formatters`` into ``docstring``.
  
      Parameters
      ----------
      owner_name : str
          The name of the function or class whose docstring is being templated.
          Only used for error messages.
      docstring : str
          The docstring to template.
      formatters : dict[str -> str]
          Parameters for a a str.format() call on ``docstring``.
  
          Multi-line values in ``formatters`` will have leading whitespace padded
          to match the leading whitespace of the substitution string.