From 8311611acbfd4f97cdc65f8502fd3d50c3619df5 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 11 May 2024 00:31:34 +0500 Subject: [PATCH] Preserve yaml structure when updating hashes --- catalog_reader/scripts/apps_hashes.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/catalog_reader/scripts/apps_hashes.py b/catalog_reader/scripts/apps_hashes.py index b4d894d..e6f6b87 100644 --- a/catalog_reader/scripts/apps_hashes.py +++ b/catalog_reader/scripts/apps_hashes.py @@ -2,6 +2,7 @@ import argparse import os import pathlib +import ruamel.yaml import shutil import yaml @@ -11,6 +12,10 @@ from catalog_reader.names import get_library_path, get_library_hashes_path, get_base_library_dir_name_from_version +YAML = ruamel.yaml.YAML() +YAML.indent(mapping=2, sequence=4, offset=2) + + def update_catalog_hashes(catalog_path: str) -> None: if not os.path.exists(catalog_path): raise CatalogDoesNotExist(catalog_path) @@ -49,7 +54,7 @@ def update_catalog_hashes(catalog_path: str) -> None: continue with open(str(app_metadata_file), 'r') as f: - app_config = yaml.safe_load(f.read()) + app_config = YAML.load(f) if (lib_version := app_config.get('lib_version')) and lib_version not in hashes: print( @@ -69,7 +74,7 @@ def update_catalog_hashes(catalog_path: str) -> None: app_config['lib_version_hash'] = hashes[lib_version] with open(str(app_metadata_file), 'w') as f: - yaml.safe_dump(app_config, f) + YAML.dump(app_config, f) print(f'[\033[92mOK\x1B[0m]\tUpdated library hash for {app_dir.name!r} in {train_dir.name}')