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 eric.snow
Recipients Arfrever, brett.cannon, eric.snow, ncoghlan
Date 2014-01-05.02:17:50
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1388888272.45.0.255353824658.issue20125@psf.upfronthosting.co.za>
In-reply-to
Content
In issue #19713, it came up that while PEP 451 deprecated Loader.load_module(), it did not provide a suitable replacement for calling it directly.  We've worked around this in the stdlib by making calls to private APIs, but that won't work so well for the community at large.

The importlib._bootstrap._SpecMethods class is one we had considered making public, but decided to defer that decision until people demonstrated an interest/need.

At this point in the 3.4 release cycle I'm not sure how much we can do about it.  Adding something like the following would be easy, but then we'd be stuck indefinitely with an API that we may just deprecate in 3.5 (a one-hit wonder), though that might be the lesser evil.

def load_from_spec(spec):
    _spec = importlib._bootstrap._SpecMethods(spec)
    return _spec.load()

Adding that as a recipe to the load_module() docs wouldn't work too well either, since we'd still be advocating the use of a private API as a workaround.

To be honest, I'll have to defer to Brett, Nick, et al. on this one.  They have the experience to know the best approach to take here.  I just haven't been in the majors long enough.

(Where'd Guido put the keys to that time machine?)
History
Date User Action Args
2014-01-05 02:17:52eric.snowsetrecipients: + eric.snow, brett.cannon, ncoghlan, Arfrever
2014-01-05 02:17:52eric.snowsetmessageid: <1388888272.45.0.255353824658.issue20125@psf.upfronthosting.co.za>
2014-01-05 02:17:52eric.snowlinkissue20125 messages
2014-01-05 02:17:50eric.snowcreate