class_docstr: `SingleEncoder`: Abstract class for single index encoders.
  Single encoders can be used to implement new encoding techniques.
  Each single encoder must implement an `_encode()` method that carries the encoding logic.
  
  The `_encode()` method must take an `index` as input and generate a encoded single `TimeSeries` as output.
class_docstr_tok: ["`","SingleEncoder","`",":","Abstract","class","for","single","index","encoders",".","Single","encoders","can","be","used","to","implement","new","encoding","techniques",".","Each","single","encoder","must","implement","an","`","_encode","(",")","`","method","that","carries","the","encoding","logic",".","The","`","_encode","(",")","`","method","must","take","an","`","index","`","as","input","and","generate","a","encoded","single","`","TimeSeries","`","as","output","."]
docstr: Returns the base encoder base component name. The string follows the given format:
  `"darts_enc_{covariates_temp}_{encoder}_{attribute}"`, where the elements are:
  
  * covariates_temp: "pc" or "fc" for past, or future covariates respectively.
  * encoder: the SingleEncoder type used:
      * "cyc" (cyclic temporal encoder),
      * "dta" (datetime attribute encoder),
      * "pos" (positional integer index encoder),
      * "cus" (custom callable index encoder)
  * attribute: the attribute used for the underlying encoder. Some examples:
      * "month_sin", "month_cos" (for "cyc")
      * "month" (for "dta")
      * "relative" (for "pos")
      * "custom" (for "cus")
docstr_tok: ["Returns","the","base","encoder","base","component","name",".","The","string","follows","the","given","format",":","`","``","darts_enc_","{","covariates_temp","}","_","{","encoder","}","_","{","attribute","}","''","`",",","where","the","elements","are",":","*","covariates_temp",":","``","pc","''","or","``","fc","''","for","past",",","or","future","covariates","respectively",".","*","encoder",":","the","SingleEncoder","type","used",":","*","``","cyc","''","(","cyclic","temporal","encoder",")",",","*","``","dta","''","(","datetime","attribute","encoder",")",",","*","``","pos","''","(","positional","integer","index","encoder",")",",","*","``","cus","''","(","custom","callable","index","encoder",")","*","attribute",":","the","attribute","used","for","the","underlying","encoder",".","Some","examples",":","*","``","month_sin","''",",","``","month_cos","''","(","for","``","cyc","''",")","*","``","month","''","(","for","``","dta","''",")","*","``","relative","''","(","for","``","pos","''",")","*","``","custom","''","(","for","``","cus","''",")"]
code: def base_component_name(self) -> str:
      """Returns the base encoder base component name. The string follows the given format:
      `"darts_enc_{covariates_temp}_{encoder}_{attribute}"`, where the elements are:
  
      * covariates_temp: "pc" or "fc" for past, or future covariates respectively.
      * encoder: the SingleEncoder type used:
          * "cyc" (cyclic temporal encoder),
          * "dta" (datetime attribute encoder),
          * "pos" (positional integer index encoder),
          * "cus" (custom callable index encoder)
      * attribute: the attribute used for the underlying encoder. Some examples:
          * "month_sin", "month_cos" (for "cyc")
          * "month" (for "dta")
          * "relative" (for "pos")
          * "custom" (for "cus")
      """
      return f"darts_enc_{self.index_generator.base_component_name}"
  
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 9 for calling the SingleEncoder obj's underlying member method code with example usage: obj.base_component_name() and returns: str, self