docstr: Note: sktime asks for "specification of the time points for which forecasts are requested", and this mixer complies by assuming forecasts will start immediately after the last observed value.
  
  Because of this, `ProblemDefinition.fit_on_all` is set to True so that `partial_fit` uses both `dev` and `test` splits to fit the models.
  
  Due to how lightwood implements the `update` procedure, expected inputs for this method are:
  
  :param dev_data: original `test` split (used to validate and select model if ensemble is `BestOf`).
  :param train_data: concatenated original `train` and `dev` splits.
docstr_tok: ["Note",":","sktime","asks","for","``","specification","of","the","time","points","for","which","forecasts","are","requested","''",",","and","this","mixer","complies","by","assuming","forecasts","will","start","immediately","after","the","last","observed","value",".","Because","of","this",",","`","ProblemDefinition.fit_on_all","`","is","set","to","True","so","that","`","partial_fit","`","uses","both","`","dev","`","and","`","test","`","splits","to","fit","the","models",".","Due","to","how","lightwood","implements","the","`","update","`","procedure",",","expected","inputs","for","this","method","are",":",":","param","dev_data",":","original","`","test","`","split","(","used","to","validate","and","select","model","if","ensemble","is","`","BestOf","`",")",".",":","param","train_data",":","concatenated","original","`","train","`","and","`","dev","`","splits","."]
code: def partial_fit(
      self,
      train_data: EncodedDs,
      dev_data: EncodedDs,
      args: Optional[dict] = None,
  ) -> None:
      """
      Note: sktime asks for "specification of the time points for which forecasts are requested", and this mixer complies by assuming forecasts will start immediately after the last observed value.
  
      Because of this, `ProblemDefinition.fit_on_all` is set to True so that `partial_fit` uses both `dev` and `test` splits to fit the models.
  
      Due to how lightwood implements the `update` procedure, expected inputs for this method are:
  
      :param dev_data: original `test` split (used to validate and select model if ensemble is `BestOf`).
      :param train_data: concatenated original `train` and `dev` splits.
      """  # noqa
      self.hyperparam_search = False
      self.fit(dev_data, train_data)
      self.prepared = True
  
imports: import importlib
  from copy import deepcopy
  from datetime import datetime
  from typing import Dict, Union, Optional
  import optuna
  import numpy
  import pandas
  from sktime.forecasting.compose import TransformedTargetForecaster
  from sktime.forecasting.base import ForecastingHorizon, BaseForecaster
  from sktime.performance_metrics.forecasting import MeanAbsolutePercentageError
  from sktime.forecasting.statsforecast import StatsForecastAutoARIMA
  from lightwood.helpers.log import log
  from lightwood.helpers.templating import _add_cls_kwarg
  from lightwood.mixer.base import BaseMixer
  from lightwood.api.types import PredictionArguments
  from lightwood.data.encoded_ds import EncodedDs, ConcatedEncodedDs
label_desc: Use image node_id 4 for calling the SkTime obj's underlying member method code with example usage: obj.partial_fit(train_data, dev_data, args) without return types