#!/usr/bin/env python3 """Detects and removes sub-capsets. [00 01 10] is a subcapset of [00 01 10 22], and thus would be filtered.""" from sys import argv, stdout def main(): if len(argv) <= 1: infile = "capset.out" if len(argv) > 1: infile = argv[1] if len(argv) <= 2: outfile = "capset.filtered" if len(argv) > 2: outfile = argv[2] capsets = [] capset_file = open(infile, "r") for line in capset_file: capsets.append(tuple(line[1:-2].split(" "))) capset_file.close() if outfile: stdout = open(outfile, "w") capsetSet = set(capsets) for capset in capsets: for i in range(len(capset)): capsetSet.discard(capset[:i] + capset[i+1:]) for capset in capsets: if capset in capsetSet: print("[" + " ".join(capset) + "]", file=stdout) if __name__ == "__main__": main()