This commit is contained in:
Paul Gauthier 2023-06-05 16:42:36 -07:00
parent efb903303f
commit 33d1a43845

View file

@ -1,23 +1,48 @@
import sys
import difflib
import sys
from .dump import dump
def main():
if len(sys.argv) != 3:
print("Usage: python diffs.py file1 file2")
print("Usage: python diffs.py file1 file")
sys.exit(1)
file1, file2 = sys.argv[1], sys.argv[2]
file_orig, file_updated = sys.argv[1], sys.argv[2]
with open(file1, 'r') as f1:
content1 = f1.readlines()
with open(file_orig, "r") as f:
lines_orig = f.readlines()
with open(file2, 'r') as f2:
content2 = f2.readlines()
with open(file_updated, "r") as f:
lines_updated = f.readlines()
differences = list(difflib.unified_diff(content1, content2, fromfile=file1, tofile=file2))
diff = list(difflib.ndiff(lines_orig, lines_updated))
# Mapping between the line numbers
mapping = {}
num_orig, num_updated = 0, 0
last_non_deleted_orig = 0
for line in diff:
print(f"{num_orig:2d} {num_updated:2d} {line}", end="")
code = line[0]
if code == " ":
# lines are the same in both files
mapping[num_orig] = num_updated
num_orig += 1
num_updated += 1
last_non_deleted_orig = num_orig
elif code == "-":
# line only in file_orig
num_orig += 1
elif code == "+":
# line only in file_updated
num_updated += 1
dump(last_non_deleted_orig)
for line in differences:
sys.stdout.write(line)
if __name__ == "__main__":
main()