def test_load_inexisting_grammar(): # This version shouldn't be out for a while, but if we ever do, wow! with pytest.raises(NotImplementedError): load_grammar(version='15.8') # The same is true for very old grammars (even though this is probably not # going to be an issue. with pytest.raises(NotImplementedError): load_grammar(version='1.5')
def parse(code=None, **kwargs): """ A utility function to avoid loading grammars. Params are documented in :py:meth:`parso.Grammar.parse`. :param str version: The version used by :py:func:`parso.load_grammar`. """ version = kwargs.pop('version', None) grammar = load_grammar(version=version) return grammar.parse(code, **kwargs)
def generate(self, filepath, symbol, options): grammar = load_grammar(version=options["version"]) with open(filepath, encoding=options["encoding"]) as f: parser = grammar.parse(f.read()) module: Module = parser.get_root_node() if symbol is not None: root_node = find_symbol(module, symbol) else: root_node = module context = ParsoGeneratorContext( basepath=Path(self.mkdocs["config_file_path"]).parent, filepath=filepath, symbol=symbol, parent=None, depth=options["depth"], deep=options["deep"], options=options, ) return self._generate_doc(root_node, context)
def test_grammar_int_version(): with pytest.raises(TypeError): load_grammar(version=3.8)
def test_invalid_grammar_version(string): with pytest.raises(ValueError): load_grammar(version=string)
def test_grammar_int_version(): with pytest.raises(TypeError): load_grammar(version=3.2)