def METHOD_NAME(self, vstate: VariationalState, step: Optional[Scalar] = None):
    """
    This method does things
    """
    diag_shift = self.diag_shift
    if callable(self.diag_shift):
        if step is None:
            raise TypeError(
                "If you use a scheduled `diag_shift`, you must call "
                "the precoditioner with an extra argument `step`."
            )
        diag_shift = diag_shift(step)
    diag_scale = self.diag_scale
    if callable(self.diag_scale):
        if step is None:
            raise TypeError(
                "If you use a scheduled `diag_scale`, you must call "
                "the precoditioner with an extra argument `step`."
            )
        diag_scale = diag_scale(step)
    return self.qgt_constructor(
        vstate,
        diag_shift=diag_shift,
        diag_scale=diag_scale,
        **self.qgt_kwargs,
    )