@classmethod
    def create(cls, folder):
        file_dict = {}
        for root, _, files in os.walk(folder):
            relative_path = os.path.relpath(root, folder)
            for f in files:
                abs_path = os.path.join(root, f)
                rel_path = os.path.normpath(os.path.join(relative_path, f))
                rel_path = rel_path.replace("\\", "/")
                file_dict[rel_path] = md5sum(abs_path)

        date = calendar.timegm(time.gmtime())
        from conans.paths import CONAN_MANIFEST, CONANFILE
        file_dict.pop(CONAN_MANIFEST, None)  # Exclude the MANIFEST itself
        file_dict.pop(CONANFILE + "c", None)  # Exclude the CONANFILE.pyc
        file_dict.pop(".DS_Store", None)  # Exclude tmp in mac
        
        file_dict = {key:value for key, value in file_dict.items() if not key.startswith("__pycache__")}

        return cls(date, file_dict)
Walks a folder and create a TreeDigest for it, reading file contents
dataset/ETHPy150Open conan-io/conan/conans/model/manifest.py/FileTreeManifest.create