

def files(self):
    "\n        A generator for returning human-readable information about the diffs.\n\n        Generator yields dictionaries that contain filename, name, diff, and\n        type.\n\n        ``filename`` is the absolute path to the file that was modified.\n\n        ``name`` is the path of the file relative to the Git repository.\n\n        ``diff`` is a list of ``(line_number, '+'|'-'|' ', line)`` describing\n        the changes that occurred between the a_blob and b_blob from the\n        commit.\n\n        ``type`` is ``added``, ``deleted``, ``renamed``, ``modified`` and\n        describes the overall action that occurred on this file.\n\n        This will skip symlinks and will not provide the contens of binary\n        files.\n        "
    for diff in self.difflist:
        a_blob = diff.a_blob
        b_blob = diff.b_blob
        a_data = ''
        b_data = ''
        try:
            a_data = diff.data_stream.read()
        except (AttributeError, BadObject):
            pass
        try:
            b_data = b_blob.data_stream.read()
        except (AttributeError, BadObject):
            pass
        if (('\x00' in a_data) or ('\x00' in b_data)):
            linediff = []
        else:
            linediff = describe_diff(a_data, b_data)
        blob = (a_blob or b_blob)
        if islink(blob.abspath):
            continue
        if blob.path.startswith('.jig'):
            continue
        (yield {
            'filename': blob.abspath,
            'name': blob.path,
            'diff': linediff,
            'type': DiffType.for_diff(diff),
        })

dataset/ETHPy150Open robmadole/jig/src/jig/diffconvert.py GitDiffIndex.files/VarMisuse@47/326 `a_blob`->`diff`