# Buggy code
def reindex(
    self,
    major=None,
    items=None,
    minor=None,
    major_axis=None,
    minor_axis=None,
    copy=False,
):
    """
    Conform / reshape panel axis labels to new input labels

    Parameters
    ----------
    major : array-like, default None
    items : array-like, default None
    minor : array-like, default None
    copy : boolean, default False
        Copy underlying SparseDataFrame objects

    Returns
    -------
    reindexed : SparsePanel
    """
    major = _mut_exclusive(major, major_axis)
    minor = _mut_exclusive(minor, minor_axis)

    if None == major == items == minor:
        raise ValueError("Must specify at least one axis")

    major = self.major_axis if major is None else major
    minor = self.minor_axis if minor is None else minor

    if items is not None:
        new_frames = {}
        for item in items:
            if item in self._frames:
                new_frames[item] = self._frames[item]
            else:
                raise Exception("Reindexing with new items not yet supported")
    else:
        new_frames = self._frames

    if copy:
        new_frames = dict((k, v.copy()) for k, v in new_frames.iteritems())

    return SparsePanel(
        new_frames,
        items=items,
        major_axis=major,
        minor_axis=minor,
        default_fill_value=self.default_fill_value,
        default_kind=self.default_kind,
    )


# Traceback (ValueError)
In [17]: date_range(datetime.datetime.today(), periods=10, freq='2h20m')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/chang/Dropbox/git/pandas/<ipython-input-17-ff4e03382573> in <module>()
----> 1 date_range(datetime.datetime.today(), periods=10, freq='2h20m')

/home/chang/Dropbox/git/pandas/pandas/tseries/index.pyc in date_range(start, end, periods, freq, tz, normalize)
1209     """
1210     return DatetimeIndex(start=start, end=end, periods=periods,
-> 1211                          freq=freq, tz=tz, normalize=normalize)
1212
1213

/home/chang/Dropbox/git/pandas/pandas/tseries/index.pyc in __new__(cls, data, freq, start, end, periods, copy, name, tz, verify_integrity, normalize, **kwds)
202
203         if data is None and offset is None:
--> 204             raise ValueError("Must provide freq argument if no data is "
205                              "supplied")
206

ValueError: Must provide freq argument if no data is supplied

# Fixed code
def reindex(
    self,
    major=None,
    items=None,
    minor=None,
    major_axis=None,
    minor_axis=None,
    copy=False,
):
    """
    Conform / reshape panel axis labels to new input labels

    Parameters
    ----------
    major : array-like, default None
    items : array-like, default None
    minor : array-like, default None
    copy : boolean, default False
        Copy underlying SparseDataFrame objects

    Returns
    -------
    reindexed : SparsePanel
    """
    major = com._mut_exclusive(major, major_axis)
    minor = com._mut_exclusive(minor, minor_axis)

    if com._all_none(items, major, minor):
        raise ValueError("Must specify at least one axis")

    major = self.major_axis if major is None else major
    minor = self.minor_axis if minor is None else minor

    if items is not None:
        new_frames = {}
        for item in items:
            if item in self._frames:
                new_frames[item] = self._frames[item]
            else:
                raise Exception("Reindexing with new items not yet supported")
    else:
        new_frames = self._frames

    if copy:
        new_frames = dict((k, v.copy()) for k, v in new_frames.iteritems())

    return SparsePanel(
        new_frames,
        items=items,
        major_axis=major,
        minor_axis=minor,
        default_fill_value=self.default_fill_value,
        default_kind=self.default_kind,
    )