Get argparse.__all__ back up to date (issue 9353)
diff --git a/Lib/argparse.py b/Lib/argparse.py
index d556621..fa3b377 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -65,13 +65,20 @@
 __all__ = [
     'ArgumentParser',
     'ArgumentError',
-    'Namespace',
-    'Action',
+    'ArgumentTypeError',
     'FileType',
     'HelpFormatter',
+    'ArgumentDefaultsHelpFormatter',
     'RawDescriptionHelpFormatter',
     'RawTextHelpFormatter',
-    'ArgumentDefaultsHelpFormatter',
+    'Namespace',
+    'Action',
+    'ONE_OR_MORE',
+    'OPTIONAL',
+    'PARSER',
+    'REMAINDER',
+    'SUPPRESS',
+    'ZERO_OR_MORE',
 ]
 
 
diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py
index 08dd91b..358179b 100644
--- a/Lib/test/test_argparse.py
+++ b/Lib/test/test_argparse.py
@@ -1,6 +1,7 @@
 # Author: Steven J. Bethard <steven.bethard@gmail.com>.
 
 import codecs
+import inspect
 import os
 import shutil
 import sys
@@ -4245,6 +4246,15 @@
         for name in argparse.__all__:
             self.assertTrue(hasattr(argparse, name))
 
+    def test_all_exports_everything_but_modules(self):
+        items = [
+            name
+            for name, value in vars(argparse).items()
+            if not name.startswith("_")
+            if not inspect.ismodule(value)
+        ]
+        self.assertEqual(sorted(items), sorted(argparse.__all__))
+
 def test_main():
     # silence warnings about version argument - these are expected
     with support.check_warnings(