code: def push(self, item):
          
          if item in self.pushed:
              return
          frame = (item, iter(item[1]))
          self.stack.append(frame)
          self.pushed.add(item)
docs: Push and item onto the sorting stack.
          @param item: An item to push.
          @type item: I{item}
          @return: The number of items pushed.
          @rtype: int