From 7d31bb8e2b209a77ecddbf966c7f3a7bdf1dfeb6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Aug 2023 12:06:47 +0200 Subject: [PATCH 1/2] clean up passing of data produced by prepare_main into main --- easybuild/main.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/easybuild/main.py b/easybuild/main.py index 8b4929d035..f20f5b4152 100644 --- a/easybuild/main.py +++ b/easybuild/main.py @@ -580,22 +580,22 @@ def process_eb_args(eb_args, eb_go, cfg_settings, modtool, testing, init_session return overall_success -def main(args=None, logfile=None, do_build=None, testing=False, modtool=None, eb_go=None, cfg_settings=None, - init_session_state=None, hooks=None): +def main(args=None, logfile=None, do_build=None, testing=False, modtool=None, prepared_cfg_data=None): """ Main function: parse command line options, and act accordingly. :param args: command line arguments to use :param logfile: log file to use :param do_build: whether or not to actually perform the build :param testing: enable testing mode + :param prepared_cfg_data: prepared configuration data for main function, as returned by prepare_main (or None) :param eb_go: easybuild general options object :param cfg_settings: configuration settings of easybuild :param init_session_state: session state - :param hooks: available hooks """ - - if any(i is None for i in [eb_go, cfg_settings, init_session_state, hooks]) or any([args, logfile, testing]): - eb_go, cfg_settings, init_session_state, hooks = prepare_main(args=args, logfile=logfile, testing=testing) + if prepared_cfg_data is None or any([args, logfile, testing]): + init_session_state, eb_go, cfg_settings = prepare_main(args=args, logfile=logfile, testing=testing) + else: + init_session_state, eb_go, cfg_settings = prepared_cfg_data options, orig_paths = eb_go.options, eb_go.args @@ -731,7 +731,7 @@ def prepare_main(args=None, logfile=None, testing=None): :param args: command line arguments to take into account when parsing the EasyBuild configuration settings :param logfile: log file to use :param testing: enable testing mode - :return: easybuild options, configuration settings, session state and hooks + :return: 3-tuple with initial session state data, EasyBuildOptions instance, and tuple with configuration settings """ register_lock_cleanup_signal_handlers() @@ -748,14 +748,15 @@ def prepare_main(args=None, logfile=None, testing=None): # purposely session state very early, to avoid modules loaded by EasyBuild meddling in init_session_state = session_state() eb_go, cfg_settings = set_up_configuration(args=args, logfile=logfile, testing=testing) - hooks = load_hooks(eb_go.options.hooks) - return eb_go, cfg_settings, init_session_state, hooks + + return init_session_state, eb_go, cfg_settings if __name__ == "__main__": - eb_go, cfg_settings, init_session_state, hooks = prepare_main() + init_session_state, eb_go, cfg_settings = prepare_main() + hooks = load_hooks(eb_go.options.hooks) try: - main(eb_go=eb_go, cfg_settings=cfg_settings, init_session_state=init_session_state, hooks=hooks) + main(prepared_cfg_data=(init_session_state, eb_go, cfg_settings)) except EasyBuildError as err: run_hook(FAIL, hooks, args=[err]) print_error(err.msg) From 20c99cdaf00878bb4583396c930a049bd6ee8a20 Mon Sep 17 00:00:00 2001 From: XavierCS-dev <64903011+XavierCS-dev@users.noreply.github.com> Date: Fri, 11 Aug 2023 11:15:21 +0100 Subject: [PATCH 2/2] Remove unnecessary parameter descriptions Co-authored-by: Simon Branford <4967+branfosj@users.noreply.github.com> --- easybuild/main.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/easybuild/main.py b/easybuild/main.py index f20f5b4152..24f994da14 100644 --- a/easybuild/main.py +++ b/easybuild/main.py @@ -588,9 +588,6 @@ def main(args=None, logfile=None, do_build=None, testing=False, modtool=None, pr :param do_build: whether or not to actually perform the build :param testing: enable testing mode :param prepared_cfg_data: prepared configuration data for main function, as returned by prepare_main (or None) - :param eb_go: easybuild general options object - :param cfg_settings: configuration settings of easybuild - :param init_session_state: session state """ if prepared_cfg_data is None or any([args, logfile, testing]): init_session_state, eb_go, cfg_settings = prepare_main(args=args, logfile=logfile, testing=testing)