From Fedora Project Wiki

AnacondaDispatcher

When running anaconda various steps take place, some that you interact with some that you don't. The dispatcher takes care of moving through the steps.

The dispatcher defines a list of steps in the form:

( name, tuple)
( name, Function, tuple)

The two element tuple is a UI step, the three elements is called directly from dispatcher.

Non-ui steps

  • Dispatcher directly calls the function in question with the args in the list

UI based steps

There is additional complexity here as the different interfaces to anaconda (text, cli, gui) call through in different ways the basic logic is:

  • Mapping of step name to file/class/function
  • On moving through the ui, go to next step
  • If the step is a UI step look up in map and call out to ( eg __call__ or apply(obj, args))