This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients brett.cannon, eric.snow, erik.bray, jdemeyer, ncoghlan, paul.moore, petr.viktorin, sth
Date 2018-08-05.02:26:49
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1533436010.73.0.56676864532.issue32797@psf.upfronthosting.co.za>
In-reply-to
Content
Regarding PEP 302 compliance: until Python 3.3, the builtin import system wasn't present on sys.metapath - it was its own implicit legacy thing. The change in Python 3.3 was to fix that, and make it work based on a handful of default sys.metapath entries. Not coincidentally, 3.3 was also the first release where the import system was finally added to the language reference rather than being wholly implementation dependent: https://docs.python.org/3/reference/import.html

I think that also points the way forward for providing a useful import spec compliant fallback for sourceless files in linecache in a way that could be backported to earlier Python 3 versions: it's possible to create a FileFinder [1] instance that only looks for source files, and ignores files that don't provide source code.

Given that, the changes needed to make SageMath tracebacks "just work" the way they currently do in Python 2 would be:

1. Enhance PathFinder [2] to allow specification of which path importer cache and path_hooks entries to use
2. Set up a source-only metapath in linecache with a single default entry: a PathFinder configured with a source-only FileFinder instance as a path hook
3. Fall back to the source-only metapath if the main import system indicates the module is being loaded from a sourceless format.

[1] https://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder
[2] https://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinder
History
Date User Action Args
2018-08-05 02:26:50ncoghlansetrecipients: + ncoghlan, brett.cannon, paul.moore, petr.viktorin, erik.bray, eric.snow, sth, jdemeyer
2018-08-05 02:26:50ncoghlansetmessageid: <1533436010.73.0.56676864532.issue32797@psf.upfronthosting.co.za>
2018-08-05 02:26:50ncoghlanlinkissue32797 messages
2018-08-05 02:26:49ncoghlancreate