docs: def dimensions_wizard():
      """A wizard which attempts to determine the dimensions of a SpiNNaker
      system.
  
      .. warning::
  
          Since SC&MP v2.0.0 it is not necessary to know the dimensions of a
          SpiNNaker machine in order to boot it. As a result, most applications
          will no longer require this wizard step.
  
      Returns ``{"dimensions": (x, y)}`` via the :py:exc:`~rig.wizard.Success`
      exception.
      """
      option = yield MultipleChoice(
          "What type of SpiNNaker system to you have?",
          ["A single four-chip 'SpiNN-3' board",
           "A single forty-eight-chip 'SpiNN-5' board",
           "Multiple forty-eight-chip 'SpiNN-5' boards",
           "Other"],
          None)
      assert 0 <= option < 4
  
      if option == 0:
          raise Success({"dimensions": (2, 2)})
      elif option == 1:
          raise Success({"dimensions": (8, 8)})
      elif option == 2:
          # Infer the system's dimensions from the number of boards supplied
          num_boards = yield Text("How many 'SpiNN-5' boards are in the system?")
          try:
              w, h = standard_system_dimensions(int(num_boards))
          except ValueError:
              # May fail due to integer conversion or the function rejecting the
              # number of boards.
              raise Failure(
                  "'{}' is not a valid number of boards.".format(num_boards))
          raise Success({"dimensions": (w, h)})
      else:
          dimensions = yield Text(
              "What are the dimensions of the network in chips (e.g. 24x12)?")
          match = re.match(r"\s*(\d+)\s*[xX]\s*(\d+)\s*", dimensions)
          if not match:
              raise Failure("'{}' is not a valid system size.".format(
                  dimensions))
          else:
              w = int(match.group(1))
              h = int(match.group(2))
              raise Success({"dimensions": (w, h)})