return cnf
+def normalize_cnf (cnf):
+ """
+ Ensure the output conforms to set_cnf()’s expectations.
+ """
+ if isinstance (cnf, list) is False:
+ raise MalformedCNF ("expected list of CNF_VARs, got [%s]" % type (cnf))
+ def norm (var):
+ vvar = \
+ { "number" : var ["number"]
+ , "varname" : var ["varname"].upper ()
+ , "instance" : var ["instance"]
+ , "data" : var ["data"]
+ }
+
+ children = var.get ("children", None)
+ if children is not None:
+ vvar ["children"] = normalize_cnf (children)
+
+ return vvar
+
+ return [ norm (var) for var in cnf ]
+
+
def print_cnf_raw(root, out=None):
if root is not None:
out.write(root)
def print_cnf(root, out=None, renumber=False):
if root is not None:
- output_cnf(root, out or sys.stdout, renumber=renumber)
+ output_cnf(root, out or sys.stdout, renumber=renumber, bytes=False)
def write_cnf(*argv, **kw_argv):
if renumber is True:
_count = renumber_vars(root)
if is_cnf(root) is True:
+ root ["cnf"] = normalize_cnf(cnf_root (root))
data = json.dumps(root)
out.write(data)
out.write("\n")