36 lines
No EOL
1.2 KiB
Text
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() |