'Modify one line of a VCard.
>>> vc = SimpleVCard(VCardLine(name=\'fn\', value=\'Bjarni\'))
>>> vc.get(\'fn\').value
u\'Bjarni\'
>>> vc.set_line(vc.get(\'fn\').line_id,
...             VCardLine(name=\'fn\', value=\'Dude\'))
>>> vc.get(\'fn\').value
u\'Dude\''

def set_line(self, ln, vcl, **kwargs):

    if (not ((ln > 0) and (ln <= len(self._lines)))):
        raise ValueError((_('Line    number    %s    is    out    of    range') % ln))
    (src_pid, pidmap, version, is_new) = self._handle_pidmap_args(**kwargs)
    if ((src_pid is not None) and (vcl.name not in self.UNREMOVABLE) and ('pid' not in vcl)):
        vcl.set_attr('pid', ('%s.%s' % (src_pid, version)))
    with self._lock:
        vcl.line_id = ln
        self._lines[(ln - 1)] = vcl
