Issue #25161: Merge full stops from 3.5
diff --git a/Doc/c-api/code.rst b/Doc/c-api/code.rst
index 57e8072..9c93563 100644
--- a/Doc/c-api/code.rst
+++ b/Doc/c-api/code.rst
@@ -29,7 +29,7 @@
 
 .. c:function:: int PyCode_Check(PyObject *co)
 
-   Return true if *co* is a :class:`code` object
+   Return true if *co* is a :class:`code` object.
 
 .. c:function:: int PyCode_GetNumFree(PyCodeObject *co)
 
diff --git a/Doc/c-api/gen.rst b/Doc/c-api/gen.rst
index 3ab073b..1efbae4 100644
--- a/Doc/c-api/gen.rst
+++ b/Doc/c-api/gen.rst
@@ -17,7 +17,7 @@
 
 .. c:var:: PyTypeObject PyGen_Type
 
-   The type object corresponding to generator objects
+   The type object corresponding to generator objects.
 
 
 .. c:function:: int PyGen_Check(PyObject *ob)
diff --git a/Doc/c-api/veryhigh.rst b/Doc/c-api/veryhigh.rst
index f7ed4c7..f8aaf0f 100644
--- a/Doc/c-api/veryhigh.rst
+++ b/Doc/c-api/veryhigh.rst
@@ -201,7 +201,7 @@
 .. c:function:: struct _node* PyParser_SimpleParseFile(FILE *fp, const char *filename, int start)
 
    This is a simplified interface to :c:func:`PyParser_SimpleParseFileFlags` below,
-   leaving *flags* set to ``0``
+   leaving *flags* set to ``0``.
 
 
 .. c:function:: struct _node* PyParser_SimpleParseFileFlags(FILE *fp, const char *filename, int start, int flags)
diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index 35aa114..554d2c8 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -928,7 +928,7 @@
 
    Walk two filename lists in parallel, testing if each source is newer than its
    corresponding target.  Return a pair of lists (*sources*, *targets*) where
-   source is newer than target, according to the semantics of :func:`newer`
+   source is newer than target, according to the semantics of :func:`newer`.
 
    .. % % equivalent to a listcomp...
 
diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index daaeb95..6808e7a 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -948,7 +948,7 @@
       without interfering with the behaviour of other Python applications
       running on the same system.
 
-      See also :ref:`scripts-pyvenv`
+      See also :ref:`scripts-pyvenv`.
 
    virtual machine
       A computer defined entirely in software.  Python's virtual machine
diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst
index 6473861..31f681d 100644
--- a/Doc/library/2to3.rst
+++ b/Doc/library/2to3.rst
@@ -271,7 +271,7 @@
 
 .. 2to3fixer:: input
 
-   Converts ``input(prompt)`` to ``eval(input(prompt))``
+   Converts ``input(prompt)`` to ``eval(input(prompt))``.
 
 .. 2to3fixer:: intern
 
diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst
index 72095a8..03cad9f 100644
--- a/Doc/library/argparse.rst
+++ b/Doc/library/argparse.rst
@@ -2011,4 +2011,4 @@
   ``%(default)s`` and ``%(prog)s``.
 
 * Replace the OptionParser constructor ``version`` argument with a call to
-  ``parser.add_argument('--version', action='version', version='<the version>')``
+  ``parser.add_argument('--version', action='version', version='<the version>')``.
diff --git a/Doc/library/asyncio-protocol.rst b/Doc/library/asyncio-protocol.rst
index 18aeafa..93694f3 100644
--- a/Doc/library/asyncio-protocol.rst
+++ b/Doc/library/asyncio-protocol.rst
@@ -232,7 +232,7 @@
 
    .. method:: kill(self)
 
-      Kill the subprocess, as in :meth:`subprocess.Popen.kill`
+      Kill the subprocess, as in :meth:`subprocess.Popen.kill`.
 
       On POSIX systems, the function sends SIGKILL to the subprocess.
       On Windows, this method is an alias for :meth:`terminate`.
