class_docstr: The SampleSchedule class is responsible for handling the ordering of sampling within a Gibbs step
  It is useful to encapsulate this logic if we wish to expand the model
  
  Parameters
  ----------
  tree_sampler: TreeMutationSampler
      How to sample tree mutation space
  leaf_sampler: LeafNodeSampler
      How to sample leaf node predictions
  sigma_sampler: SigmaSampler
      How to sample sigma values
code: def __init__(
      self,
      tree_sampler: TreeMutationSampler,
      leaf_sampler: LeafNodeSampler,
      sigma_sampler: SigmaSampler,
  ):
      self.leaf_sampler = leaf_sampler
      self.sigma_sampler = sigma_sampler
      self.tree_sampler = tree_sampler
  
file_path: imodels/imodels/experimental/bartpy/samplers/schedule.py
imports: from typing import Callable, Generator, Text, Tuple
  import numpy
  import pandas
  from ..model import Model
  from ..samplers.leafnode import LeafNodeSampler
  from ..samplers.sigma import SigmaSampler
  from ..samplers.treemutation import TreeMutationSampler
label_desc: Use image node_id 1 to create a new SampleSchedule object  with example: obj = SampleSchedule(tree_sampler, leaf_sampler, sigma_sampler)