parameters: (shape,centered=False,endpoint=None)
return_statement: return points
docstring: Generation of uniform grids in N dimensions.
  
      Parameters
      ----------
      shape : `array_like, int`
          Number of points in the grid in each dimension.  The dimension of 
          the grid is the number of entries in `shape`.
      centered : `bool, optional, default False`
          Locate grid points at lower cell corners (`False`) or cell centers 
          (`True`).
      endpoint : `array_like, bool, optional`
          If `True` for given dimension, add an endpoint at the upper edge 
          of the grid in that dimension (default `False`).  Applies only to 
          non-centered grids. `shape` and `endpoint` must have the same number 
          of entries.
  
      Returns
      -------
      points : `ndarray, float, shape (prod(shape),len(shape))`
          Array containing all grid points.
docstring_summary: Generation of uniform grids in N dimensions.
docstring_tokens: Generation of uniform grids in N dimensions .
function: def unit_grid_points(shape,centered=False,endpoint=None):
      """
      Generation of uniform grids in N dimensions.
  
      Parameters
      ----------
      shape : `array_like, int`
          Number of points in the grid in each dimension.  The dimension of 
          the grid is the number of entries in `shape`.
      centered : `bool, optional, default False`
          Locate grid points at lower cell corners (`False`) or cell centers 
          (`True`).
      endpoint : `array_like, bool, optional`
          If `True` for given dimension, add an endpoint at the upper edge 
          of the grid in that dimension (default `False`).  Applies only to 
          non-centered grids. `shape` and `endpoint` must have the same number 
          of entries.
  
      Returns
      -------
      points : `ndarray, float, shape (prod(shape),len(shape))`
          Array containing all grid points.
      """
      linear_grids = []
      if endpoint is None:
          endpoint = len(shape)*[False]
      #end if
      for n,ep in zip(shape,endpoint):
          ep &= not centered
          lin_grid = np.linspace(0.0,1.0,n,endpoint=ep)
          if centered:
              lin_grid += 0.5/n
          #end for
          linear_grids.append(lin_grid)
      #end for
      # equivalent to 
      #   points = ndgrid(*linear_grids)
      points = np.meshgrid(*linear_grids,indexing='ij')
      points = np.array(points)
      # reshape and transpose the points
      points.shape = (len(points),np.array(shape).prod())
      points = points.T
      return points
function_tokens: def unit_grid_points ( shape , centered = False , endpoint = None ) : linear_grids = [ ] if endpoint is None : endpoint = len ( shape ) * [ False ] #end if for n , ep in zip ( shape , endpoint ) : ep &= not centered lin_grid = np . linspace ( 0.0 , 1.0 , n , endpoint = ep ) if centered : lin_grid += 0.5 / n #end for linear_grids . append ( lin_grid ) #end for # equivalent to  #   points = ndgrid(*linear_grids) points = np . meshgrid ( * linear_grids , indexing = 'ij' ) points = np . array ( points ) # reshape and transpose the points points . shape = ( len ( points ) , np . array ( shape ) . prod ( ) ) points = points . T return points