def add(self, item):
<EOL>if self._unique:<EOL><INDENT>key = self._key(item) if self._key else item<EOL>if key in self._seen:<EOL><INDENT>return<EOL><DEDENT>self._seen.add(key)<EOL><DEDENT>self._work.append(item)<EOL>self._count += <NUM_LIT:1><EOL>
Add an item to the work queue.

:param item: The work item to add.  An item may be of any
             type; however, if it is not hashable, then the
             work queue must either be initialized with
             ``unique`` set to ``False``, or a ``key``
             callable must have been provided.