code: def qnwunif(n, a, b):
      
      n, a, b = list(map(np.asarray, [n, a, b]))
      nodes, weights = qnwlege(n, a, b)
      weights = weights / np.prod(b - a)
      return nodes, weights
docs: Computes quadrature nodes and weights for multivariate uniform
      distribution
  
      Parameters
      ----------
      n : int or array_like(float)
          A length-d iterable of the number of nodes in each dimension
  
      a : scalar or array_like(float)
          A length-d iterable of lower endpoints. If a scalar is given,
          that constant is repeated d times, where d is the number of
          dimensions
  
      b : scalar or array_like(float)
          A length-d iterable of upper endpoints. If a scalar is given,
          that constant is repeated d times, where d is the number of
          dimensions
  
      Returns
      -------
      nodes : np.ndarray(dtype=float)
          Quadrature nodes
  
      weights : np.ndarray(dtype=float)
          Weights for quadrature nodes
  
      Notes
      -----
      Based of original function ``qnwunif`` in CompEcon toolbox by
      Miranda and Fackler
  
      References
      ----------
      Miranda, Mario J, and Paul L Fackler. Applied Computational
      Economics and Finance, MIT Press, 2002.