<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def from_unidiff(cls, diff: str) -> 'Patch': """ Constructs a Patch from a provided unified format diff. """

        lines = diff.split('\n')
        file_patches = []
        while lines:
            if lines[0] == '' or lines[0].isspace():
                lines.pop(0)
                continue
            file_patches.append(FilePatch._read_next(lines))

        return Patch(file_patches)