This will generate a time table for the source api_calls
        :param source: obj this can be an int(index), str(key), slice,
        list of api_calls or an api_call
        :return: ReprListList

def time_report(self, source=None, **kwargs):
        """
        This will generate a time table for the source api_calls
        :param source: obj this can be an int(index), str(key), slice,
        list of api_calls or an api_call
        :return: ReprListList
        """
        if source is None:
            api_calls = [self[-1]]
        elif isinstance(source, list):
            api_calls = source
        elif source is None:
            api_calls = self.values()
        elif isinstance(source, ApiCall):
            api_calls = [source]
        else:
            api_calls = self[source]
            if not isinstance(api_calls, list):
                api_calls = [api_calls]
        return '\n\n'.join([repr(api_call.time_report(**kwargs)
                                 for api_call in api_calls)])