#!/usr/bin/env python3 from day16.shared import parse_packets lines = (x.strip() for x in open("input.txt")) def sum_version(exprs): return sum(expr[0] + (sum_version(expr[2]) if isinstance(expr[2], list) else 0) for expr in exprs) for line in lines: print("NEW LINE:", line) if line[0] == '#': continue bin_string = ''.join(bin(int(c, 16))[2:].zfill(4) for c in line) parsed = parse_packets(bin_string) print(sum_version(parsed))