nodes: 0, module; 1, function_definition; 2, function_name:push; 3, parameters; 4, block; 5, identifier:self; 6, identifier:item; 7, expression_statement; 8, if_statement; 9, expression_statement; 10, expression_statement; 11, expression_statement; 12, comment:"""
          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
          """; 13, comparison_operator:item in self.pushed; 14, block; 15, assignment; 16, call; 17, call; 18, identifier:item; 19, attribute; 20, return_statement; 21, identifier:frame; 22, tuple; 23, attribute; 24, argument_list; 25, attribute; 26, argument_list; 27, identifier:self; 28, identifier:pushed; 29, identifier:item; 30, call; 31, attribute; 32, identifier:append; 33, identifier:frame; 34, attribute; 35, identifier:add; 36, identifier:item; 37, identifier:iter; 38, argument_list; 39, identifier:self; 40, identifier:stack; 41, identifier:self; 42, identifier:pushed; 43, subscript; 44, identifier:item; 45, integer:1
code: def push(self, item):
          """
          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
          """
          if item in self.pushed:
              return
          frame = (item, iter(item[1]))
          self.stack.append(frame)
          self.pushed.add(item)