This is so all values in __dict__ of original module are not set to None by the module destructor when sys.modules[name] is the last reference to the original module, and is replaced during LazyLoadModule.__init__. This prevents any problems where another reference to the original module exists (such as in a PEP-302 loader).
This is a somewhat obscure problem, but I did encounter it as I am using a PEP-302 loader in Maya, and it took a couple of days to figure out. I have updated the loader to ensure no reference to the module is kept during module execution, but this also seems like a useful update to pymel.
This is so all values in __dict__ of original module are not set to None by the module destructor when sys.modules[name] is the last reference to the original module, and is replaced during LazyLoadModule.__init__. This prevents any problems where another reference to the original module exists (such as in a PEP-302 loader).
This is a somewhat obscure problem, but I did encounter it as I am using a PEP-302 loader in Maya, and it took a couple of days to figure out. I have updated the loader to ensure no reference to the module is kept during module execution, but this also seems like a useful update to pymel.