diff --git a/Doc/library/bdb.rst b/Doc/library/bdb.rst
index 7229087..8ee9921 100644
--- a/Doc/library/bdb.rst
+++ b/Doc/library/bdb.rst
@@ -231,7 +231,7 @@
    .. method:: set_until(frame)
 
       Stop when the line with the line no greater than the current one is
-      reached or when returning from current frame
+      reached or when returning from current frame.
 
    .. method:: set_trace([frame])
 
diff --git a/Doc/library/contextlib.rst b/Doc/library/contextlib.rst
index 550b347..38f3782 100644
--- a/Doc/library/contextlib.rst
+++ b/Doc/library/contextlib.rst
@@ -553,7 +553,7 @@
 
 Due to the way the decorator protocol works, a callback function
 declared this way cannot take any parameters. Instead, any resources to
-be released must be accessed as closure variables
+be released must be accessed as closure variables.
 
 
 Using a context manager as a function decorator
diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst
index 5d7ffff..2de0ea0 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -841,7 +841,7 @@
 
       Engineering notation has an exponent which is a multiple of 3, so there
       are up to 3 digits left of the decimal place.  For example, converts
-      ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``
+      ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``.
 
    .. method:: to_integral(rounding=None, context=None)
 
diff --git a/Doc/library/email.charset.rst b/Doc/library/email.charset.rst
index 19a6953..80ef3d6 100644
--- a/Doc/library/email.charset.rst
+++ b/Doc/library/email.charset.rst
@@ -234,5 +234,5 @@
 
    *charset* is the canonical name of a character set. *codecname* is the name of a
    Python codec, as appropriate for the second argument to the :class:`str`'s
-   :meth:`~str.encode` method
+   :meth:`~str.encode` method.
 
diff --git a/Doc/library/enum.rst b/Doc/library/enum.rst
index 9b4f9b4..18519f0 100644
--- a/Doc/library/enum.rst
+++ b/Doc/library/enum.rst
@@ -714,7 +714,7 @@
 class, such as `list(Color)` or `some_var in Color`.  :class:`EnumMeta` is
 responsible for ensuring that various other methods on the final :class:`Enum`
 class are correct (such as :meth:`__new__`, :meth:`__getnewargs__`,
-:meth:`__str__` and :meth:`__repr__`)
+:meth:`__str__` and :meth:`__repr__`).
 
 
 Enum Members (aka instances)
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index 0a422b2..e9e68b9 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -635,7 +635,7 @@
 
 .. exception:: SyntaxWarning
 
-   Base class for warnings about dubious syntax
+   Base class for warnings about dubious syntax.
 
 
 .. exception:: RuntimeWarning
diff --git a/Doc/library/fractions.rst b/Doc/library/fractions.rst
index e0f0682..d24f80a 100644
--- a/Doc/library/fractions.rst
+++ b/Doc/library/fractions.rst
@@ -97,7 +97,7 @@
 
       This class method constructs a :class:`Fraction` representing the exact
       value of *flt*, which must be a :class:`float`. Beware that
-      ``Fraction.from_float(0.3)`` is not the same value as ``Fraction(3, 10)``
+      ``Fraction.from_float(0.3)`` is not the same value as ``Fraction(3, 10)``.
 
       .. note::
 
diff --git a/Doc/library/http.cookiejar.rst b/Doc/library/http.cookiejar.rst
index 1f6b1ba..30648ac 100644
--- a/Doc/library/http.cookiejar.rst
+++ b/Doc/library/http.cookiejar.rst
@@ -540,7 +540,7 @@
 
 .. attribute:: DefaultCookiePolicy.strict_ns_unverifiable
 
-   apply RFC 2965 rules on unverifiable transactions even to Netscape cookies
+   Apply RFC 2965 rules on unverifiable transactions even to Netscape cookies.
 
 
 .. attribute:: DefaultCookiePolicy.strict_ns_domain
