From ea72ad61fe2e4e253137cd75fe7644c62e9e0c15 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sun, 22 Sep 2024 16:54:51 -0700 Subject: [PATCH] feat: add function to print model settings as YAML --- aider/models.py | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/aider/models.py b/aider/models.py index 2b35e6bc3..6e6b6b3ee 100644 --- a/aider/models.py +++ b/aider/models.py @@ -932,20 +932,32 @@ def print_matching_models(io, search): def main(): - if len(sys.argv) != 2: - print("Usage: python models.py ") + if len(sys.argv) < 2: + print("Usage: python models.py or python models.py --yaml") sys.exit(1) - model_name = sys.argv[1] - matching_models = fuzzy_match_models(model_name) - - if matching_models: - print(f"Matching models for '{model_name}':") - for model in matching_models: - print(model) + if sys.argv[1] == "--yaml": + print_model_settings_as_yaml() else: - print(f"No matching models found for '{model_name}'.") + model_name = sys.argv[1] + matching_models = fuzzy_match_models(model_name) + if matching_models: + print(f"Matching models for '{model_name}':") + for model in matching_models: + print(model) + else: + print(f"No matching models found for '{model_name}'.") + + +def print_model_settings_as_yaml(): + import yaml + model_settings_list = [] + for ms in MODEL_SETTINGS: + model_settings_dict = {field.name: getattr(ms, field.name) for field in fields(ModelSettings)} + model_settings_list.append(model_settings_dict) + + print(yaml.dump(model_settings_list, default_flow_style=False)) if __name__ == "__main__": main()