code: def push_uci(self, uci: str) -> Move:
          
          move = self.parse_uci(uci)
          self.push(move)
          return move
docs: Parses a move in UCI notation and puts it on the move stack.
  
          Returns the move.
  
          :raises: :exc:`ValueError` if the move is invalid or illegal in the
              current position (but not a null move).