code: def mask_blurring_from_mask_and_psf_shape(mask, psf_shape):
      
  
      blurring_mask = np.full(mask.shape, True)
  
      for y in range(mask.shape[0]):
          for x in range(mask.shape[1]):
              if not mask[y, x]:
                  for y1 in range((-psf_shape[0] + 1) // 2, (psf_shape[0] + 1) // 2):
                      for x1 in range((-psf_shape[1] + 1) // 2, (psf_shape[1] + 1) // 2):
                          if 0 <= x + x1 <= mask.shape[1] - 1 and 0 <= y + y1 <= mask.shape[0] - 1:
                              if mask[y + y1, x + x1]:
                                  blurring_mask[y + y1, x + x1] = False
                          else:
                              raise exc.MaskException(
                                  "setup_blurring_mask extends beyond the sub_grid_size of the masks - pad the "
                                  "datas array before masking")
  
      return blurring_mask
docs: Compute a blurring masks from an input masks and psf shape.
  
      The blurring masks corresponds to all pixels which are outside of the masks but will have a fraction of their \
      light blur into the masked region due to PSF convolution.