from typing import Any, Callable, Generic, Optional, Sequence, TypeVar, Union from typing_extensions import Literal from parso.utils import PythonVersionInfo _Token = Any _NodeT = TypeVar("_NodeT") class Grammar(Generic[_NodeT]): _default_normalizer_config: Optional[Any] = ... _error_normalizer_config: Optional[Any] = None _start_nonterminal: str = ... _token_namespace: Optional[str] = None def __init__( self, text: str, tokenizer: Callable[[Sequence[str], int], Sequence[_Token]], parser: Any = ..., diff_parser: Any = ..., ) -> None: ... def parse( self, code: Union[str, bytes] = ..., error_recovery: bool = ..., path: Optional[str] = ..., start_symbol: Optional[str] = ..., cache: bool = ..., diff_cache: bool = ..., cache_path: Optional[str] = ..., ) -> _NodeT: ... class PythonGrammar(Grammar): version_info: PythonVersionInfo def __init__(self, version_info: PythonVersionInfo, bnf_text: str) -> None: ... def load_grammar( language: Literal["python"] = "python", version: Optional[str] = ..., path: str = ... ) -> Grammar: ...