Update NEWS, docs, and patchlevel for 3.7.0b1
diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py
index dc9591a..a979931 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Mon Jan  8 21:23:03 2018
+# Autogenerated by Sphinx on Tue Jan 30 18:36:07 2018
 topics = {'assert': 'The "assert" statement\n'
            '**********************\n'
            '\n'
@@ -629,6 +629,18 @@
                      'dictionary) is\n'
                      '  unaffected.\n'
                      '\n'
+                     'Changed in version 3.5: "__class__" module attribute is '
+                     'now writable.\n'
+                     '\n'
+                     'New in version 3.7: "__getattr__" and "__dir__" module '
+                     'attributes.\n'
+                     '\n'
+                     'See also:\n'
+                     '\n'
+                     '  **PEP 562** - Module __getattr__ and __dir__\n'
+                     '     Describes the "__getattr__" and "__dir__" functions '
+                     'on modules.\n'
+                     '\n'
                      '\n'
                      'Implementing Descriptors\n'
                      '========================\n'
@@ -2512,17 +2524,23 @@
              'have\n'
              '"return" annotation of the form ""-> expression"" after the '
              'parameter\n'
-             'list.  These annotations can be any valid Python expression and '
-             'are\n'
-             'evaluated when the function definition is executed.  Annotations '
-             'may\n'
-             'be evaluated in a different order than they appear in the source '
-             'code.\n'
-             'The presence of annotations does not change the semantics of a\n'
-             'function.  The annotation values are available as values of a\n'
-             "dictionary keyed by the parameters' names in the "
-             '"__annotations__"\n'
-             'attribute of the function object.\n'
+             'list.  These annotations can be any valid Python expression.  '
+             'The\n'
+             'presence of annotations does not change the semantics of a '
+             'function.\n'
+             'The annotation values are available as values of a dictionary '
+             'keyed by\n'
+             'the parameters\' names in the "__annotations__" attribute of '
+             'the\n'
+             'function object.  If the "annotations" import from "__future__" '
+             'is\n'
+             'used, annotations are preserved as strings at runtime which '
+             'enables\n'
+             'postponed evaluation.  Otherwise, they are evaluated when the '
+             'function\n'
+             'definition is executed.  In this case annotations may be '
+             'evaluated in\n'
+             'a different order than they appear in the source code.\n'
              '\n'
              'It is also possible to create anonymous functions (functions not '
              'bound\n'
@@ -2554,6 +2572,21 @@
              '  **PEP 3107** - Function Annotations\n'
              '     The original specification for function annotations.\n'
              '\n'
+             '  **PEP 484** - Type Hints\n'
+             '     Definition of a standard meaning for annotations: type '
+             'hints.\n'
+             '\n'
+             '  **PEP 526** - Syntax for Variable Annotations\n'
+             '     Ability to type hint variable declarations, including '
+             'class\n'
+             '     variables and instance variables\n'
+             '\n'
+             '  **PEP 563** - Postponed Evaluation of Annotations\n'
+             '     Support for forward references within annotations by '
+             'preserving\n'
+             '     annotations in a string form at runtime instead of eager\n'
+             '     evaluation.\n'
+             '\n'
              '\n'
              'Class definitions\n'
              '=================\n'
@@ -3748,33 +3781,30 @@
              '      (com) end\n'
              '      (Pdb)\n'
              '\n'
-             '   To remove all commands from a breakpoint, type commands and '
-             'follow\n'
-             '   it immediately with "end"; that is, give no commands.\n'
+             '   To remove all commands from a breakpoint, type "commands" '
+             'and\n'
+             '   follow it immediately with "end"; that is, give no commands.\n'
              '\n'
-             '   With no *bpnumber* argument, commands refers to the last '
-             'breakpoint\n'
-             '   set.\n'
+             '   With no *bpnumber* argument, "commands" refers to the last\n'
+             '   breakpoint set.\n'
              '\n'
              '   You can use breakpoint commands to start your program up '
              'again.\n'
-             '   Simply use the continue command, or step, or any other '
-             'command that\n'
-             '   resumes execution.\n'
+             '   Simply use the "continue" command, or "step", or any other '
+             'command\n'
+             '   that resumes execution.\n'
              '\n'
              '   Specifying any command resuming execution (currently '
-             'continue,\n'
-             '   step, next, return, jump, quit and their abbreviations) '
-             'terminates\n'
-             '   the command list (as if that command was immediately followed '
-             'by\n'
-             '   end). This is because any time you resume execution (even '
-             'with a\n'
-             '   simple next or step), you may encounter another '
-             'breakpoint—which\n'
-             '   could have its own command list, leading to ambiguities about '
-             'which\n'
-             '   list to execute.\n'
+             '"continue",\n'
+             '   "step", "next", "return", "jump", "quit" and their '
+             'abbreviations)\n'
+             '   terminates the command "list" (as if that command was '
+             'immediately\n'
+             '   followed by end). This is because any time you resume '
+             'execution\n'
+             '   (even with a simple next or step), you may encounter another\n'
+             '   breakpoint—which could have its own command list, leading to\n'
+             '   ambiguities about which list to execute.\n'
              '\n'
              "   If you use the 'silent' command in the command list, the "
              'usual\n'
@@ -5506,17 +5536,23 @@
              'have\n'
              '"return" annotation of the form ""-> expression"" after the '
              'parameter\n'
-             'list.  These annotations can be any valid Python expression and '
-             'are\n'
-             'evaluated when the function definition is executed.  Annotations '
-             'may\n'
-             'be evaluated in a different order than they appear in the source '
-             'code.\n'
-             'The presence of annotations does not change the semantics of a\n'
-             'function.  The annotation values are available as values of a\n'
-             "dictionary keyed by the parameters' names in the "
-             '"__annotations__"\n'
-             'attribute of the function object.\n'
+             'list.  These annotations can be any valid Python expression.  '
+             'The\n'
+             'presence of annotations does not change the semantics of a '
+             'function.\n'
+             'The annotation values are available as values of a dictionary '
+             'keyed by\n'
+             'the parameters\' names in the "__annotations__" attribute of '
+             'the\n'
+             'function object.  If the "annotations" import from "__future__" '
+             'is\n'
+             'used, annotations are preserved as strings at runtime which '
+             'enables\n'
+             'postponed evaluation.  Otherwise, they are evaluated when the '
+             'function\n'
+             'definition is executed.  In this case annotations may be '
+             'evaluated in\n'
+             'a different order than they appear in the source code.\n'
              '\n'
              'It is also possible to create anonymous functions (functions not '
              'bound\n'
@@ -5546,7 +5582,22 @@
              'See also:\n'
              '\n'
              '  **PEP 3107** - Function Annotations\n'
-             '     The original specification for function annotations.\n',
+             '     The original specification for function annotations.\n'
+             '\n'
+             '  **PEP 484** - Type Hints\n'
+             '     Definition of a standard meaning for annotations: type '
+             'hints.\n'
+             '\n'
+             '  **PEP 526** - Syntax for Variable Annotations\n'
+             '     Ability to type hint variable declarations, including '
+             'class\n'
+             '     variables and instance variables\n'
+             '\n'
+             '  **PEP 563** - Postponed Evaluation of Annotations\n'
+             '     Support for forward references within annotations by '
+             'preserving\n'
+             '     annotations in a string form at runtime instead of eager\n'
+             '     evaluation.\n',
  'global': 'The "global" statement\n'
            '**********************\n'
            '\n'
@@ -6019,11 +6070,16 @@
            '\n'
            '* other future statements.\n'
            '\n'
-           'The features recognized by Python 3.0 are "absolute_import",\n'
-           '"division", "generators", "unicode_literals", "print_function",\n'
-           '"nested_scopes" and "with_statement".  They are all redundant '
-           'because\n'
-           'they are always enabled, and only kept for backwards '
+           'The only feature in Python 3.7 that requires using the future\n'
+           'statement is "annotations".\n'
+           '\n'
+           'All historical features enabled by the future statement are still\n'
+           'recognized by Python 3.  The list includes "absolute_import",\n'
+           '"division", "generators", "generator_stop", "unicode_literals",\n'
+           '"print_function", "nested_scopes" and "with_statement".  They are '
+           'all\n'
+           'redundant because they are always enabled, and only kept for '
+           'backwards\n'
            'compatibility.\n'
            '\n'
            'A future statement is recognized and treated specially at compile\n'
@@ -8146,6 +8202,18 @@
                  'dictionary) is\n'
                  '  unaffected.\n'
                  '\n'
+                 'Changed in version 3.5: "__class__" module attribute is now '
+                 'writable.\n'
+                 '\n'
+                 'New in version 3.7: "__getattr__" and "__dir__" module '
+                 'attributes.\n'
+                 '\n'
+                 'See also:\n'
+                 '\n'
+                 '  **PEP 562** - Module __getattr__ and __dir__\n'
+                 '     Describes the "__getattr__" and "__dir__" functions on '
+                 'modules.\n'
+                 '\n'
                  '\n'
                  'Implementing Descriptors\n'
                  '------------------------\n'
@@ -9547,6 +9615,27 @@
                    '   formatting options that can be specified in format '
                    'strings.\n'
                    '\n'
+                   '   Note: When formatting a number ("int", "float", "float" '
+                   'and\n'
+                   '     subclasses) with the "n" type (ex: '
+                   '"\'{:n}\'.format(1234)"), the\n'
+                   '     function sets temporarily the "LC_CTYPE" locale to '
+                   'the\n'
+                   '     "LC_NUMERIC" locale to decode "decimal_point" and '
+                   '"thousands_sep"\n'
+                   '     fields of "localeconv()" if they are non-ASCII or '
+                   'longer than 1\n'
+                   '     byte, and the "LC_NUMERIC" locale is different than '
+                   'the\n'
+                   '     "LC_CTYPE" locale. This temporary change affects '
+                   'other threads.\n'
+                   '\n'
+                   '   Changed in version 3.7: When formatting a number with '
+                   'the "n" type,\n'
+                   '   the function sets temporarily the "LC_CTYPE" locale to '
+                   'the\n'
+                   '   "LC_NUMERIC" locale in some cases.\n'
+                   '\n'
                    'str.format_map(mapping)\n'
                    '\n'
                    '   Similar to "str.format(**mapping)", except that '
@@ -9598,6 +9687,16 @@
                    'Unicode\n'
                    '   Standard.\n'
                    '\n'
+                   'str.isascii()\n'
+                   '\n'
+                   '   Return true if the string is empty or all characters in '
+                   'the string\n'
+                   '   are ASCII, false otherwise. ASCII characters have code '
+                   'points in\n'
+                   '   the range U+0000-U+007F.\n'
+                   '\n'
+                   '   New in version 3.7.\n'
+                   '\n'
                    'str.isdecimal()\n'
                    '\n'
                    '   Return true if all characters in the string are decimal '