bpo-29446: tkinter 'import *' only imports what it should (GH-14864)
Add __all__ to tkinter.__init__ and submodules. Replace 'import *'
with explicit imports in some submodules.
diff --git a/Lib/tkinter/filedialog.py b/Lib/tkinter/filedialog.py
index d9d3436..dbb97dd 100644
--- a/Lib/tkinter/filedialog.py
+++ b/Lib/tkinter/filedialog.py
@@ -11,14 +11,20 @@
directory dialogue available in Tk 8.3 and newer.
These interfaces were written by Fredrik Lundh, May 1997.
"""
+__all__ = ["FileDialog", "LoadFileDialog", "SaveFileDialog",
+ "Open", "SaveAs", "Directory",
+ "askopenfilename", "asksaveasfilename", "askopenfilenames",
+ "askopenfile", "askopenfiles", "asksaveasfile", "askdirectory"]
-from tkinter import *
+import fnmatch
+import os
+from tkinter import (
+ Frame, LEFT, YES, BOTTOM, Entry, TOP, Button, Tk, X,
+ Toplevel, RIGHT, Y, END, Listbox, BOTH, Scrollbar,
+)
from tkinter.dialog import Dialog
from tkinter import commondialog
-import os
-import fnmatch
-
dialogstates = {}