mirror of
https://github.com/Aider-AI/aider.git
synced 2025-06-01 10:14:59 +00:00
feat: Add track_init_fields decorator to track explicitly set fields in ModelSettings
This commit is contained in:
parent
847454a4f7
commit
ea4ad2ea4d
1 changed files with 13 additions and 7 deletions
|
@ -6,6 +6,7 @@ import platform
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
from dataclasses import dataclass, fields
|
from dataclasses import dataclass, fields
|
||||||
|
from functools import wraps
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
@ -62,6 +63,18 @@ claude-3-5-sonnet-20241022
|
||||||
ANTHROPIC_MODELS = [ln.strip() for ln in ANTHROPIC_MODELS.splitlines() if ln.strip()]
|
ANTHROPIC_MODELS = [ln.strip() for ln in ANTHROPIC_MODELS.splitlines() if ln.strip()]
|
||||||
|
|
||||||
|
|
||||||
|
def track_init_fields(cls):
|
||||||
|
original_init = cls.__init__
|
||||||
|
|
||||||
|
@wraps(original_init)
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
self._set_fields = set(kwargs.keys())
|
||||||
|
original_init(self, **kwargs)
|
||||||
|
|
||||||
|
cls.__init__ = __init__
|
||||||
|
return cls
|
||||||
|
|
||||||
|
@track_init_fields
|
||||||
@dataclass
|
@dataclass
|
||||||
class ModelSettings:
|
class ModelSettings:
|
||||||
# Model class needs to have each of these as well
|
# Model class needs to have each of these as well
|
||||||
|
@ -82,13 +95,6 @@ class ModelSettings:
|
||||||
editor_model_name: Optional[str] = None
|
editor_model_name: Optional[str] = None
|
||||||
editor_edit_format: Optional[str] = None
|
editor_edit_format: Optional[str] = None
|
||||||
|
|
||||||
def __post_init__(self):
|
|
||||||
# Track which fields were explicitly set during initialization
|
|
||||||
dump(self.__dict__)
|
|
||||||
self._set_fields = set()
|
|
||||||
for field in fields(self.__class__):
|
|
||||||
if field.name in self.__dict__:
|
|
||||||
self._set_fields.add(field.name)
|
|
||||||
|
|
||||||
|
|
||||||
# https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo
|
# https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue