Loading testing/oids.py 0 → 100644 +51 −0 Original line number Diff line number Diff line from subprocess import run from regex import compile import csv oid_reg = compile(r"{(.*)}") part_reg = compile(r"\((\d*)\)") def parse_oid(txt): oid_match = oid_reg.findall(txt)[0] oid_parts = str(oid_match).replace("\n","").strip().split(" ") ret = [] for part in oid_parts: arc_name = part.split("(")[0] arc_num = int(part_reg.findall(part)[0]) ret.append((arc_name, arc_num)) return oid_match, ret def oid_as_numeric(oid_parts): return ".".join(str(x[1]) for x in oid_parts) tag_result = run(["git", "tag"], capture_output=True, text = True) tags = [t for t in tag_result.stdout.splitlines() if t.startswith('spec/33128')] rows = [] for tag in tags: print(tag) version = tag.split("/")[-1] version_parts = version.split(".") release = version_parts[0] ver_maj = version_parts[1] ver_min = version_parts[2] asn_result = run(["git", "show", f"{tag}:33128/r{release}/TS33128Payloads.asn"], capture_output=True, text=True) asn = asn_result.stdout oid, oid_parts = parse_oid(asn) rows.append({ 'tag' : tag, 'release' : int(release), 'ver_maj' : int(ver_maj), 'ver_min' : int(ver_min), 'oid_num' : oid_as_numeric(oid_parts), 'oid_str' : oid }) sorted_rows = sorted(rows, key = lambda x: (x['release'], x['ver_maj'], x['ver_min'])) with open("oids.csv", "w", newline='') as csvfile: cw = csv.DictWriter(csvfile, fieldnames=['tag', 'release', 'ver_maj', 'ver_min', 'oid_num', 'oid_str']) cw.writerows(sorted_rows) No newline at end of file Loading
testing/oids.py 0 → 100644 +51 −0 Original line number Diff line number Diff line from subprocess import run from regex import compile import csv oid_reg = compile(r"{(.*)}") part_reg = compile(r"\((\d*)\)") def parse_oid(txt): oid_match = oid_reg.findall(txt)[0] oid_parts = str(oid_match).replace("\n","").strip().split(" ") ret = [] for part in oid_parts: arc_name = part.split("(")[0] arc_num = int(part_reg.findall(part)[0]) ret.append((arc_name, arc_num)) return oid_match, ret def oid_as_numeric(oid_parts): return ".".join(str(x[1]) for x in oid_parts) tag_result = run(["git", "tag"], capture_output=True, text = True) tags = [t for t in tag_result.stdout.splitlines() if t.startswith('spec/33128')] rows = [] for tag in tags: print(tag) version = tag.split("/")[-1] version_parts = version.split(".") release = version_parts[0] ver_maj = version_parts[1] ver_min = version_parts[2] asn_result = run(["git", "show", f"{tag}:33128/r{release}/TS33128Payloads.asn"], capture_output=True, text=True) asn = asn_result.stdout oid, oid_parts = parse_oid(asn) rows.append({ 'tag' : tag, 'release' : int(release), 'ver_maj' : int(ver_maj), 'ver_min' : int(ver_min), 'oid_num' : oid_as_numeric(oid_parts), 'oid_str' : oid }) sorted_rows = sorted(rows, key = lambda x: (x['release'], x['ver_maj'], x['ver_min'])) with open("oids.csv", "w", newline='') as csvfile: cw = csv.DictWriter(csvfile, fieldnames=['tag', 'release', 'ver_maj', 'ver_min', 'oid_num', 'oid_str']) cw.writerows(sorted_rows) No newline at end of file