rebf-gaiden/formatyaml

36 lines
No EOL
1.2 KiB
Text

import os
from ruamel.yaml import YAML
from pathlib import Path
def format_yaml_file(input_file, output_dir):
# Create output directory if it doesn't exist
Path(output_dir).mkdir(parents=True, exist_ok=True)
# Read input YAML
yaml_in = YAML(pure=True)
with open(input_file, 'r', encoding='utf-8') as infile:
data = yaml_in.load(infile)
# Write formatted YAML
yaml_out = YAML(pure=True)
yaml_out.width = 4096 # Prevent line wrapping
yaml_out.default_style = "'" # Quote all scalars
output_file = os.path.join(output_dir, os.path.basename(input_file))
with open(output_file, 'w', encoding='utf-8', newline='\n') as outfile:
yaml_out.dump(data, outfile)
def main():
# Directory containing YAML files
input_dir = 'YAML'
output_dir = 'formatted'
# Process all YAML files
for filename in os.listdir(input_dir):
if filename.endswith(('.yaml', '.yml')):
input_path = os.path.join(input_dir, filename)
print(f"Formatting: {filename}")
format_yaml_file(input_path, output_dir)
if __name__ == '__main__':
main()