code: def group_records(records, groupby='week'):
      
  
      def _group_date(records, _fun):
          for _, chunk in itertools.groupby(records, key=lambda r: _fun(r.datetime)):
              yield list(chunk)
  
      return _group_date(records, DATE_GROUPERS[groupby])
docs: Group records by year, month, week, or day.
  
      Parameters
      ----------
      records : iterator
          An iterator over records
  
      groupby : Default is 'week':
          * 'week': group all records by year and week
          * None: records are not grouped. This is useful if you don't want to
            divide records in chunks
          * "day", "month", and "year" also accepted