mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-25 14:55:00 +00:00
refactor: Extract field copying logic into reusable _copy_fields
method
This commit is contained in:
parent
88c2f95ea5
commit
c51a013109
1 changed files with 11 additions and 11 deletions
|
@ -836,21 +836,24 @@ class Model(ModelSettings):
|
||||||
def get_model_info(self, model):
|
def get_model_info(self, model):
|
||||||
return model_info_manager.get_model_info(model)
|
return model_info_manager.get_model_info(model)
|
||||||
|
|
||||||
|
def _copy_fields(self, source, skip_name=True):
|
||||||
|
"""Helper to copy fields from a ModelSettings instance to self"""
|
||||||
|
for field in fields(ModelSettings):
|
||||||
|
if skip_name and field.name == "name":
|
||||||
|
continue
|
||||||
|
val = getattr(source, field.name)
|
||||||
|
setattr(self, field.name, val)
|
||||||
|
|
||||||
def configure_model_settings(self, model):
|
def configure_model_settings(self, model):
|
||||||
# Apply default settings first if they exist
|
# Apply default settings first if they exist
|
||||||
if self.default_model_settings:
|
if self.default_model_settings:
|
||||||
for field in fields(ModelSettings):
|
self._copy_fields(self.default_model_settings)
|
||||||
if field.name != "name": # Don't copy the name field
|
|
||||||
val = getattr(self.default_model_settings, field.name)
|
|
||||||
setattr(self, field.name, val)
|
|
||||||
|
|
||||||
# Look for exact model match
|
# Look for exact model match
|
||||||
for ms in MODEL_SETTINGS:
|
for ms in MODEL_SETTINGS:
|
||||||
# direct match, or match "provider/<model>"
|
# direct match, or match "provider/<model>"
|
||||||
if model == ms.name:
|
if model == ms.name:
|
||||||
for field in fields(ModelSettings):
|
self._copy_fields(ms, skip_name=False)
|
||||||
val = getattr(ms, field.name)
|
|
||||||
setattr(self, field.name, val)
|
|
||||||
break # Continue to apply overrides
|
break # Continue to apply overrides
|
||||||
|
|
||||||
model = model.lower()
|
model = model.lower()
|
||||||
|
@ -864,10 +867,7 @@ class Model(ModelSettings):
|
||||||
|
|
||||||
# Apply override settings last if they exist
|
# Apply override settings last if they exist
|
||||||
if self.override_model_settings:
|
if self.override_model_settings:
|
||||||
for field in fields(ModelSettings):
|
self._copy_fields(self.override_model_settings)
|
||||||
if field.name != "name": # Don't copy the name field
|
|
||||||
val = getattr(self.override_model_settings, field.name)
|
|
||||||
setattr(self, field.name, val)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if "gpt-4-turbo" in model or ("gpt-4-" in model and "-preview" in model):
|
if "gpt-4-turbo" in model or ("gpt-4-" in model and "-preview" in model):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue