Load the grammar (maybe from a pickle).
(
gt: str = "Grammar.txt",
gp: str | None = None,
save: bool = True,
force: bool = False,
logger: Logger | None = None,
)
| 239 | |
| 240 | |
| 241 | def load_grammar( |
| 242 | gt: str = "Grammar.txt", |
| 243 | gp: str | None = None, |
| 244 | save: bool = True, |
| 245 | force: bool = False, |
| 246 | logger: Logger | None = None, |
| 247 | ) -> Grammar: |
| 248 | """Load the grammar (maybe from a pickle).""" |
| 249 | if logger is None: |
| 250 | logger = logging.getLogger(__name__) |
| 251 | gp = _generate_pickle_name(gt) if gp is None else gp |
| 252 | if force or not _newer(gp, gt): |
| 253 | g: grammar.Grammar = pgen.generate_grammar(gt) |
| 254 | if save: |
| 255 | try: |
| 256 | g.dump(gp) |
| 257 | except OSError: |
| 258 | # Ignore error, caching is not vital. |
| 259 | pass |
| 260 | else: |
| 261 | g = grammar.Grammar() |
| 262 | g.load(gp) |
| 263 | return g |
| 264 | |
| 265 | |
| 266 | def _newer(a: str, b: str) -> bool: |
no test coverage detected