aboutsummaryrefslogtreecommitdiff
path: root/generate_parameters.py
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-10-16 00:28:25 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-10-16 00:28:25 -0400
commit51851b017369e9381b60d1af487853febad65b68 (patch)
treedb1f82b41109d2f7e7536bbf4ec66ec395abf411 /generate_parameters.py
parentff7eaca6315e53e4eae2b75086018a0b5ef70dd6 (diff)
generate_parameters.py: Don't overwrite files with identical contents
Diffstat (limited to 'generate_parameters.py')
-rw-r--r--generate_parameters.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/generate_parameters.py b/generate_parameters.py
index f89d08bfd..b71907e68 100644
--- a/generate_parameters.py
+++ b/generate_parameters.py
@@ -184,6 +184,13 @@ def get_params_solinas(prime, bitwidth):
output["goldilocks"] = True
return output
+def write_if_changed(filename, contents):
+ with open(filename, 'r') as f:
+ old = f.read()
+ if old == contents: return
+ with open(filename, 'w') as f:
+ f.write(contents)
+
def update_remake_curves(filename):
with open(REMAKE_CURVES, 'r') as f:
lines = f.readlines()
@@ -194,8 +201,7 @@ def update_remake_curves(filename):
for line in lines]
else:
lines.append(new_line)
- with open(REMAKE_CURVES, 'w') as f:
- f.write(''.join(lines))
+ write_if_changed(REMAKE_CURVES, ''.join(lines))
def format_json(params):
return json.dumps(params, indent=4, separators=(',', ': '), sort_keys=True) + '\n'
@@ -204,9 +210,9 @@ def format_json(params):
def write_output(name, params):
prime = params["modulus"]
filename = (name + "_" + prime + ".json").replace("^","e").replace(" ","").replace("-","m").replace("+","p").replace("*","x")
- g = open(os.path.join(JSON_DIRECTORY, filename), "w")
- g.write(format_json(params))
- g.close()
+
+ write_if_changed(os.path.join(JSON_DIRECTORY, filename),
+ format_json(params))
update_remake_curves(filename)
USAGE = "python generate_parameters.py input_file"