MCPcopy
hub / github.com/psf/black / load_packaged_grammar

Function load_packaged_grammar

src/blib2to3/pgen2/driver.py:275–296  ·  view source on GitHub ↗

Normally, loads a pickled grammar by doing pkgutil.get_data(package, pickled_grammar) where *pickled_grammar* is computed from *grammar_source* by adding the Python version and using a ``.pickle`` extension. However, if *grammar_source* is an extant file, load_grammar(grammar_so

(
    package: str, grammar_source: str, cache_dir: Path | None = None
)

Source from the content-addressed store, hash-verified

273
274
275def load_packaged_grammar(
276 package: str, grammar_source: str, cache_dir: Path | None = None
277) -> grammar.Grammar:
278 """Normally, loads a pickled grammar by doing
279 pkgutil.get_data(package, pickled_grammar)
280 where *pickled_grammar* is computed from *grammar_source* by adding the
281 Python version and using a ``.pickle`` extension.
282
283 However, if *grammar_source* is an extant file, load_grammar(grammar_source)
284 is called instead. This facilitates using a packaged grammar file when needed
285 but preserves load_grammar's automatic regeneration behavior when possible.
286
287 """
288 if os.path.isfile(grammar_source):
289 gp = _generate_pickle_name(grammar_source, cache_dir) if cache_dir else None
290 return load_grammar(grammar_source, gp=gp)
291 pickled_name = _generate_pickle_name(os.path.basename(grammar_source), cache_dir)
292 data = pkgutil.get_data(package, pickled_name)
293 assert data is not None
294 g = grammar.Grammar()
295 g.loads(data)
296 return g
297
298
299def main(*args: str) -> bool:

Callers

nothing calls this directly

Calls 3

loadsMethod · 0.95
_generate_pickle_nameFunction · 0.85
load_grammarFunction · 0.85

Tested by

no test coverage detected