<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_dtreat_order(self, order=None):
 """ Set the order in which the data treatment should be performed Provide an ordered list of keywords indicating the order in which you wish the data treatment steps to be performed. Each keyword corresponds to a step. Available steps are (in default order):
 - 'mask' : - 'interp_indt' : - 'interp_indch' : - 'data0' : - 'dfit' : - 'indt' : - 'indch' : - 'interp_t': All steps are performed on the stored reference self.dataRef['data'] Thus, the time and channels restriction must be the last 2 steps before interpolating on an external time vector """

        if order is None:
            order = list(self._ddef['dtreat']['order'])
        assert type(order) is list and all([type(ss) is str for ss in order])
        if not all([ss in ['indt','indch','indlamb'] for ss in order][-4:-1]):
            msg = "indt and indch must be the treatment steps -2 and -3 !"
            raise Exception(msg)
        if not order[-1]=='interp-t':
            msg = "interp-t must be the last treatment step !"
            raise Exception(msg)
        self._dtreat['order'] = order
        self._ddata['uptodate'] = False