          edge_anchors = np.broadcast_to(edge_anchors, (self._batchsize, 8, 2))
          grids = np.mgrid[0: p_mx: complex(self._processing_size),  # type: ignore
                           0: p_mx: complex(self._processing_size)]  # type: ignore
          retval = AugConstants(clahe_base_contrast=max(2, self._processing_size // 128),
                                clahe_chance=int(self._config.get("color_clahe_chance", 50)) / 100,
                                clahe_max_size=int(self._config.get("color_clahe_max_size", 4)),
                                lab_adjust=lab_adjust,
                                transform_rotation=int(self._config.get("rotation_range", 10)),
                                transform_zoom=int(self._config.get("zoom_amount", 5)) / 100,
                                transform_shift=tform_shift,
                                warp_maps=np.stack((warp_mapx, warp_mapy), axis=1),
 
</s> remove                               transform_rotation=int(self._config.get("rotation_range", 10)),
                              transform_zoom=int(self._config.get("zoom_amount", 5)) / 100,
 </s> add                               transform_rotation=rotation_range,
                              transform_zoom=zoom_amount / 100, </s> remove         indices = np.where(randoms > int(self._config.get("random_flip", 50)) / 100)[0]
 </s> add         flip_chance = self._config.get("random_flip", 50)
        assert isinstance(flip_chance, int)
        indices = np.where(randoms > flip_chance / 100)[0] </s> remove         amount_l = int(self._config.get("color_lightness", 30)) / 100
        amount_ab = int(self._config.get("color_ab", 8)) / 100
 </s> add         amount_l = int(color_lightness) / 100
        amount_ab = int(color_ab) / 100 </s> remove         tform_shift = (int(self._config.get("shift_range", 5)) / 100) * self._processing_size
 </s> add         tform_shift = (shift_range / 100) * self._processing_size </s> remove             print_fn = lambda x: logger.verbose("%s", x)  # type: ignore # noqa
 </s> add             print_fn = lambda x: logger.verbose("%s", x)  #type:ignore[attr-defined]  # noqa[E731]  # pylint:disable=C3001
                              clahe_chance=color_clahe_chance / 100,
                              clahe_max_size=color_clahe_max_size,
          edge_anchors = np.broadcast_to(edge_anchors, (self._batchsize, 8, 2))
          grids = np.mgrid[0: p_mx: complex(self._processing_size),  # type: ignore
                           0: p_mx: complex(self._processing_size)]  # type: ignore
          retval = AugConstants(clahe_base_contrast=max(2, self._processing_size // 128),
                              clahe_chance=color_clahe_chance / 100,
                              clahe_max_size=color_clahe_max_size,
                              clahe_chance=color_clahe_chance / 100,
                              clahe_max_size=color_clahe_max_size,
                                lab_adjust=lab_adjust,
                                transform_rotation=int(self._config.get("rotation_range", 10)),
                                transform_zoom=int(self._config.get("zoom_amount", 5)) / 100,
                                transform_shift=tform_shift,
                                warp_maps=np.stack((warp_mapx, warp_mapy), axis=1),
keep keep keep keep replace replace keep keep keep keep keep
 Preview - Allow mask color/opacity configuration
  - typing: lib.config
  - docs: lib.config
  - bugfix: popup_configure - keep assets on top 
lib/training/augmentation.py