code: def from_json(self, data_json, results_path):
      self._params = data_json.get("params", self._params)
  
      if "remove_columns" in data_json:
          self._remove_columns = data_json.get("remove_columns", [])
      if "missing_values" in data_json:
          self._missing_values = []
          for mv_data in data_json["missing_values"]:
              mv = PreprocessingMissingValues()
              mv.from_json(mv_data)
              self._missing_values += [mv]
      if "categorical" in data_json:
          self._categorical = []
          for cat_data in data_json["categorical"]:
              cat = PreprocessingCategorical()
              cat.from_json(cat_data)
              self._categorical += [cat]
  
      if "datetime_transforms" in data_json:
          self._datetime_transforms = []
          for dtt_params in data_json["datetime_transforms"]:
              dtt = DateTimeTransformer()
              dtt.from_json(dtt_params)
              self._datetime_transforms += [dtt]
  
      if "text_transforms" in data_json:
          self._text_transforms = []
          for tt_params in data_json["text_transforms"]:
              tt = TextTransformer()
              tt.from_json(tt_params)
              self._text_transforms += [tt]
  
      if "golden_features" in data_json:
          self._golden_features = GoldenFeaturesTransformer()
          self._golden_features.from_json(
              data_json["golden_features"], results_path
          )
  
      if "kmeans" in data_json:
          self._kmeans = KMeansTransformer()
          self._kmeans.from_json(data_json["kmeans"], results_path)
  
      if "scale" in data_json:
          self._scale = []
          for scale_data in data_json["scale"]:
              sc = Scale()
              sc.from_json(scale_data)
              self._scale += [sc]
      if "categorical_y" in data_json:
          if "new_columns" in data_json["categorical_y"]:
              self._categorical_y = LabelBinarizer()
          else:
              self._categorical_y = LabelEncoder()
  
          self._categorical_y.from_json(data_json["categorical_y"])
      if "scale_y" in data_json:
          self._scale_y = Scale()
          self._scale_y.from_json(data_json["scale_y"])
      if "ml_task" in data_json:
          self._params["ml_task"] = data_json["ml_task"]
  
      self._add_random_feature = data_json.get(
          "add_random_feature", False
      )
      self._drop_features = data_json.get("drop_features", [])
  
imports: import copy
  import logging
  import warnings
  import numpy
  import pandas
  from supervised.algorithms.registry import BINARY_CLASSIFICATION, MULTICLASS_CLASSIFICATION, REGRESSION
  from supervised.exceptions import AutoMLException
  from supervised.preprocessing.datetime_transformer import DateTimeTransformer
  from supervised.preprocessing.exclude_missing_target import ExcludeRowsMissingTarget
  from supervised.preprocessing.goldenfeatures_transformer import GoldenFeaturesTransformer
  from supervised.preprocessing.kmeans_transformer import KMeansTransformer
  from supervised.preprocessing.label_binarizer import LabelBinarizer
  from supervised.preprocessing.label_encoder import LabelEncoder
  from supervised.preprocessing.preprocessing_categorical import PreprocessingCategorical
  from supervised.preprocessing.preprocessing_missing import PreprocessingMissingValues
  from supervised.preprocessing.preprocessing_utils import PreprocessingUtils
  from supervised.preprocessing.scale import Scale
  from supervised.preprocessing.text_transformer import TextTransformer
  from supervised.utils.config import LOG_LEVEL
label_desc: Use image node_id 10 for calling the Preprocessing obj's underlying member method code with example usage: obj.from_json(data_json, results_path) without return types