def get_connected_conditions(conditions):
agraph = graph.Graph(conditions)
var_to_conditions = dict([(var, [])
for var in get_variables(conditions)])
for cond in conditions:
for var in cond.args:
if var[0] == "?":
var_to_conditions[var].append(cond)
# Connect conditions with a common variable
for var, conds in var_to_conditions.items():
for cond in conds[1:]:
agraph.connect(conds[0], cond)
return sorted(map(sorted, agraph.connected_components()))
评论列表
文章目录