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

This commit is contained in:
Patrick Robertson
2025-01-27 11:00:52 +01:00
parent 3fc6ddfe85
commit 0b03f54f4e
2 changed files with 10 additions and 1 deletions

View File

@@ -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):

View File

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