content: from nnunetv2.training.data_augmentation.compute_initial_patch_size import get_patch_size
  from nnunetv2.training.nnUNetTrainer.nnUNetTrainer import nnUNetTrainer
  import numpy as np
  
  
  class nnUNetTrainer_noDummy2DDA(nnUNetTrainer):
      def configure_rotation_dummyDA_mirroring_and_inital_patch_size(self):
          do_dummy_2d_data_aug = False
  
          patch_size = self.configuration_manager.patch_size
          dim = len(patch_size)
          if dim == 2:
              if max(patch_size) / min(patch_size) > 1.5:
                  rotation_for_DA = (-15. / 360 * 2. * np.pi, 15. / 360 * 2. * np.pi)
              else:
                  rotation_for_DA = (-180. / 360 * 2. * np.pi, 180. / 360 * 2. * np.pi)
              mirror_axes = (0, 1)
          elif dim == 3:
              rotation_for_DA = (-30. / 360 * 2. * np.pi, 30. / 360 * 2. * np.pi)
              mirror_axes = (0, 1, 2)
          else:
              raise RuntimeError()
  
          # todo this function is stupid. It doesn't even use the correct scale range (we keep things as they were in the
          #  old nnunet for now)
          initial_patch_size = get_patch_size(patch_size[-dim:],
                                              rotation_for_DA,
                                              rotation_for_DA,
                                              rotation_for_DA,
                                              (0.85, 1.25))
  
          self.print_to_log_file(f'do_dummy_2d_data_aug: {do_dummy_2d_data_aug}')
          self.inference_allowed_mirroring_axes = mirror_axes
  
          return rotation_for_DA, do_dummy_2d_data_aug, initial_patch_size, mirror_axes