diff --git a/Doc/library/http.cookies.rst b/Doc/library/http.cookies.rst
index 7c85d09..c2bb80d 100644
--- a/Doc/library/http.cookies.rst
+++ b/Doc/library/http.cookies.rst
@@ -84,7 +84,7 @@
 
    Return an encoded value. *val* can be any type, but return value must be a
    string. This method does nothing in :class:`BaseCookie` --- it exists so it can
-   be overridden
+   be overridden.
 
    In general, it should be the case that :meth:`value_encode` and
    :meth:`value_decode` are inverses on the range of *value_decode*.
diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst
index 632df75..da61353 100644
--- a/Doc/library/importlib.rst
+++ b/Doc/library/importlib.rst
@@ -747,7 +747,7 @@
    modules recognized by the standard import machinery. This is a
    helper for code which simply needs to know if a filesystem path
    potentially refers to a module without needing any details on the kind
-   of module (for example, :func:`inspect.getmodulename`)
+   of module (for example, :func:`inspect.getmodulename`).
 
    .. versionadded:: 3.3
 
diff --git a/Doc/library/json.rst b/Doc/library/json.rst
index 49bb090..d62f14b 100644
--- a/Doc/library/json.rst
+++ b/Doc/library/json.rst
@@ -339,7 +339,7 @@
    .. method:: decode(s)
 
       Return the Python representation of *s* (a :class:`str` instance
-      containing a JSON document)
+      containing a JSON document).
 
       :exc:`JSONDecodeError` will be raised if the given JSON document is not
       valid.
diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst
index bc7f5f9..61b79fa 100644
--- a/Doc/library/locale.rst
+++ b/Doc/library/locale.rst
@@ -204,7 +204,7 @@
 
    .. data:: RADIXCHAR
 
-      Get the radix character (decimal dot, decimal comma, etc.)
+      Get the radix character (decimal dot, decimal comma, etc.).
 
    .. data:: THOUSEP
 
diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst
index c830efd..446a070 100644
--- a/Doc/library/logging.handlers.rst
+++ b/Doc/library/logging.handlers.rst
@@ -238,7 +238,7 @@
       renamed to the destination.
 
       :param source: The source filename. This is normally the base
-                     filename, e.g. 'test.log'
+                     filename, e.g. 'test.log'.
       :param dest:   The destination filename. This is normally
                      what the source is rotated to, e.g. 'test.log.1'.
 
diff --git a/Doc/library/modulefinder.rst b/Doc/library/modulefinder.rst
index 0656b37..e84a496 100644
--- a/Doc/library/modulefinder.rst
+++ b/Doc/library/modulefinder.rst
@@ -53,7 +53,7 @@
    .. attribute:: modules
 
       A dictionary mapping module names to modules. See
-      :ref:`modulefinder-example`
+      :ref:`modulefinder-example`.
 
 
 .. _modulefinder-example:
diff --git a/Doc/library/msvcrt.rst b/Doc/library/msvcrt.rst
index 9d23720..fadaf05 100644
--- a/Doc/library/msvcrt.rst
+++ b/Doc/library/msvcrt.rst
@@ -18,7 +18,7 @@
 The module implements both the normal and wide char variants of the console I/O
 api. The normal API deals only with ASCII characters and is of limited use
 for internationalized applications. The wide char API should be used where
-ever possible
+ever possible.
 
 .. versionchanged:: 3.3
    Operations in this module now raise :exc:`OSError` where :exc:`IOError`
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index 140a835..3c320ca 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -1944,7 +1944,7 @@
       raised by :meth:`_callmethod`.
 
       Note in particular that an exception will be raised if *methodname* has
-      not been *exposed*
+      not been *exposed*.
 
       An example of the usage of :meth:`_callmethod`:
 
@@ -2050,7 +2050,7 @@
       If *callback* is specified then it should be a callable which accepts a
       single argument.  When the result becomes ready *callback* is applied to
       it, that is unless the call failed, in which case the *error_callback*
