On Tue, Oct 29, 2013 at 3:32 AM, Nick Coghlan <ncogh...@gmail.com> wrote: > On 29 Oct 2013 14:45, "Eric Snow" <ericsnowcurren...@gmail.com> wrote: >> I'd rather give loaders another optional method: >> supports_reload(name). Complicating the spec methods signatures (to >> support passing the old spec through) just for the sake of reload >> seems less than optimal. I don't see any benefit to exposing the old >> spec to loader.exec_module(). > > I do: it lets the loader tell if anything changed from the previous load > operation, allowing it to make an informed decision on whether or not to > permit the reload operation or throw an exception. > > However, I accept such a check would be better implemented as a separate > yes/no method, so it makes sense to postpone this aspect to 3.5 at the > earliest.
With the PEP, loaders are no longer in charge of the module-related boilerplate. This means that by the time exec_module() gets called, they won't be able to determine for themselves if it's a reload by checking sys.modules. That's the point of adding loader.supports_reload(). (I haven't added that rationale to the PEP yet). If it makes a difference to loaders to also look at the previous spec during supports_reload(), then I think we should add that parameter now. Otherwise if we add the parameter later it makes it messier. The signature would now be: Loader.supports_reload(name, old_spec) -eric _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com