Return a list of lower and upper extents for
        the given array_name.

        .. code-block:: python

            cube.register("uvw", ("ntime", "na", 3), np.float64)

            (lt, ut), (la, ua), (_, _) = cube.array_extents("uvw")

        Parameters
        ----------
        array_name : string
            Name of an array registered on this hypercube


        Returns
        -------
        list
            List of (lower_extent, upper_extent) tuples
            associated with each array dimension

def array_extents(self, array_name, **kwargs):
        """
        Return a list of lower and upper extents for
        the given array_name.

        .. code-block:: python

            cube.register("uvw", ("ntime", "na", 3), np.float64)

            (lt, ut), (la, ua), (_, _) = cube.array_extents("uvw")

        Parameters
        ----------
        array_name : string
            Name of an array registered on this hypercube


        Returns
        -------
        list
            List of (lower_extent, upper_extent) tuples
            associated with each array dimension


        """

        A = self.array(array_name, reify=False)
        return self.dim_extents(*A.shape, single=False)