(src, dest)
| 65 | |
| 66 | |
| 67 | def copy_if_modified(src, dest): |
| 68 | try: |
| 69 | dest_stat = os.stat(dest) |
| 70 | except FileNotFoundError: |
| 71 | do_copy = True |
| 72 | else: |
| 73 | src_stat = os.stat(src) |
| 74 | do_copy = ( |
| 75 | src_stat.st_mtime != dest_stat.st_mtime |
| 76 | or src_stat.st_size != dest_stat.st_size |
| 77 | ) |
| 78 | |
| 79 | if do_copy: |
| 80 | try: |
| 81 | shutil.copy2(src, dest) |
| 82 | except FileNotFoundError: |
| 83 | raise FileNotFoundError(src) from None |
| 84 | |
| 85 | |
| 86 | def get_lib_layout(ns): |
no test coverage detected
searching dependent graphs…