-      is applied instead
+      is applied instead.
 
       If *error_callback* is specified then it should be a callable which
       accepts a single argument.  If the target function fails, then
@@ -2075,7 +2075,7 @@
       If *callback* is specified then it should be a callable which accepts a
       single argument.  When the result becomes ready *callback* is applied to
       it, that is unless the call failed, in which case the *error_callback*
-      is applied instead
+      is applied instead.
 
       If *error_callback* is specified then it should be a callable which
       accepts a single argument.  If the target function fails, then
diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst
index a92526f..f862065 100644
--- a/Doc/library/pickle.rst
+++ b/Doc/library/pickle.rst
@@ -235,7 +235,7 @@
 .. function:: loads(bytes_object, \*, fix_imports=True, encoding="ASCII", errors="strict")
 
    Read a pickled object hierarchy from a :class:`bytes` object and return the
-   reconstituted object hierarchy specified therein
+   reconstituted object hierarchy specified therein.
 
    The protocol version of the pickle is detected automatically, so no
    protocol argument is needed.  Bytes past the pickled object's
diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst
index 679cc6b..e679317 100644
--- a/Doc/library/platform.rst
+++ b/Doc/library/platform.rst
@@ -117,7 +117,7 @@
 
 .. function:: python_version()
 
-   Returns the Python version as string ``'major.minor.patchlevel'``
+   Returns the Python version as string ``'major.minor.patchlevel'``.
 
    Note that unlike the Python ``sys.version``, the returned value will always
    include the patchlevel (it defaults to 0).
diff --git a/Doc/library/plistlib.rst b/Doc/library/plistlib.rst
index 4165591..2c1f3dd 100644
--- a/Doc/library/plistlib.rst
+++ b/Doc/library/plistlib.rst
@@ -194,7 +194,7 @@
    It has one attribute, :attr:`data`, that can be used to retrieve the Python
    bytes object stored in it.
 
-   .. deprecated:: 3.4 Use a :class:`bytes` object instead
+   .. deprecated:: 3.4 Use a :class:`bytes` object instead.
 
 
 The following constants are available:
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst
index 3b467e0..bf221bf 100644
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -497,7 +497,7 @@
 .. function:: get_archive_formats()
 
    Return a list of supported formats for archiving.
-   Each element of the returned sequence is a tuple ``(name, description)``
+   Each element of the returned sequence is a tuple ``(name, description)``.
 
    By default :mod:`shutil` provides these formats:
 
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index bb9bdc8..72f5d1f 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -641,7 +641,7 @@
    :term:`struct sequence`  :data:`sys.version_info` may be used for a more
    human-friendly encoding of the same information.
 
-   More details of ``hexversion`` can be found at :ref:`apiabiversion`
+   More details of ``hexversion`` can be found at :ref:`apiabiversion`.
 
 
 .. data:: implementation
diff --git a/Doc/library/tkinter.ttk.rst b/Doc/library/tkinter.ttk.rst
index ab8a9a9..4601171 100644
--- a/Doc/library/tkinter.ttk.rst
+++ b/Doc/library/tkinter.ttk.rst
@@ -110,8 +110,9 @@
    | class     | Specifies the window class. The class is used when querying  |
    |           | the option database for the window's other options, to       |
    |           | determine the default bindtags for the window, and to select |
-   |           | the widget's default layout and style. This is a read-only   |
-   |           | which may only be specified when the window is created       |
+   |           | the widget's default layout and style. This option is        |
+   |           | read-only, and may only be specified when the window is      |
+   |           | created.                                                     |
    +-----------+--------------------------------------------------------------+
    | cursor    | Specifies the mouse cursor to be used for the widget. If set |
    |           | to the empty string (the default), the cursor is inherited   |
diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
index 349ba70..18df078 100644
--- a/Doc/library/urllib.request.rst
+++ b/Doc/library/urllib.request.rst
@@ -202,7 +202,7 @@
    ``"Python-urllib/2.6"`` (on Python 2.6).
 
    An example of using ``Content-Type`` header with *data* argument would be
