Skip to content

Commit e4bcd77

Browse files
Add flexible serialize_graph() with include_weights toggle
1 parent 1135d79 commit e4bcd77

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

pydatastructs/graphs/graph.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,16 @@ def get_secret_key():
2626
def generate_hmac(data):
2727
"""Generating HMAC signature for integrity verification"""
2828
return hmac.new(get_secret_key(), data.encode(),hashlib.sha256).hexdigest()
29-
def serialize_graph(graph):
29+
def serialize_graph(graph, include_weights=True):
3030
"""Converts a graph into a string for HMAC signing."""
3131
if not graph.vertices or not graph.edge_weights:
3232
return "EMPTY_GRAPH"
33-
return str(sorted(graph.vertices)) + str(sorted(graph.edge_weights.items()))
33+
vertices = sorted(graph.vertices)
34+
if include_weights:
35+
edges = sorted((str(k), v) for k, v in graph.edge_weights.items())
36+
else:
37+
edges = sorted(str(k) for k in graph.edge_weights)
38+
return str(vertices) + str(edges)
3439
def pedersen_commitment(graph, g, h, p, q, include_weights=True):
3540
"""
3641
Returns a Pedersen commitment for the given graph.

0 commit comments

Comments
 (0)