class_docstr: Simple OPF client.
  
  :param modelConfig: (dict) The model config.
  :param metricSpecs: A sequence of
         :class:`~nupic.frameworks.opf.metrics.MetricSpec` instances.
  :param sourceSpec: (string) Path to the source CSV file.
  :param sinkSpec: (string) Path to the sink CSV file.
code: def __init__(
      self,
      modelConfig,
      inferenceArgs,
      metricSpecs,
      sourceSpec,
      sinkSpec=None,
  ):
      self.model = ModelFactory.create(modelConfig)
      self.model.enableInference(inferenceArgs)
      self.metricsManager = MetricsManager(
          metricSpecs,
          self.model.getFieldInfo(),
          self.model.getInferenceType(),
      )
      self.sink = None
      if sinkSpec is not None:
          # TODO: make this work - sinkSpec not yet supported.
          raise NotImplementedError(
              "The sinkSpec is not yet implemented."
          )
          # self.sink = BasicPredictionLogger(
          #    self.model.getFieldInfo(), sinkSpec, 'myOutput',
          #    self.model.getInferenceType())
          # self.sink.setLoggedMetrics(
          #    self.metricsManager.getMetricLabels())
      self.datasetReader = BasicDatasetReader(sourceSpec)
  
file_path: nupic-legacy/src/nupic/frameworks/opf/client.py
imports: from nupic.frameworks.opf.model_factory import ModelFactory
  from nupic.frameworks.opf.opf_basic_environment import BasicDatasetReader
  from nupic.frameworks.opf.prediction_metrics_manager import MetricsManager
label_desc: Use image node_id 1 to create a new Client object from inherited base classes: object with example: obj = Client(modelConfig, inferenceArgs, metricSpecs, sourceSpec, sinkSpec)