Skip to content

Commit 59605a4

Browse files
committed
Refactor doc_gen_cli for clarity.
1 parent 6985e63 commit 59605a4

File tree

1 file changed

+50
-35
lines changed

1 file changed

+50
-35
lines changed

aws_doc_sdk_examples_tools/doc_gen_cli.py

Lines changed: 50 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,55 @@
1111
logging.basicConfig(level=logging.INFO)
1212

1313

14+
def merge_roots(doc_gen: DocGen, roots: list[str]):
15+
for root in roots:
16+
unmerged_doc_gen = DocGen.from_root(Path(root))
17+
doc_gen.merge(unmerged_doc_gen)
18+
19+
20+
def write_doc_gen(doc_gen: DocGen, json_out: str):
21+
serialized = json.dumps(doc_gen, cls=DocGenEncoder)
22+
23+
with open(json_out, "w") as out:
24+
out.write(serialized)
25+
26+
27+
def write_snippets(doc_gen: DocGen, roots: list[str], snippets_out: str):
28+
for root in roots:
29+
doc_gen.collect_snippets(Path(root))
30+
31+
serialized_snippets = json.dumps(
32+
{
33+
"snippets": doc_gen.snippets,
34+
"snippet_files": doc_gen.snippet_files,
35+
},
36+
cls=DocGenEncoder,
37+
)
38+
with open(snippets_out, "w") as out:
39+
out.write(serialized_snippets)
40+
41+
42+
def build_doc_gen(args):
43+
doc_gen = DocGen.empty()
44+
merge_roots(doc_gen, args.from_root)
45+
doc_gen.validate()
46+
doc_gen.fill_missing_fields()
47+
48+
if not args.skip_entity_expansion:
49+
doc_gen.expand_entity_fields(doc_gen)
50+
51+
if args.strict and doc_gen.errors:
52+
logging.error("Errors found in metadata: %s", doc_gen.errors)
53+
exit(1)
54+
55+
if args.write_snippets:
56+
write_snippets(doc_gen, args.from_root, args.write_snippets)
57+
58+
write_doc_gen(doc_gen, args.write_json)
59+
60+
return doc_gen
61+
62+
1463
def main():
1564
parser = ArgumentParser(description="Parse examples from example metadata.")
1665
parser.add_argument(
@@ -47,41 +96,7 @@ def main():
4796
)
4897

4998
args = parser.parse_args()
50-
51-
merged_doc_gen = DocGen.empty()
52-
for root in args.from_root:
53-
unmerged_doc_gen = DocGen.from_root(Path(root))
54-
merged_doc_gen.merge(unmerged_doc_gen)
55-
56-
merged_doc_gen.validate()
57-
merged_doc_gen.fill_missing_fields()
58-
59-
if not args.skip_entity_expansion:
60-
# Replace entities
61-
merged_doc_gen.expand_entity_fields(merged_doc_gen)
62-
63-
if args.strict and merged_doc_gen.errors:
64-
logging.error("Errors found in metadata: %s", merged_doc_gen.errors)
65-
exit(1)
66-
67-
serialized = json.dumps(merged_doc_gen, cls=DocGenEncoder)
68-
69-
with open(args.write_json, "w") as out:
70-
out.write(serialized)
71-
72-
if args.write_snippets:
73-
for root in args.from_root:
74-
merged_doc_gen.collect_snippets(Path(root))
75-
76-
serialized_snippets = json.dumps(
77-
{
78-
"snippets": merged_doc_gen.snippets,
79-
"snippet_files": merged_doc_gen.snippet_files,
80-
},
81-
cls=DocGenEncoder,
82-
)
83-
with open(args.write_snippets, "w") as out:
84-
out.write(serialized_snippets)
99+
build_doc_gen(args)
85100

86101

87102
if __name__ == "__main__":

0 commit comments

Comments
 (0)