Source code for pasteur.kedro.utils
from typing import Callable
[docs]
def get_pasteur_modules() -> Callable | list[type] | None:
"""Grabs pasteur modules from kedro settings.
If they're not defined, returns None.
If they're None, returns recommended modules.
Otherwise, returns the value. """
from kedro.framework.project import settings
from ..extras import get_recommended_modules
from dynaconf import Validator
PASTEUR_MODULES = "PASTEUR_MODULES"
sentinel = "_pasteur_disabled_xyz"
for v in settings.validators:
if PASTEUR_MODULES in v.names:
break
else:
# Add validator for modules only if it doesn't exist
settings.validators.register(
Validator(PASTEUR_MODULES, default=sentinel),
)
settings.validators.validate()
if settings.PASTEUR_MODULES == sentinel:
return None
if settings.PASTEUR_MODULES is None or settings.PASTEUR_MODULES == ...:
return get_recommended_modules
return settings.PASTEUR_MODULES