Issue #25161: Add full stops in documentation; patch by Takase Arihiro
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 067fb8f..d907203 100644
--- a/Doc/library/argparse.rst
+++ b/Doc/library/argparse.rst
@@ -1984,4 +1984,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 656816f..698d2bf 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 6f36864..e567549 100644
--- a/Doc/library/contextlib.rst
+++ b/Doc/library/contextlib.rst
@@ -543,7 +543,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 759be70..ca41c3a 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -845,7 +845,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 cf09559..1c76e87 100644
--- a/Doc/library/enum.rst
+++ b/Doc/library/enum.rst
@@ -708,7 +708,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 271a5c8..e9cab38 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -603,7 +603,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 c2c7401..3d2529d 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 646f2e8..d0c1e54 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 c84d2df..42812f6 100644
--- a/Doc/library/importlib.rst
+++ b/Doc/library/importlib.rst
@@ -717,7 +717,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 6f5f8b1..a01e636 100644
--- a/Doc/library/json.rst
+++ b/Doc/library/json.rst
@@ -337,7 +337,7 @@
    .. method:: decode(s)
 
       Return the Python representation of *s* (a :class:`str` instance
-      containing a JSON document)
+      containing a JSON document).
 
    .. method:: raw_decode(s)
 
diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst
index 9600193..b14c551b 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 d946892..9e558e5 100644
--- a/Doc/library/logging.handlers.rst
+++ b/Doc/library/logging.handlers.rst
@@ -230,7 +230,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 82de19b..3ffb7f9 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -1936,7 +1936,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`:
 
@@ -2042,7 +2042,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
@@ -2067,7 +2067,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 0f48cb1..25a9240 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 e27f2ad..66b6892 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 04afe92..2606fed 100644
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -461,7 +461,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 3024086..c0378e0 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -629,7 +629,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 75b95d9..cd4690f 100644
--- a/Doc/library/urllib.request.rst
+++ b/Doc/library/urllib.request.rst
@@ -201,7 +201,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 a9e19da..4ed9454 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -501,7 +501,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)