Fix up config validation, and allow for custom 'validators'

pull/224/head
Patrick Robertson 2025-01-27 11:00:52 +01:00
rodzic 3fc6ddfe85
commit 0b03f54f4e
2 zmienionych plików z 10 dodań i 1 usunięć

Wyświetl plik

@ -20,6 +20,7 @@ from .metadata import Metadata
from ..version import __version__
from .config import read_yaml, store_yaml, to_dot_notation, merge_dicts, EMPTY_CONFIG
from .loader import available_modules, Module, MODULE_TYPES, load_module
from . import validators
import tempfile, traceback
from loguru import logger
@ -163,7 +164,10 @@ class ArchivingOrchestrator:
# in most cases it'll mean replacing it with 'type': 'str' or 'type': 'int' or something
kwargs.pop('cli_set', None)
kwargs['dest'] = f"{module.name}.{kwargs.pop('dest', name)}"
kwargs['type'] = type(kwargs.get('type', 'str'))
try:
kwargs['type'] = getattr(__builtins__, kwargs.get('type', 'str'))
except AttributeError:
kwargs['type'] = getattr(validators, kwargs['type'])
group.add_argument(f"--{module.name}.{name}", **kwargs)
def show_help(self):

Wyświetl plik

@ -0,0 +1,5 @@
# used as validators for config values.
def example_validator(value):
return "example" in value