-   sending a dictionary like ``{"Content-Type":" application/x-www-form-urlencoded;charset=utf-8"}``
+   sending a dictionary like ``{"Content-Type":" application/x-www-form-urlencoded;charset=utf-8"}``.
 
    The final two arguments are only of interest for correct handling
    of third-party HTTP cookies:
diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst
index de74c30..8c091f6 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -506,7 +506,7 @@
 
    Similar to :class:`BaseCGIHandler`, but designed for use with HTTP origin
    servers.  If you are writing an HTTP server implementation, you will probably
-   want to subclass this instead of :class:`BaseCGIHandler`
+   want to subclass this instead of :class:`BaseCGIHandler`.
 
    This class is a subclass of :class:`BaseHandler`.  It overrides the
    :meth:`__init__`, :meth:`get_stdin`, :meth:`get_stderr`, :meth:`add_cgi_vars`,
diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst
index ff5c270..dcd030c 100644
--- a/Doc/library/xml.dom.minidom.rst
+++ b/Doc/library/xml.dom.minidom.rst
@@ -15,7 +15,7 @@
 Model interface, with an API similar to that in other languages.  It is intended
 to be simpler than the full DOM and also significantly smaller.  Users who are
 not already proficient with the DOM should consider using the
-:mod:`xml.etree.ElementTree` module for their XML processing instead
+:mod:`xml.etree.ElementTree` module for their XML processing instead.
 
 
 .. warning::
diff --git a/Doc/library/xml.dom.rst b/Doc/library/xml.dom.rst
index 4914738..a432202 100644
--- a/Doc/library/xml.dom.rst
+++ b/Doc/library/xml.dom.rst
@@ -304,7 +304,7 @@
 .. attribute:: Node.prefix
 
    The part of the :attr:`tagName` preceding the colon if there is one, else the
-   empty string.  The value is a string, or ``None``
+   empty string.  The value is a string, or ``None``.
 
 
 .. attribute:: Node.namespaceURI
diff --git a/Doc/library/xml.etree.elementtree.rst b/Doc/library/xml.etree.elementtree.rst
index 14e5c99..dc0274e 100644
--- a/Doc/library/xml.etree.elementtree.rst
+++ b/Doc/library/xml.etree.elementtree.rst
@@ -891,7 +891,7 @@
 
       Creates and returns a tree iterator for the root element.  The iterator
       loops over all elements in this tree, in section order.  *tag* is the tag
-      to look for (default is to return all elements)
+      to look for (default is to return all elements).
 
 
    .. method:: iterfind(match, namespaces=None)
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index e1d71b8..e5e25a8 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -1320,7 +1320,7 @@
      object's   :meth:`__hash__` must interoperate on builds of different bit
      sizes, be sure to check the width on all supported builds.  An easy way
      to do this is with
-     ``python -c "import sys; print(sys.hash_info.width)"``
+     ``python -c "import sys; print(sys.hash_info.width)"``.
 
    If a class does not define an :meth:`__eq__` method it should not define a
    :meth:`__hash__` operation either; if it defines :meth:`__eq__` but not
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index 5c33ce6..99fa037 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -371,7 +371,7 @@
 (by returning a value from the sub-generator).
 
    .. versionchanged:: 3.3
-      Added ``yield from <expr>`` to delegate control flow to a subiterator
+      Added ``yield from <expr>`` to delegate control flow to a subiterator.
 
 The parentheses may be omitted when the yield expression is the sole expression
 on the right hand side of an assignment statement.
diff --git a/Misc/ACKS b/Misc/ACKS
index 221d6e2..aa80077 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1408,6 +1408,7 @@
 Maciej Szulik
 Arfrever Frehtes Taifersar Arahesis
 Hideaki Takahashi
+Takase Arihiro
 Indra Talip
 Neil Tallim
 Geoff Talvola