'Fill the surface between sources for a source space label.
Parameters
src : SourceSpaces
Source space in which the label was defined. If a source space is
provided, the label is expanded to fill in surface vertices that
lie between the vertices included in the source space. For the
added vertices, ``pos`` is filled in with positions from the
source space, and ``values`` is filled in from the closest source
space vertex.
name : None | str
Name for the new Label (default is self.name).
Returns
label : Label
The label covering the same vertices in source space but also
including intermediate surface vertices.'

def fill(self, src, name=None):

    if (len(self.vertices) == 0):
        return self.copy()
    if (self.hemi == 'lh'):
        hemi_src = src[0]
    elif (self.hemi == 'rh'):
        hemi_src = src[1]
    if (not np.all(np.in1d(self.vertices, hemi_src['vertno']))):
        msg = "Source    space    does    not    contain    all    of    the    label's    vertices"
        raise ValueError(msg)
    nearest = hemi_src['nearest']
    if (nearest is None):
        warn('Computing    patch    info    for    source    space,    this    can    take    a    while.    In    order    to    avoid    this    in    the    future,    run    mne.add_source_space_distances()    on    the    source    space    and    save    it.')
        add_source_space_distances(src)
        nearest = hemi_src['nearest']
    include = np.in1d(nearest, self.vertices, False)
    vertices = np.nonzero(include)[0]
    nearest_in_label = np.digitize(nearest[vertices], self.vertices, True)
    values = self.values[nearest_in_label]
    pos = hemi_src['rr'][vertices]
    if (name is None):
        name = self.name
    label = Label(vertices, pos, values, self.hemi, self.comment, name, None, self.subject, self.color)
    return label
