in azdev/operations/pypi.py [0:0]
def _compare_folders(dir1, dir2):
import filecmp
dirs_cmp = filecmp.dircmp(dir1, dir2)
errors = []
if dirs_cmp.left_only or dirs_cmp.right_only or dirs_cmp.funny_files:
# allow some special cases
if len(dirs_cmp.left_only) == 1 and '__init__.py' in dirs_cmp.left_only:
pass
elif len(dirs_cmp.right_only) == 1 and dirs_cmp.right_only[0].endswith('.whl'):
pass
else:
if dirs_cmp.left_only:
logger.debug('LO: %s', dirs_cmp.left_only)
if dirs_cmp.right_only:
logger.debug('RO: %s', dirs_cmp.right_only)
if dirs_cmp.funny_files:
logger.debug('FF: %s', dirs_cmp.funny_files)
errors.append('Different files in directory structure.')
errors = errors + _compare_common_files(dirs_cmp.common_files, dir1, dir2)
for common_dir in dirs_cmp.common_dirs:
new_dir1 = os.path.join(dir1, common_dir)
new_dir2 = os.path.join(dir2, common_dir)
if common_dir.endswith('.dist-info'):
# special case to check for dependency-only changes
errors = errors + _compare_dependencies(new_dir1, new_dir2)
else:
errors = errors + _compare_folders(new_dir1, new_dir2)
return errors