feat: add function to print model settings as YAML

This commit is contained in:
Paul Gauthier (aider) 2024-09-22 16:54:51 -07:00
parent 129afd0396
commit ea72ad61fe

View file

@ -932,10 +932,13 @@ def print_matching_models(io, search):
def main():
if len(sys.argv) != 2:
print("Usage: python models.py <model_name>")
if len(sys.argv) < 2:
print("Usage: python models.py <model_name> or python models.py --yaml")
sys.exit(1)
if sys.argv[1] == "--yaml":
print_model_settings_as_yaml()
else:
model_name = sys.argv[1]
matching_models = fuzzy_match_models(model_name)
@ -947,5 +950,14 @@ def main():
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()