#!python3
|
|
|
|
import sys
|
|
from pysat.formula import CNF
|
|
import argparse
|
|
import pathlib as pl
|
|
import bz2
|
|
|
|
def main():
|
|
f_ext= CNF(from_fp=sys.stdin)
|
|
|
|
instance_dir = pl.Path(parse_args())
|
|
|
|
instance, core_nr = parse_header(f_ext.comments[0])
|
|
|
|
ipath = instance_dir / (instance + ".cnf.bz2")
|
|
|
|
f = CNF(ipath)
|
|
|
|
f.extend(f_ext)
|
|
f.comments = []
|
|
|
|
f.to_fp(sys.stdout,
|
|
comments=["c extension_of:{} nr:{}".format(instance, core_nr)])
|
|
|
|
def parse_args():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("-i", "--instance_dir",
|
|
type=str,
|
|
help="path to the directoy containing all instances")
|
|
|
|
args = parser.parse_args()
|
|
|
|
return args.instance_dir
|
|
def parse_header(header):
|
|
tokens = header.split(' ')[1:]
|
|
|
|
return tokens[0].split(':')[1], int(tokens[1].split(':')[1])
|
|
|
|
if __name__ == "__main__":
|
|
main()
|