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
docstr: Create a generator of the steps that need to be called to complete a full Gibbs sample
  
  Parameters
  ----------
  model: Model
      The model being sampled
  
  Returns
  -------
  Generator[Callable[[Model], Sampler], None, None]
      A generator a function to be called
docstr_tok: ["Create","a","generator","of","the","steps","that","need","to","be","called","to","complete","a","full","Gibbs","sample","Parameters","--","--","--","--","--","model",":","Model","The","model","being","sampled","Returns","--","--","--","-","Generator","[","Callable","[","[","Model","]",",","Sampler","]",",","None",",","None","]","A","generator","a","function","to","be","called"]
code: def steps(
      self, model: Model
  ) -> Generator[Tuple[Text, Callable[[], float]], None, None]:
      """
      Create a generator of the steps that need to be called to complete a full Gibbs sample
  
      Parameters
      ----------
      model: Model
          The model being sampled
  
      Returns
      -------
      Generator[Callable[[Model], Sampler], None, None]
          A generator a function to be called
      """
      for tree in model.refreshed_trees():
          yield "Tree", lambda: self.tree_sampler.step(model, tree)
  
          for leaf_node in tree.leaf_nodes:
              yield "Node", lambda: self.leaf_sampler.step(
                  model, leaf_node
              )
      yield "Node", lambda: self.sigma_sampler.step(model, model.sigma)
  
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 2 for calling the SampleSchedule obj's underlying member method code with example usage: obj.steps(model) without return types