code: def get_posts_with_limits(self, include_draft=False, **limits):
          
          filter_funcs = []
  
          for attr in ('title', 'layout', 'author',
                       'email', 'tags', 'categories'):
              if limits.get(attr):
                  filter_set = set(to_list(limits.get(attr)))
  
                  def get_filter_func(filter_set_, attr_):
                      return lambda p: filter_set_.intersection(
                          to_list(getattr(p, attr_)))
  
                  filter_funcs.append(get_filter_func(filter_set, attr))
  
          for attr in ('created', 'updated'):
              interval = limits.get(attr)
              if isinstance(interval, (list, tuple)) and len(interval) == 2 \
                      and isinstance(interval[0], date) and isinstance(
                  interval[1], date):
                  # [start date(time), end date(time)]
                  start, end = interval
                  start = to_datetime(start)
                  if not isinstance(end, datetime):
                      # 'end' is a date,
                      # we should convert it to 00:00:00 of the next day,
                      # so that posts of that day will be included
                      end = datetime.strptime(
                          '%04d-%02d-%02d' % (end.year, end.month, end.day),
                          '%Y-%m-%d')
                      end += timedelta(days=1)
  
                  def get_filter_func(attr_, start_dt, end_dt):
                      return lambda p: start_dt <= getattr(p, attr_) < end_dt
  
                  filter_funcs.append(get_filter_func(attr, start, end))
  
          return self.get_posts(include_draft=include_draft,
                                filter_functions=filter_funcs)
docs: Get all posts and filter them as needed.
  
          :param include_draft: return draft posts or not
          :param limits: other limits to the attrs of the result,
                         should be a dict with string or list values
          :return: an iterable of Post objects