From a530ff33d6804c3872b95586784060794b3f53b7 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Wed, 5 Feb 2025 11:57:06 +0100 Subject: [PATCH] feat: user_data can be loaded after other plugins --- src/rougail/cli/__main__.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/rougail/cli/__main__.py b/src/rougail/cli/__main__.py index bb81c1c..005b058 100644 --- a/src/rougail/cli/__main__.py +++ b/src/rougail/cli/__main__.py @@ -62,7 +62,7 @@ def _main(): output_name = rougailconfig["step.output"] # structural rougail = Rougail(rougailconfig) - config = rougail.get_config() + config = rougail.run() # data user if not user_data_names: user_datas = None @@ -80,6 +80,8 @@ def _main(): _('cannot find "user_data" module "{0}"').format(user_data_name) ) module = load_modules("rougail.user_data_" + user_data_name, str(path)) + if hasattr(module.RougailUserData, 'force_apply_user_data') and module.RougailUserData.force_apply_user_data is True: + continue user_datas.extend( module.RougailUserData( config, @@ -90,6 +92,23 @@ def _main(): err_warn = rougail.user_datas(user_datas) else: err_warn = {"errors": [], "warnings": []} + if user_data_names: + config.property.read_write() + user_datas = [] + for user_data_name in user_data_names: + path = ( + Path(__file__).parent.parent + / ("user_data_" + user_data_name) + / "__init__.py" + ) + module = load_modules("rougail.user_data_" + user_data_name, str(path)) + if hasattr(module.RougailUserData, 'force_apply_user_data') and module.RougailUserData.force_apply_user_data is True: + ret = module.RougailUserData( + config, + rougailconfig=rougailconfig, + ).run() + err_warn["errors"].extend(ret["errors"]) + err_warn["warnings"].extend(ret["warnings"]) # output config.property.read_only() path = Path(__file__).parent.parent / ("output_" + output_name) / "__init__.py"