def replace_pronunciations(target, source, env): """ Takes two pronunciation files, and replaces pronunciations in the first with those from the second, for overlapping words. Returns a new vocabulary file and pronunciation file. """ with meta_open(source[0].rstr()) as old_fd, meta_open(source[1].rstr()) as repl_fd: old = Pronunciations(old_fd) repl = Pronunciations(repl_fd) logging.info("Old pronunciations: %s", old) logging.info("Replacement pronunciations: %s", repl) old.replace_by(repl) logging.info("New pronunciations: %s", old) with meta_open(target[0].rstr(), "w") as voc_ofd, meta_open(target[1].rstr(), "w") as pron_ofd: voc_ofd.write(old.format_vocabulary()) pron_ofd.write(old.format()) return None