|
24 | 24 |
|
25 | 25 | import yaml |
26 | 26 | from pydantic import ( |
| 27 | + AliasChoices, |
| 28 | + AliasGenerator, |
27 | 29 | ConfigDict, |
28 | 30 | Field, |
29 | 31 | ValidationError, |
@@ -1796,9 +1798,8 @@ def create( |
1796 | 1798 | scenario_data = scenario_data["args"] |
1797 | 1799 | constructor_kwargs.update(scenario_data) |
1798 | 1800 |
|
1799 | | - for key, value in kwargs.items(): |
1800 | | - if value != cls.get_default(key): |
1801 | | - constructor_kwargs[key] = value |
| 1801 | + # Apply overrides from kwargs |
| 1802 | + constructor_kwargs.update(kwargs) |
1802 | 1803 |
|
1803 | 1804 | return cls.model_validate(constructor_kwargs) |
1804 | 1805 |
|
@@ -1832,6 +1833,14 @@ def get_default(cls: type[BenchmarkGenerativeTextArgs], field: str) -> Any: |
1832 | 1833 | use_enum_values=True, |
1833 | 1834 | from_attributes=True, |
1834 | 1835 | arbitrary_types_allowed=True, |
| 1836 | + validate_by_alias=True, |
| 1837 | + validate_by_name=True, |
| 1838 | + alias_generator=AliasGenerator( |
| 1839 | + # Support field names with hyphens |
| 1840 | + validation_alias=lambda field_name: AliasChoices( |
| 1841 | + field_name, field_name.replace("_", "-") |
| 1842 | + ), |
| 1843 | + ), |
1835 | 1844 | ) |
1836 | 1845 |
|
1837 | 1846 | # Required |
@@ -1878,6 +1887,12 @@ def get_default(cls: type[BenchmarkGenerativeTextArgs], field: str) -> Any: |
1878 | 1887 | data_request_formatter: DatasetPreprocessor | dict[str, str] | str = Field( |
1879 | 1888 | default="chat_completions", |
1880 | 1889 | description="Request formatting preprocessor or template name", |
| 1890 | + validation_alias=AliasChoices( |
| 1891 | + "data_request_formatter", |
| 1892 | + "data-request-formatter", |
| 1893 | + "request_type", |
| 1894 | + "request-type", |
| 1895 | + ), |
1881 | 1896 | ) |
1882 | 1897 | data_collator: Callable | Literal["generative"] | None = Field( |
1883 | 1898 | default="generative", description="Data collator for batch processing" |
|
0 commit comments