class_docstr: The rruleset type allows more complex recurrence setups, mixing
  multiple rules, dates, exclusion rules, and exclusion dates. The type
  constructor takes the following keyword arguments:
  
  :param cache: If True, caching of results will be enabled, improving
                performance of multiple queries considerably. 
class_docstr_tok: ["The","rruleset","type","allows","more","complex","recurrence","setups",",","mixing","multiple","rules",",","dates",",","exclusion","rules",",","and","exclusion","dates",".","The","type","constructor","takes","the","following","keyword","arguments",":",":","param","cache",":","If","True",",","caching","of","results","will","be","enabled",",","improving","performance","of","multiple","queries","considerably","."]
code: def _iter(self):
      rlist = []
      self._rdate.sort()
      self._genitem(rlist, iter(self._rdate))
      for gen in [iter(x) for x in self._rrule]:
          self._genitem(rlist, gen)
      exlist = []
      self._exdate.sort()
      self._genitem(exlist, iter(self._exdate))
      for gen in [iter(x) for x in self._exrule]:
          self._genitem(exlist, gen)
      lastdt = None
      total = 0
      heapq.heapify(rlist)
      heapq.heapify(exlist)
      while rlist:
          ritem = rlist[0]
          if not lastdt or lastdt != ritem.dt:
              while exlist and exlist[0] < ritem:
                  exitem = exlist[0]
                  advance_iterator(exitem)
                  if exlist and exlist[0] is exitem:
                      heapq.heapreplace(exlist, exitem)
              if not exlist or ritem != exlist[0]:
                  total += 1
                  yield ritem.dt
              lastdt = ritem.dt
          advance_iterator(ritem)
          if rlist and rlist[0] is ritem:
              heapq.heapreplace(rlist, ritem)
      self._len = total
  
imports: import calendar
  import datetime
  import heapq
  import itertools
  import re
  import sys
  from functools import wraps
  from warnings import warn
  from six import advance_iterator, integer_types
  from six.moves import _thread, range
  from ._common import weekday
label_desc: Use image node_id 6 for calling the rruleset obj's underlying member method code with example usage: obj._iter() without return types