def unchanged(self, other):
        if not isinstance(other, FileInfo):
            raise TypeError("'other' must be a FileInfo, not %r" % other)

        # If mtime and size match, we skip the checksum comparison which
        # might require a file read which we do not want in those cases.
        # (Except if it's a directory, then we won't do that)
        if not self.is_dir and \
           self.mtime == other.mtime and \
           self.size == other.size:
            return True

        return self.checksum == other.checksum
This is an entry point exposed in the python sdist package under the name
dataset/ETHPy150Open lektor/lektor/lektor/builder.py/FileInfo.unchanged--crossover with--dataset/ETHPy150Open girder/girder/girder/utility/install.py/main