class_docstr: Base class for all encoders.
  
  An encoder should return encoded representations of any columnar data.
  The procedure for this is defined inside the `encode()` method.
  
  If this encoder is expected to handle an output column, then it also needs to implement the respective `decode()` method that handles the inverse transformation from encoded representations to the final prediction in the original column space.
  
  For encoders that learn representations (as opposed to rule-based), the `prepare()` method will handle all learning logic.
  
  The `to()` method is used to move PyTorch-based encoders to and from a GPU.
  
  :param  is_target: Whether the data to encode is the target, as per the problem definition.
  :param is_timeseries_encoder: Whether encoder represents sequential/time-series data. Lightwood must provide specific treatment for this kind of encoder
  :param is_trainable_encoder: Whether the encoder must return learned representations. Lightwood checks whether this flag is present in order to pass data to the feature representation via the ``prepare`` statement. 
  
  Class Attributes:
  - is_prepared: Internal flag to signal that the `prepare()` method has been successfully executed.
  - is_nn_encoder: Whether the encoder is neural network-based.
  - dependencies: list of additional columns that the encoder might need to encode.
  - output_size: length of each encoding tensor for a single data point.
docstr: Given 'priming_data' (i.e. training data), prepares encoders either through a rule-based (ex: one-hot encoding) or learned (ex: DistilBERT for text) model. This works explicitly on only training data.
  
  :param priming_data: An iterable data structure where all the elements have type that is compatible with the encoder processing type; this may differ per encoder.
docstr_tok: ["Given","'priming_data","'","(","i.e",".","training","data",")",",","prepares","encoders","either","through","a","rule-based","(","ex",":","one-hot","encoding",")","or","learned","(","ex",":","DistilBERT","for","text",")","model",".","This","works","explicitly","on","only","training","data",".",":","param","priming_data",":","An","iterable","data","structure","where","all","the","elements","have","type","that","is","compatible","with","the","encoder","processing","type",";","this","may","differ","per","encoder","."]
code: def prepare(self, priming_data: Iterable[object]) -> None:
      """
      Given 'priming_data' (i.e. training data), prepares encoders either through a rule-based (ex: one-hot encoding) or learned (ex: DistilBERT for text) model. This works explicitly on only training data.
  
      :param priming_data: An iterable data structure where all the elements have type that is compatible with the encoder processing type; this may differ per encoder.
      """  # noqa
      self.is_prepared = True
  
file_path: lightwood/lightwood/encoder/base.py
imports: from typing import List, Iterable
  import torch
label_desc: Use image node_id 2 for calling the BaseEncoder obj's underlying member method code with example usage: obj.prepare(priming_data) without return types