code: def propose(self):
          
  
          # Generate uniform variate to choose kernel
          self.current_kernel = sum(self.cum_probs < random())
          kernel = self.kernels[self.current_kernel]
  
          # Parameters to move
          self.phi = (random(self._len) < self.p)
  
          # Propose new value
          kernel()
docs: This method is called by step() to generate proposed values