mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-04-05 07:17:52 +10:00
move final legacy config to plugins and fix archivebox config cmd and add search opt
This commit is contained in:
@@ -10,7 +10,7 @@ import toml
|
||||
from rich import print
|
||||
|
||||
from benedict import benedict
|
||||
from pydantic import model_validator, TypeAdapter
|
||||
from pydantic import model_validator, TypeAdapter, AliasChoices
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict, PydanticBaseSettingsSource
|
||||
from pydantic_settings.sources import TomlConfigSettingsSource
|
||||
|
||||
@@ -247,6 +247,26 @@ class BaseConfigSet(BaseSettings):
|
||||
|
||||
return self
|
||||
|
||||
@property
|
||||
def aliases(self) -> Dict[str, str]:
|
||||
alias_map = {}
|
||||
for key, field in self.model_fields.items():
|
||||
alias_map[key] = key
|
||||
|
||||
if field.validation_alias is None:
|
||||
continue
|
||||
|
||||
if isinstance(field.validation_alias, AliasChoices):
|
||||
for alias in field.validation_alias.choices:
|
||||
alias_map[alias] = key
|
||||
elif isinstance(field.alias, str):
|
||||
alias_map[field.alias] = key
|
||||
else:
|
||||
raise ValueError(f'Unknown alias type for field {key}: {field.alias}')
|
||||
|
||||
return benedict(alias_map)
|
||||
|
||||
|
||||
@property
|
||||
def toml_section_header(self):
|
||||
"""Convert the class name to a TOML section header e.g. ShellConfig -> SHELL_CONFIG"""
|
||||
|
||||
Reference in New Issue
Block a user