code: def data(self, eight_schools_params, draws, chains):
      with pm.Model() as model:
          mu = pm.Normal("mu", mu=0, sigma=5)
          tau = pm.HalfCauchy("tau", beta=5)
          eta = pm.Normal(
              "eta", mu=0, sigma=1, size=eight_schools_params["J"]
          )
          theta = pm.Deterministic("theta", mu + tau * eta)
          pm.Normal(
              "obs",
              mu=theta,
              sigma=eight_schools_params["sigma"],
              observed=eight_schools_params["y"],
          )
          trace = pm.sample(
              draws,
              chains=chains,
              return_inferencedata=False,
          )
  
      return self.Data(model, trace)
  
imports: import warnings
  from typing import Dict, Tuple
  import numpy
  import pytensor.tensor
  import pytest
  from arviz import InferenceData
  from arviz.tests.helpers import check_multiple_attrs
  from numpy import ma
  from pytensor.tensor.subtensor import AdvancedIncSubtensor, AdvancedIncSubtensor1
  import pymc
  from pymc.backends.arviz import InferenceDataConverter, predictions_to_inference_data, to_inference_data
  from pymc.exceptions import ImputationWarning
label_desc: Use image node_id 1 for calling the TestDataPyMC obj's underlying member method code with example usage: obj.data(eight_schools_params, draws, chains) and returns: self