code: def sample(self):
          
  
          # chooses a sampling scheme randomly based on the mixing ratios
          seed = random.uniform(0, 1)
          ratio = np.cumsum(self.scheme_ratios)
          ratio = ratio > seed
          for i, v in enumerate(ratio):
              if v:
                  break
  
          sample_method = getattr(self, self.sample_method_dict[self.sampling_schemes[i]])
          return sample_method()
docs: This is the core sampling method. Samples a state from a
          demonstration, in accordance with the configuration.