'Constructor.
:param store: ObjectStore instance for looking up objects.
:param include: Iterable of SHAs of commits to include along with their
ancestors.
:param exclude: Iterable of SHAs of commits to exclude along with their
ancestors, overriding includes.
:param order: ORDER_* constant specifying the order of results.
Anything other than ORDER_DATE may result in O(n) memory usage.
:param reverse: If True, reverse the order of output, requiring O(n)
memory.
:param max_entries: The maximum number of entries to yield, or None for
no limit.
:param paths: Iterable of file or subtree paths to show entries for.
:param rename_detector: diff.RenameDetector object for detecting
renames.
:param follow: If True, follow path across renames/copies. Forces a
default rename_detector.
:param since: Timestamp to list commits after.
:param until: Timestamp to list commits before.
:param get_parents: Method to retrieve the parents of a commit
:param queue_cls: A class to use for a queue of commits, supporting the
iterator protocol. The constructor takes a single argument, the
Walker.'

def __init__(self, store, include, exclude=None, order=ORDER_DATE, reverse=False, max_entries=None, paths=None, rename_detector=None, follow=False, since=None, until=None, get_parents=(lambda commit: commit.parents), queue_cls=_CommitTimeQueue):

    if (order not in ALL_ORDERS):
        raise ValueError(('Unknown    walk    order    %s' % order))
    self.store = store
    if isinstance(include, bytes):
        include = [include]
    self.include = include
    self.excluded = set((exclude or []))
    self.order = order
    self.reverse = reverse
    self.max_entries = max_entries
    self.paths = ((paths and set(paths)) or None)
    if (follow and (not rename_detector)):
        rename_detector = RenameDetector(store)
    self.rename_detector = rename_detector
    self.get_parents = get_parents
    self.follow = follow
    self.since = since
    self.until = until
    self._num_entries = 0
    self._queue = queue_cls(self)
    self._out_queue = collections.deque()
