def __init__(
        self,
        input_key: str,
        output_key: Optional[str] = None,
        dtype: Type = np.float32,
        default_value: float = None,
        one_hot_classes: int = None,
        smoothing: float = None,
    ):
        """
        Args:
            input_key: input key to use from annotation dict
            output_key: output key to use to store the result,
                default: ``input_key``
            dtype: datatype of scalar values to use
            default_value: default value to use if something goes wrong
            one_hot_classes: number of one-hot classes
            smoothing (float, optional): if specified applies label smoothing
                to one_hot classes
        """
        super().__init__(input_key, output_key or input_key)
        self.dtype = dtype
        self.default_value = default_value
        self.one_hot_classes = one_hot_classes
        self.smoothing = smoothing
        if self.one_hot_classes is not None and self.smoothing is not None:
            assert 0.0 < smoothing < 1.0, (
                "If smoothing is specified it must be in (0; 1), " + f"got {smoothing}"
            )

        Args:
            input_key: input key to use from annotation dict
            output_key: output key to use to store the result,
                default: ``input_key``
            dtype: datatype of scalar values to use
            default_value: default value to use if something goes wrong
            one_hot_classes: number of one-hot classes
            smoothing (float, optional): if specified applies label smoothing
                to one_hot classes
        
catalyst/contrib/data/reader.py