def show_diff(self, no_colour=False) -> str:
        """
        Return a string showing the generated diff.
        """
        if self.original is None or self.updated is None:
            return ""

        original = self.original.module
        updated = self.updated

        diff = difflib.unified_diff(
            original.code.splitlines(), updated.code.splitlines(), "original", "modified"
        )

        if not no_colour:
            diff = add_colours(list(diff))

        try:
            a, b, *lines = diff
            joined = "\n".join(lines)
            return f"{a}{b}{joined}"
        except ValueError:
            # No difference so we stop here.
            return ""

        Return a string showing the generated diff.
        
libqtile/scripts/migrations/_base.py