> On 26 Jul 2019, at 20:58, Eric V. Smith <[email protected]> wrote: > > On 7/26/2019 2:50 PM, Anders Hovmöller wrote: >>> On 26 Jul 2019, at 20:34, Serhiy Storchaka <[email protected]> wrote: >>> >>> 26.07.19 21:10, Anders Hovmöller пише: >>>> This doesn't really solve the problem imo. Imported symbols shouldn't be i >>>> portable elsewhere. Not by import * or explicitly. That's the problem. >>> >>> I do not think that this is always a problem. It is common to refactor the >>> code by defining names in submodules and then importing them in the main >>> module. For example, in `json/__init__.py`: >>> >>> from .decoder import JSONDecoder, JSONDecodeError >>> from .encoder import JSONEncoder >>> >>> It is possible even to use a star import. >>> >>> So this change would break much more code. >> I believe I covered that in my last email. I'll repeat it here for clarity: >> if you indent to re-export you can do that explicitly: >> from foo import bar >> bar = bar > > I think breaking a whole lot of existing code is a bad idea.
I don't think it's that common that code would break for this. If it does the fixed code is very likely better (except in libs where some API is exposed but implented in another module). And the length of the deprecation period is tweakable. We can set it for 30 years if we want. / Anders _______________________________________________ Python-ideas mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/[email protected]/message/KPXZ5B4XMBY2ZGFLMIXLKTW42GXRTVFI/ Code of Conduct: http://python.org/psf/codeofconduct/
