Similar considerations potentially apply to other packages as well. The __all__ attribute was added to 50 out of 138 __init__.py files that didn't already have it. Obviously the top-level __init__.py is the most significant though.
On Thu, 14 May 2020 at 20:23, Oscar Benjamin <oscar.j.benja...@gmail.com> wrote: > > On Thu, 14 May 2020 at 19:57, Jason Moore <moorepa...@gmail.com> wrote: > > > > Is it possible to give a blanket deprecation warning if anyone does an > > import with a `*`? It could warn the user that functionality will change in > > the next version such that modules are not accessible via star imports. > > I think that using "from sympy import *" should be fine. We should > stop putting all of the names there and design and document a coherent > way to import things from the different packages but as long as almost > all the functions most users want are at top-level they should be able > to use star import to get them. Many more users would be affected by > deprecating star-import in general than by removing the submodules > from the star import. > > If we want to be extra-cautious here then we could do this: > > 1. Explicitly import all of the packages like sympy.physics that are > implicitly exported in 1.5 and add them to __all__ in > sympy/__init__.py. Those would then continue to be imported by "from > sympy import *". > > 2. Make a wrapper object for each of the sympy.x.y modules that are > implicitly exported in 1.5 that gives a deprecation warning on access > and add them to __all__ as well. Those would continue to be imported > by "from sympy import *" but would give a warning when used e.g.: > > >>> from sympy import * > >>> add.Add > DeprecationWarning: Import the add module as "import sympy.core.add as > add" or "from sympy.core import add" not "from sympy import *" or > "from sympy import add". > > -- > Oscar -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAHVvXxSA6enwE-e0u9h7vfSRDnz0%3DcDiqTpqdACNNFvm8ijFTg%40mail.gmail.com.