
On 18 Mar 2014 03:16, "Antoine Pitrou" <solipsis@pitrou.net> wrote:
On Tue, 18 Mar 2014 02:36:31 +1000 Nick Coghlan <ncoghlan@gmail.com> wrote:
On 18 Mar 2014 01:59, "C Anthony Risinger" <anthony@xtfx.me> wrote:
ok, let me try this again, sans distractions:
could we consider adding __code__ and __call__ to module objects?
__code__ would contain the code executed in the module __dict__, and __call__ would reload the module.
thoughts?
The question to ask is: what would such a change make possible that importlib doesn't already handle?
I suppose module.__code__ would be a lot less wasteful than module.__loader__.get_code(module.__name__) (which seems to reload the bytecode from disk every time).
Yep, it's a space/speed trade-off - keeping this info around could waste a lot of memory, and most code will never need it. It's a similar reason to why we throw source code away after compiling it, but then also route inspect.getsource() through the linecache module. Cheers, Nick.
(while looking at this, I was surprised that dis.dis(some_module) 1) doesn't show a disassembly for the module toplevel 2) shows disassembly for objects which some_module imports from other modules)
I don't think we have any tests to see how dis.dis behaves with module objects - it's likely just hitting the path that is designed to disassemble all methods on a class. (We throw away the bytecode after execution for classes as well) Cheers, Nick.
Regards
Antoine.
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/