Skip to content

Commit 9656dcc

Browse files
committed
Added a custom Dumper class that indents items in accordance with Prettier's standards
1 parent de5c74d commit 9656dcc

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/murfey/cli/generate_route_manifest.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,17 @@
1717
import murfey
1818

1919

20+
class PrettierDumper(yaml.Dumper):
21+
"""
22+
Custom YAML Dumper class that sets `indentless` to False. This generates a YAML
23+
file that is then compliant with Prettier's formatting style
24+
"""
25+
26+
def increase_indent(self, flow=False, indentless=False):
27+
# Force 'indentless=False' so list items align with Prettier
28+
return super(PrettierDumper, self).increase_indent(flow, indentless=False)
29+
30+
2031
def find_routers(name: str) -> dict[str, APIRouter]:
2132

2233
def _extract_routers_from_module(module: ModuleType):
@@ -138,7 +149,14 @@ def run():
138149
murfey_dir = Path(murfey.__path__[0])
139150
manifest_file = murfey_dir / "util" / "route_manifest.yaml"
140151
with open(manifest_file, "w") as file:
141-
yaml.dump(manifest, file, default_flow_style=False, sort_keys=False)
152+
yaml.dump(
153+
manifest,
154+
file,
155+
Dumper=PrettierDumper,
156+
default_flow_style=False,
157+
sort_keys=False,
158+
indent=2,
159+
)
142160
print(
143161
"Route manifest for instrument and backend servers saved to "
144162
f"{str(manifest_file)!r}"

0 commit comments

Comments
 (0)