class_docstr: Caching wrapper for the tokenize module.
  
  This is pretty tied to Python's syntax.
docstr: Return the next token *without* updating the index.
docstr_tok: ["Return","the","next","token","*","without","*","updating","the","index","."]
code: def peek(self) -> tokenize.TokenInfo:
      """Return the next token *without* updating the index."""
      while self._index == len(self._tokens):
          tok = next(self._tokengen)
          if tok.type in (tokenize.NL, tokenize.COMMENT):
              continue
          if tok.type == token.ERRORTOKEN and tok.string.isspace():
              continue
          if (
              tok.type == token.NEWLINE
              and self._tokens
              and self._tokens[-1].type == token.NEWLINE
          ):
              continue
          self._tokens.append(tok)
          if not self._path:
              self._lines[tok.start[0]] = tok.line
      return self._tokens[self._index]
  
file_path: cpython/Tools/peg_generator/pegen/tokenizer.py
imports: import token
  import tokenize
  from typing import Dict, Iterator, List
label_desc: Use image node_id 3 for calling the Tokenizer obj's underlying member method code with example usage: obj.peek() and returns: self