<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def date_range(cls,start_time,end_time,freq):
        '''
        Returns a new SArray that represents a fixed frequency datetime index.

        Parameters
        ----------
        start_time : datetime.datetime
          Left bound for generating dates.

        end_time : datetime.datetime
          Right bound for generating dates.

        freq : datetime.timedelta
          Fixed frequency between two consecutive data points.

        Returns
        -------
        out : SArray

        Examples
        --------
        >>> import datetime as dt
        >>> start = dt.datetime(2013, 5, 7, 10, 4, 10)
        >>> end = dt.datetime(2013, 5, 10, 10, 4, 10)
        >>> sa = tc.SArray.date_range(start,end,dt.timedelta(1))
        >>> print sa
        dtype: datetime
        Rows: 4
        [datetime.datetime(2013, 5, 7, 10, 4, 10),
         datetime.datetime(2013, 5, 8, 10, 4, 10),
         datetime.datetime(2013, 5, 9, 10, 4, 10),
         datetime.datetime(2013, 5, 10, 10, 4, 10)]
       '''

        if not isinstance(start_time,datetime.datetime):
            raise TypeError("The ``start_time`` argument must be from type datetime.datetime.")

        if not isinstance(end_time,datetime.datetime):
            raise TypeError("The ``end_time`` argument must be from type datetime.datetime.")

        if not isinstance(freq,datetime.timedelta):
            raise TypeError("The ``freq`` argument must be from type datetime.timedelta.")

        from .. import extensions
        return extensions.date_range(start_time,end_time,freq.total_seconds())