<div dir="ltr"><div><div>@Anthony</div><div>> module.__getattr__ works pretty well for normal access, after being</div><div>> imported by another module, but it doesn't properly trigger loading by</div><div>> functions defined in the module's own namespace.</div><div><br></div><div>The idea of my PEP is to be very simple (both semantically and in terms</div><div>of implementation). This is why I don't want to add any complex logic.</div><div>People who will want to use __getattr__ for lazy loading still can do this</div><div>by importing submodules.<br></div><div><br></div><div>@Nathaniel @INADA</div><div>> The main two use cases I know of for this and PEP 549 are lazy imports</div><div>> of submodules, and deprecating attributes.</div><div><br></div><div>Yes, lazy loading seems to be a popular idea :-)</div><div>I will add the simple recipe by Inada to the PEP since it will already work.<br></div><div><br></div><div>@Cody<br></div><div>> I still think the better way<br>> to 
solve the custom dir()  would be to change the module __dir__<br>> method to 
check if __all__ is defined and use it to generate the<br>> result if it 
exists. This seems like a logical enhancement to me,<br>> and I'm planning on
 writing a patch to implement this. Whether it<br>> would be accepted is 
still an open issue though.<br><br></div>This seems a reasonable rule to me, I can also make this patch if</div><div>you will not have time.</div><div><br></div><div>@Guido</div><div>What do you think about the above idea?</div><div><br></div><div>--<br></div>Ivan<br><br><br></div>