code: def propose_unif(self):
          
  
          # Initialize a K-D Tree to assist nearest neighbor searches.
          if self.use_kdtree:
              kdtree = spatial.KDTree(self.live_u)
          else:
              kdtree = None
  
          while True:
              # Sample a point `u` from the union of N-spheres along with the
              # number of overlapping spheres `q` at point `u`.
              u, q = self.radfriends.sample(self.live_u, rstate=self.rstate,
                                            return_q=True, kdtree=kdtree)
  
              # Check if our sample is within the unit cube.
              if unitcheck(u, self.nonperiodic):
                  # Accept the point with probability 1/q to account for
                  # overlapping balls.
                  if q == 1 or self.rstate.rand() < 1.0 / q:
                      break  # if successful, we're done!
  
          # Define the axes of the N-sphere.
          ax = np.identity(self.npdim) * self.radfriends.radius
  
          return u, ax
docs: Propose a new live point by sampling *uniformly* within
          the union of N-spheres defined by our live points.