class_docstr: `SequentialEncoderTransformer` applies transformation to the non-transformed encoded covariates output of
  `SequentialEncoder.encode_train()` and `SequentialEncoder.encode_inference()`. The transformer is fitted
  when `transform()` is called for the first time. This ensures proper transformation of train, validation and
  inference dataset covariates. User-supplied covariates are not transformed.
class_docstr_tok: ["`","SequentialEncoderTransformer","`","applies","transformation","to","the","non-transformed","encoded","covariates","output","of","`","SequentialEncoder.encode_train","(",")","`","and","`","SequentialEncoder.encode_inference","(",")","`",".","The","transformer","is","fitted","when","`","transform","(",")","`","is","called","for","the","first","time",".","This","ensures","proper","transformation","of","train",",","validation","and","inference","dataset","covariates",".","User-supplied","covariates","are","not","transformed","."]
docstr: if user supplied additional covariates to model.fit() or model.predict(), `self.transform_mask` has to be
  updated as user-defined covariates should not be transformed. These covariates are always located in the
  first `n_diff = covariates[0].width - len(self.transform_mask)` components of each TimeSeries in in
  `covariates`.
docstr_tok: ["if","user","supplied","additional","covariates","to","model.fit","(",")","or","model.predict","(",")",",","`","self.transform_mask","`","has","to","be","updated","as","user-defined","covariates","should","not","be","transformed",".","These","covariates","are","always","located","in","the","first","`","n_diff","=","covariates","[","0","]",".width","-","len","(","self.transform_mask",")","`","components","of","each","TimeSeries","in","in","`","covariates","`","."]
code: def _update_mask(self, covariates: List[TimeSeries]) -> None:
      """if user supplied additional covariates to model.fit() or model.predict(), `self.transform_mask` has to be
      updated as user-defined covariates should not be transformed. These covariates are always located in the
      first `n_diff = covariates[0].width - len(self.transform_mask)` components of each TimeSeries in in
      `covariates`.
      """
  
      n_diff = covariates[0].width - len(self.transform_mask)
      if not n_diff:
          pass
      else:
          self.transform_mask = np.array(
              [False] * n_diff + list(self.transform_mask)
          )
  
imports: from abc import ABC, abstractmethod
  from typing import List, Optional, Sequence, Tuple, Union
  import numpy
  import pandas
  from darts import TimeSeries
  from darts.dataprocessing.transformers import FittableDataTransformer
  from darts.logging import get_logger, raise_if, raise_log
  from darts.utils.timeseries_generation import generate_index
label_desc: Use image node_id 3 for calling the SequentialEncoderTransformer obj's underlying member method code with example usage: obj._update_mask(covariates) without return types