<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def diff(self, source_path='', target_path='', which=-1):
 """Build the diff between original docstring and proposed docstring. :type which: int -> -1 means all the dosctrings of the file -> >=0 means the index of the docstring to proceed (Default value = -1) :param source_path: (Default value = '') :param target_path: (Default value = '') :returns: the resulted diff :rtype: List[str] """

        list_from, list_to = self.compute_before_after()

        if source_path.startswith(os.sep):
            source_path = source_path[1:]
        if source_path and not source_path.endswith(os.sep):
            source_path += os.sep
        if target_path.startswith(os.sep):
            target_path = target_path[1:]
        if target_path and not target_path.endswith(os.sep):
            target_path += os.sep

        fromfile = 'a/' + source_path + os.path.basename(self.input_file)
        tofile = 'b/' + target_path + os.path.basename(self.input_file)
        diff_list = difflib.unified_diff(list_from, list_to, fromfile, tofile)
        return [d for d in diff_list]