in tools/ci_build/get_docker_image.py [0:0]
def update_hash_with_directory(dir_file_info: FileInfo, hash_obj):
hash_obj.update(file_info_str(dir_file_info).encode())
files, dirs = [], []
for dir_entry in os.scandir(dir_file_info.path):
file_info = FileInfo(dir_entry.path, dir_entry.stat().st_mode)
if dir_entry.is_dir():
dirs.append(file_info)
elif dir_entry.is_file():
files.append(file_info)
def file_info_key(file_info: FileInfo):
return file_info.path
files.sort(key=file_info_key)
dirs.sort(key=file_info_key)
for file_info in files:
update_hash_with_file(file_info, hash_obj)
for file_info in dirs:
update_hash_with_directory(file_info, hash_obj)