| 68 | |
| 69 | |
| 70 | def create_wizard_app(definition, session, output=None, app_input=None): |
| 71 | api_invoker = core.APIInvoker(session=session) |
| 72 | shared_config = core.SharedConfigAPI( |
| 73 | session=session, config_writer=ConfigFileWriter() |
| 74 | ) |
| 75 | layout = WizardLayoutFactory().create_wizard_layout(definition) |
| 76 | values = WizardValues( |
| 77 | definition, |
| 78 | value_retrieval_steps={ |
| 79 | core.APICallStep.NAME: core.APICallStep(api_invoker=api_invoker), |
| 80 | core.SharedConfigStep.NAME: core.SharedConfigStep( |
| 81 | config_api=shared_config |
| 82 | ), |
| 83 | core.TemplateStep.NAME: core.TemplateStep(), |
| 84 | core.LoadDataStep.NAME: core.LoadDataStep(), |
| 85 | core.DumpDataStep.NAME: core.DumpDataStep(), |
| 86 | }, |
| 87 | exception_handler=layout.error_bar.display_error, |
| 88 | ) |
| 89 | executor = create_default_executor(api_invoker, shared_config) |
| 90 | traverser = WizardTraverser(definition, values, executor) |
| 91 | return WizardApp( |
| 92 | layout=layout, |
| 93 | values=values, |
| 94 | traverser=traverser, |
| 95 | executor=executor, |
| 96 | output=output, |
| 97 | app_input=app_input, |
| 98 | ) |