def __init__(self, items, unique=True, key=None):
self._work = collections.deque()<EOL>self._seen = set()<EOL>self._count = <NUM_LIT:0><EOL>self._unique = unique<EOL>self._key = key<EOL>self.extend(items)<EOL>
Initialize a ``WorkQueue`` object.

:param items: A sequence of items to add to the queue
              initially.  The items may be of any type;
              however, if they are not hashable, then either
              ``unique`` must be ``False`` or a ``key``
              callable must be provided.
:param unique: If ``True``--the default--each item added to
               the queue must be unique; any duplicate items
               that are added to the queue will be ignored.
               This adds the items (or their keys; see the
               ``key`` parameter) to a set, so if memory is a
               worry, use ``False``.
:param key: An optional callable taking one argument.  The
            argument will be a work item, and the result
            should be a hashable value unique to that item.
            This key will be added to a set, so if memory is a
            worry, use a ``False`` value for ``unique`` or
            select a key representation with a small memory
            footprint.