| # ex: python3 sort_yaml_functions.py |
| # ex: must be within yaml directory |
| import yaml |
| import os |
| |
| |
| def sort_yaml_functions(yaml_file): |
| with open(yaml_file, "r") as f: |
| yaml_data = yaml.safe_load(f) |
| |
| if "functions" in yaml_data: |
| yaml_data["functions"].sort(key=lambda x: x["name"]) |
| |
| class IndentYamlListDumper(yaml.Dumper): |
| def increase_indent(self, flow=False, indentless=False): |
| return super(IndentYamlListDumper, self).increase_indent(flow, False) |
| |
| with open(yaml_file, "w") as f: |
| yaml.dump( |
| yaml_data, |
| f, |
| Dumper=IndentYamlListDumper, |
| default_flow_style=False, |
| sort_keys=False, |
| ) |
| |
| |
| def main(): |
| current_directory = os.getcwd() |
| yaml_files = [ |
| file for file in os.listdir(current_directory) if file.endswith(".yaml") |
| ] |
| |
| for yaml_file in yaml_files: |
| sort_yaml_functions(yaml_file) |
| |
| |
| if __name__ == "__main__": |
| main() |