Nick Coghlan added the comment:
The suppression flag rings alarm bells for me, as does the fact that all the
arguments are optional. Do you remember the rationale for allowing the
marshalling errors to propagate rather than falling back to loading from
source? It seems weird that a truncated read in the first 12 bytes means to
fall back to compiling from source, but truncation after that is a user visible
error. Allowing those exceptions to be suppressed as well would simplify things
a fair bit.
Regardless, looking at the full patch in context on a real computer (rather
than through my phone), suggests to me there needs to be *two* private static
methods on _LoaderBasics._parse_bytecode_file:
SourcelessLoader.get_code would just call these directly, while
SourceLoader.parse_cache_contents would suppress exceptions from the first one.
I'll put together a patch illustrating this approach.
Python tracker <rep...@bugs.python.org>
Python-bugs-list mailing list