docs: def psf_iteration(self, num_iter=10, no_break=True, stacking_method='median', block_center_neighbour=0, keep_psf_error_map=True,
                   psf_symmetry=1, psf_iter_factor=1, verbose=True, compute_bands=None):
          """
          iterative PSF reconstruction
  
          :param num_iter: number of iterations in the process
          :param no_break: bool, if False will break the process as soon as one step lead to a wors reconstruction then the previous step
          :param stacking_method: string, 'median' and 'mean' supported
          :param block_center_neighbour: radius of neighbouring point source to be blocked in the reconstruction
          :param keep_psf_error_map: bool, whether or not to keep the previous psf_error_map
          :param psf_symmetry: int, number of invariant rotations in the reconstructed PSF
          :param psf_iter_factor: factor of new estimated PSF relative to the old one PSF_updated = (1-psf_iter_factor) * PSF_old + psf_iter_factor*PSF_new
          :param verbose: bool, print statements
          :param compute_bands: bool list, if multiple bands, this process can be limited to a subset of bands
          :return: 0, updated PSF is stored in self.mult_iband_list
          """
          #lens_temp = copy.deepcopy(lens_input)
          kwargs_model = self._updateManager.kwargs_model
          param_class = self._param_class
          lens_updated = param_class.update_lens_scaling(self._cosmo_temp, self._lens_temp)
          source_updated = param_class.image2source_plane(self._source_temp, lens_updated)
          if compute_bands is None:
              compute_bands = [True] * len(self.multi_band_list)
  
          for i in range(len(self.multi_band_list)):
              if compute_bands[i] is True:
                  kwargs_data = self.multi_band_list[i][0]
                  kwargs_psf = self.multi_band_list[i][1]
                  kwargs_numerics = self.multi_band_list[i][2]
                  image_model = class_creator.create_image_model(kwargs_data=kwargs_data,
                                                                 kwargs_psf=kwargs_psf,
                                                                 kwargs_numerics=kwargs_numerics,
                                                                 kwargs_model=kwargs_model)
                  psf_iter = PsfFitting(image_model_class=image_model)
                  kwargs_psf = psf_iter.update_iterative(kwargs_psf, lens_updated, source_updated,
                                                         self._lens_light_temp, self._ps_temp, num_iter=num_iter,
                                                         no_break=no_break, stacking_method=stacking_method,
                                                         block_center_neighbour=block_center_neighbour,
                                                         keep_psf_error_map=keep_psf_error_map,
                   psf_symmetry=psf_symmetry, psf_iter_factor=psf_iter_factor, verbose=verbose)
                  self.multi_band_list[i][1] = kwargs_psf
          return 0