class_docstr: A data module which provides datasets with different
  ground truth / counter factual injection modes for the support set.
  
  Parameters
  ----------
  context_length_multiple: int
      Context length is prediction length x ``context_length_multiple``.
  prediction_length: int
      Number of predicted time steps.
  support_length_multiple: int
      Support time series length is prediction length x ``support_length_multiple``.
  test_set_size: int
      The size of the test split of the generated dataset.
  val_set_size: int
      The size of the val split of the generated dataset.
  train_set_size: int
      The size of the train split of the generated dataset.
  freq: str
      Not clear if this is actually used here on not.
  support_set_size: int
      Number of time series in the support set.
  data_dir: pathlib.Path
      Path to data.
  cheat_chance: float
      The chance of injecting ground truth in a support set.
  noise_level: float
      The level of noise added to the ground truth when cheating.
  query_length_scale: float
      The length scale used by the gaussian process to sample the queries from.
  support_length_scale_same_as_query: bool
      Whether the length scale of the gaussian process for query and support set match.
  standardize: bool
      If each time series is standardized.
  batch_size_train: int
      Batch size during training.
  batch_size_val_test: int
      Batch size during validation and testing.
  num_workers: int
      Number of workers.
  random_seed: int
      The random seed.
class_docstr_tok: ["A","data","module","which","provides","datasets","with","different","ground","truth","\/","counter","factual","injection","modes","for","the","support","set",".","Parameters","--","--","--","--","--","context_length_multiple",":","int","Context","length","is","prediction","length","x","``","context_length_multiple","``",".","prediction_length",":","int","Number","of","predicted","time","steps",".","support_length_multiple",":","int","Support","time","series","length","is","prediction","length","x","``","support_length_multiple","``",".","test_set_size",":","int","The","size","of","the","test","split","of","the","generated","dataset",".","val_set_size",":","int","The","size","of","the","val","split","of","the","generated","dataset",".","train_set_size",":","int","The","size","of","the","train","split","of","the","generated","dataset",".","freq",":","str","Not","clear","if","this","is","actually","used","here","on","not",".","support_set_size",":","int","Number","of","time","series","in","the","support","set",".","data_dir",":","pathlib.Path","Path","to","data",".","cheat_chance",":","float","The","chance","of","injecting","ground","truth","in","a","support","set",".","noise_level",":","float","The","level","of","noise","added","to","the","ground","truth","when","cheating",".","query_length_scale",":","float","The","length","scale","used","by","the","gaussian","process","to","sample","the","queries","from",".","support_length_scale_same_as_query",":","bool","Whether","the","length","scale","of","the","gaussian","process","for","query","and","support","set","match",".","standardize",":","bool","If","each","time","series","is","standardized",".","batch_size_train",":","int","Batch","size","during","training",".","batch_size_val_test",":","int","Batch","size","during","validation","and","testing",".","num_workers",":","int","Number","of","workers",".","random_seed",":","int","The","random","seed","."]
code: def dataset_name(self) -> str:
      return "cheat_" + self.meta.get_hash()
  
imports: import os
  from dataclasses import dataclass, asdict
  from typing import Optional, Literal, Tuple, List, Dict
  from pathlib import Path
  import json
  from tqdm import tqdm
  import hashlib
  import numpy
  import torch
  import torch.nn
  import pytorch_lightning
  from sklearn.gaussian_process import GaussianProcessRegressor
  from sklearn.gaussian_process.kernels import RBF
  from torch.utils.data import DataLoader, ConcatDataset
  from gluonts.time_feature import get_seasonality
  from .artificial import _write_data_to_file
  from meta.datasets.registry import register_data_module
  from meta.data.batch import TripletBatch
  from meta.datasets.splits import DatasetSplits
  from meta.data.sampling import TripletDataset
  from meta.common.torch import tensor_to_np
  from meta.metrics.numpy import compute_metrics
label_desc: Use image node_id 8 for calling the CheatArtificialDataModule obj's underlying member method code with example usage: obj.dataset_name() and returns: unknown