https://github.com/python/cpython/commit/b1accd51d8071d1337671e8ad12d1e1bbe5c7fa4
commit: b1accd51d8071d1337671e8ad12d1e1bbe5c7fa4
branch: 3.14
author: Stan Ulbrych <[email protected]>
committer: AlexWaygood <[email protected]>
date: 2026-02-17T12:53:42Z
summary:

[3.14] Fix typos and grammar errors across documentation (GH-144709) (#144801)

(cherry picked from commit 3718f4be60ebb0725b35f597a9de3f7a93ba9f72)

Co-authored-by: Ronald Eddy Jr <[email protected]>

files:
M Doc/bugs.rst
M Doc/c-api/float.rst
M Doc/c-api/init.rst
M Doc/c-api/init_config.rst
M Doc/c-api/intro.rst
M Doc/c-api/structures.rst
M Doc/c-api/veryhigh.rst
M Doc/deprecations/pending-removal-in-3.15.rst
M Doc/glossary.rst
M Doc/library/mailbox.rst
M Doc/library/multiprocessing.rst
M Doc/library/os.rst
M Doc/library/pickle.rst
M Doc/library/pyexpat.rst
M Doc/library/resource.rst
M Doc/library/secrets.rst
M Doc/library/select.rst
M Doc/library/selectors.rst
M Doc/library/shelve.rst
M Doc/library/shlex.rst
M Doc/library/shutil.rst
M Doc/library/signal.rst
M Doc/library/site.rst
M Doc/library/socket.rst
M Doc/library/sqlite3.rst
M Doc/library/sys.rst
M Doc/library/trace.rst
M Doc/library/tracemalloc.rst
M Doc/library/typing.rst
M Doc/library/xml.dom.minidom.rst
M Doc/library/xmlrpc.server.rst
M Doc/tutorial/classes.rst
M Doc/tutorial/controlflow.rst
M Doc/tutorial/whatnow.rst

diff --git a/Doc/bugs.rst b/Doc/bugs.rst
index 1d27579e53f4ef..9f2b9876ba51dc 100644
--- a/Doc/bugs.rst
+++ b/Doc/bugs.rst
@@ -9,7 +9,7 @@ stability.  In order to maintain this reputation, the 
developers would like to
 know of any deficiencies you find in Python.
 
 It can be sometimes faster to fix bugs yourself and contribute patches to
-Python as it streamlines the process and involves less people. Learn how to
+Python as it streamlines the process and involves fewer people. Learn how to
 :ref:`contribute <contributing-to-python>`.
 
 Documentation bugs
diff --git a/Doc/c-api/float.rst b/Doc/c-api/float.rst
index 51540004c93db6..75ea3d819d3819 100644
--- a/Doc/c-api/float.rst
+++ b/Doc/c-api/float.rst
@@ -80,7 +80,7 @@ Floating-Point Objects
 
 .. c:macro:: Py_INFINITY
 
-   This macro expands a to constant expression of type :c:expr:`double`, that
+   This macro expands to a constant expression of type :c:expr:`double`, that
    represents the positive infinity.
 
    On most platforms, this is equivalent to the :c:macro:`!INFINITY` macro from
@@ -89,7 +89,7 @@ Floating-Point Objects
 
 .. c:macro:: Py_NAN
 
-   This macro expands a to constant expression of type :c:expr:`double`, that
+   This macro expands to a constant expression of type :c:expr:`double`, that
    represents a quiet not-a-number (qNaN) value.
 
    On most platforms, this is equivalent to the :c:macro:`!NAN` macro from
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 1559f1c8fcd6dd..8b218993a5ac82 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -431,7 +431,7 @@ Initializing and finalizing the interpreter
 
    Note that Python will do a best effort at freeing all memory allocated by 
the Python
    interpreter.  Therefore, any C-Extension should make sure to correctly 
clean up all
-   of the preveiously allocated PyObjects before using them in subsequent 
calls to
+   of the previously allocated PyObjects before using them in subsequent calls 
to
    :c:func:`Py_Initialize`.  Otherwise it could introduce vulnerabilities and 
incorrect
    behavior.
 
@@ -1592,7 +1592,7 @@ All of the following functions must be called after 
:c:func:`Py_Initialize`.
 
    Get the current interpreter.
 
-   Issue a fatal error if there no :term:`attached thread state`.
+   Issue a fatal error if there is no :term:`attached thread state`.
    It cannot return NULL.
 
    .. versionadded:: 3.9
@@ -2163,7 +2163,7 @@ Python-level trace functions in previous versions.
    *what* when after any bytecode is processed after which the exception 
becomes
    set within the frame being executed.  The effect of this is that as 
exception
    propagation causes the Python stack to unwind, the callback is called upon
-   return to each frame as the exception propagates.  Only trace functions 
receives
+   return to each frame as the exception propagates.  Only trace functions 
receive
    these events; they are not needed by the profiler.
 
 
@@ -2291,7 +2291,7 @@ Reference tracing
    the tracer function is called. Return ``0`` on success. Set an exception and
    return ``-1`` on error.
 
-   Not that tracer functions **must not** create Python objects inside or
+   Note that tracer functions **must not** create Python objects inside or
    otherwise the call will be re-entrant. The tracer also **must not** clear
    any existing exception or set an exception.  A :term:`thread state` will be 
active
    every time the tracer function is called.
diff --git a/Doc/c-api/init_config.rst b/Doc/c-api/init_config.rst
index 424d7de7089152..9b1b88b2f8dd03 100644
--- a/Doc/c-api/init_config.rst
+++ b/Doc/c-api/init_config.rst
@@ -544,9 +544,9 @@ Configuration Options
 
 Visibility:
 
-* Public: Can by get by :c:func:`PyConfig_Get` and set by
+* Public: Can be retrieved by :c:func:`PyConfig_Get` and set by
   :c:func:`PyConfig_Set`.
-* Read-only: Can by get by :c:func:`PyConfig_Get`, but cannot be set by
+* Read-only: Can be retrieved by :c:func:`PyConfig_Get`, but cannot be set by
   :c:func:`PyConfig_Set`.
 
 
@@ -1155,7 +1155,7 @@ PyConfig
 
    Most ``PyConfig`` methods :ref:`preinitialize Python <c-preinit>` if needed.
    In that case, the Python preinitialization configuration
-   (:c:type:`PyPreConfig`) in based on the :c:type:`PyConfig`. If configuration
+   (:c:type:`PyPreConfig`) is based on the :c:type:`PyConfig`. If configuration
    fields which are in common with :c:type:`PyPreConfig` are tuned, they must
    be set before calling a :c:type:`PyConfig` method:
 
diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst
index dcccc8b6493eb7..d73377fb6e6173 100644
--- a/Doc/c-api/intro.rst
+++ b/Doc/c-api/intro.rst
@@ -180,7 +180,7 @@ Docstring macros
 General utility macros
 ----------------------
 
-The following macros common tasks not specific to Python.
+The following macros are for common tasks not specific to Python.
 
 .. c:macro:: Py_UNUSED(arg)
 
@@ -277,7 +277,7 @@ Assertion utilities
    In debug mode, and on unsupported compilers, the macro expands to a call to
    :c:func:`Py_FatalError`.
 
-   A use for ``Py_UNREACHABLE()`` is following a call a function that
+   A use for ``Py_UNREACHABLE()`` is following a call to a function that
    never returns but that is not declared ``_Noreturn``.
 
    If a code path is very unlikely code but can be reached under exceptional
diff --git a/Doc/c-api/structures.rst b/Doc/c-api/structures.rst
index b4e7cb1d77e1a3..a3e164011a825b 100644
--- a/Doc/c-api/structures.rst
+++ b/Doc/c-api/structures.rst
@@ -408,7 +408,7 @@ There are these calling conventions:
 
 
 These two constants are not used to indicate the calling convention but the
-binding when use with methods of classes.  These may not be used for functions
+binding when used with methods of classes.  These may not be used for functions
 defined for modules.  At most one of these flags may be set for any given
 method.
 
diff --git a/Doc/c-api/veryhigh.rst b/Doc/c-api/veryhigh.rst
index 7eb9f0b54abd4e..6256bf7a1454a9 100644
--- a/Doc/c-api/veryhigh.rst
+++ b/Doc/c-api/veryhigh.rst
@@ -191,7 +191,7 @@ the same library that the Python runtime is using.
    objects *globals* and *locals* with the compiler flags specified by
    *flags*.  *globals* must be a dictionary; *locals* can be any object
    that implements the mapping protocol.  The parameter *start* specifies
-   the start symbol and must one of the :ref:`available start symbols 
<start-symbols>`.
+   the start symbol and must be one of the :ref:`available start symbols 
<start-symbols>`.
 
    Returns the result of executing the code as a Python object, or ``NULL`` if 
an
    exception was raised.
diff --git a/Doc/deprecations/pending-removal-in-3.15.rst 
b/Doc/deprecations/pending-removal-in-3.15.rst
index c80588b27b635a..600510cf7f00f8 100644
--- a/Doc/deprecations/pending-removal-in-3.15.rst
+++ b/Doc/deprecations/pending-removal-in-3.15.rst
@@ -64,7 +64,7 @@ Pending removal in Python 3.15
 
   * :func:`~threading.RLock` will take no arguments in Python 3.15.
     Passing any arguments has been deprecated since Python 3.14,
-    as the  Python version does not permit any arguments,
+    as the Python version does not permit any arguments,
     but the C version allows any number of positional or keyword arguments,
     ignoring every argument.
 
diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index 1dccb77cc53228..6151143a97b420 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -1359,7 +1359,7 @@ Glossary
          'email.mime.text'
 
    race condition
-      A condition of a program where the its behavior
+      A condition of a program where the behavior
       depends on the relative timing or ordering of events, particularly in
       multi-threaded programs.  Race conditions can lead to
       :term:`non-deterministic` behavior and bugs that are difficult to
diff --git a/Doc/library/mailbox.rst b/Doc/library/mailbox.rst
index 62e289573c0c7e..ed135bf02cb968 100644
--- a/Doc/library/mailbox.rst
+++ b/Doc/library/mailbox.rst
@@ -1025,7 +1025,7 @@ Supported mailbox formats are Maildir, mbox, MH, Babyl, 
and MMDF.
    .. method:: remove_flag(flag)
 
       Unset the flag(s) specified by *flag* without changing other flags. To
-      remove more than one flag at a time, *flag* maybe a string of more than
+      remove more than one flag at a time, *flag* may be a string of more than
       one character.  If "info" contains experimental information rather than
       flags, the current "info" is not modified.
 
@@ -1190,7 +1190,7 @@ When a :class:`!MaildirMessage` instance is created based 
upon a
    .. method:: remove_flag(flag)
 
       Unset the flag(s) specified by *flag* without changing other flags. To
-      remove more than one flag at a time, *flag* maybe a string of more than
+      remove more than one flag at a time, *flag* may be a string of more than
       one character.
 
 When an :class:`!mboxMessage` instance is created based upon a
@@ -1562,7 +1562,7 @@ When a :class:`!BabylMessage` instance is created based 
upon an
    .. method:: remove_flag(flag)
 
       Unset the flag(s) specified by *flag* without changing other flags. To
-      remove more than one flag at a time, *flag* maybe a string of more than
+      remove more than one flag at a time, *flag* may be a string of more than
       one character.
 
 When an :class:`!MMDFMessage` instance is created based upon a
@@ -1641,7 +1641,7 @@ The following exception classes are defined in the 
:mod:`!mailbox` module:
 
 .. exception:: Error()
 
-   The based class for all other module-specific exceptions.
+   The base class for all other module-specific exceptions.
 
 
 .. exception:: NoSuchMailboxError()
@@ -1661,7 +1661,7 @@ The following exception classes are defined in the 
:mod:`!mailbox` module:
 
    Raised when some mailbox-related condition beyond the control of the program
    causes it to be unable to proceed, such as when failing to acquire a lock 
that
-   another program already holds a lock, or when a uniquely generated file name
+   another program already holds, or when a uniquely generated file name
    already exists.
 
 
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index d65034ef0ae961..d581b73cf0bd8d 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -1222,7 +1222,7 @@ Miscellaneous
 
    Set the path of the Python interpreter to use when starting a child process.
    (By default :data:`sys.executable` is used).  Embedders will probably need 
to
-   do some thing like ::
+   do something like ::
 
       set_executable(os.path.join(sys.exec_prefix, 'pythonw.exe'))
 
@@ -2463,7 +2463,7 @@ with the :class:`Pool` class.
       duration of the Pool's work queue. A frequent pattern found in other
       systems (such as Apache, mod_wsgi, etc) to free resources held by
       workers is to allow a worker within a pool to complete only a set
-      amount of work before being exiting, being cleaned up and a new
+      amount of work before exiting, being cleaned up and a new
       process spawned to replace the old one. The *maxtasksperchild*
       argument to the :class:`Pool` exposes this ability to the end user.
 
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index a836ca34d4a955..95cb1b8178003c 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -257,7 +257,7 @@ process and user.
 
    .. warning::
       This function is not thread-safe. Calling it while the environment is
-      being modified in an other thread is an undefined behavior. Reading from
+      being modified in another thread is an undefined behavior. Reading from
       :data:`os.environ` or :data:`os.environb`, or calling :func:`os.getenv`
       while reloading, may return an empty result.
 
@@ -3989,7 +3989,7 @@ Naturally, they are all only available on Linux.
    except it includes any time that the system is suspended.
 
    The file descriptor's behaviour can be modified by specifying a *flags* 
value.
-   Any of the following variables may used, combined using bitwise OR
+   Any of the following variables may be used, combined using bitwise OR
    (the ``|`` operator):
 
    - :const:`TFD_NONBLOCK`
@@ -4021,7 +4021,7 @@ Naturally, they are all only available on Linux.
    *fd* must be a valid timer file descriptor.
 
    The timer's behaviour can be modified by specifying a *flags* value.
-   Any of the following variables may used, combined using bitwise OR
+   Any of the following variables may be used, combined using bitwise OR
    (the ``|`` operator):
 
    - :const:`TFD_TIMER_ABSTIME`
@@ -4090,7 +4090,7 @@ Naturally, they are all only available on Linux.
 
    Return a two-item tuple of floats (``next_expiration``, ``interval``).
 
-   ``next_expiration`` denotes the relative time until next the timer next 
fires,
+   ``next_expiration`` denotes the relative time until the timer next fires,
    regardless of if the :const:`TFD_TIMER_ABSTIME` flag is set.
 
    ``interval`` denotes the timer's interval.
diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst
index d3468cce39b6d2..02b79a9f3a7a47 100644
--- a/Doc/library/pickle.rst
+++ b/Doc/library/pickle.rst
@@ -519,7 +519,7 @@ The following types can be pickled:
 
 * classes accessible from the top level of a module;
 
-* instances of such classes whose the result of calling 
:meth:`~object.__getstate__`
+* instances of such classes for which the result of calling 
:meth:`~object.__getstate__`
   is picklable  (see section :ref:`pickle-inst` for details).
 
 Attempts to pickle unpicklable objects will raise the :exc:`PicklingError`
@@ -588,7 +588,7 @@ methods:
 
 .. method:: object.__getnewargs_ex__()
 
-   In protocols 2 and newer, classes that implements the
+   In protocols 2 and newer, classes that implement the
    :meth:`__getnewargs_ex__` method can dictate the values passed to the
    :meth:`__new__` method upon unpickling.  The method must return a pair
    ``(args, kwargs)`` where *args* is a tuple of positional arguments
diff --git a/Doc/library/pyexpat.rst b/Doc/library/pyexpat.rst
index 92c84395caa007..c448627e2bd381 100644
--- a/Doc/library/pyexpat.rst
+++ b/Doc/library/pyexpat.rst
@@ -409,7 +409,7 @@ otherwise stated.
    ...``).  The *doctypeName* is provided exactly as presented.  The 
*systemId* and
    *publicId* parameters give the system and public identifiers if specified, 
or
    ``None`` if omitted.  *has_internal_subset* will be true if the document
-   contains and internal document declaration subset. This requires Expat 
version
+   contains an internal document declaration subset. This requires Expat 
version
    1.2 or newer.
 
 
diff --git a/Doc/library/resource.rst b/Doc/library/resource.rst
index 512f0852dd5333..52bfef59ac4f68 100644
--- a/Doc/library/resource.rst
+++ b/Doc/library/resource.rst
@@ -303,9 +303,9 @@ These functions are used to retrieve resource usage 
information:
       print(getrusage(RUSAGE_SELF))
 
    The fields of the return value each describe how a particular system 
resource
-   has been used, e.g. amount of time spent running is user mode or number of 
times
+   has been used, e.g. amount of time spent running in user mode or number of 
times
    the process was swapped out of main memory. Some values are dependent on the
-   clock tick internal, e.g. the amount of memory the process is using.
+   clock tick interval, e.g. the amount of memory the process is using.
 
    For backward compatibility, the return value is also accessible as a tuple 
of 16
    elements.
diff --git a/Doc/library/secrets.rst b/Doc/library/secrets.rst
index 997d1f32cccd75..e266849918a80b 100644
--- a/Doc/library/secrets.rst
+++ b/Doc/library/secrets.rst
@@ -120,7 +120,7 @@ argument to the various ``token_*`` functions.  That 
argument is taken
 as the number of bytes of randomness to use.
 
 Otherwise, if no argument is provided, or if the argument is ``None``,
-the ``token_*`` functions uses :const:`DEFAULT_ENTROPY` instead.
+the ``token_*`` functions use :const:`DEFAULT_ENTROPY` instead.
 
 .. data:: DEFAULT_ENTROPY
 
diff --git a/Doc/library/select.rst b/Doc/library/select.rst
index 34a238456a926c..330b0a1c55a723 100644
--- a/Doc/library/select.rst
+++ b/Doc/library/select.rst
@@ -171,7 +171,7 @@ The module defines the following:
    The minimum number of bytes which can be written without blocking to a pipe
    when the pipe has been reported as ready for writing by 
:func:`~select.select`,
    :func:`!poll` or another interface in this module.  This doesn't apply
-   to other kind of file-like objects such as sockets.
+   to other kinds of file-like objects such as sockets.
 
    This value is guaranteed by POSIX to be at least 512.
 
@@ -223,7 +223,7 @@ object.
    implement :meth:`!fileno`, so they can also be used as the argument.
 
    *eventmask* is an optional bitmask describing the type of events you want to
-   check for. The constants are the same that with :c:func:`!poll`
+   check for. The constants are the same as with :c:func:`!poll`
    object. The default value is a combination of the constants :const:`POLLIN`,
    :const:`POLLPRI`, and :const:`POLLOUT`.
 
@@ -238,7 +238,7 @@ object.
 .. method:: devpoll.modify(fd[, eventmask])
 
    This method does an :meth:`unregister` followed by a
-   :meth:`register`. It is (a bit) more efficient that doing the same
+   :meth:`register`. It is (a bit) more efficient than doing the same
    explicitly.
 
 
@@ -561,9 +561,9 @@ https://man.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2
    +---------------------------+---------------------------------------------+
    | :const:`KQ_EV_DELETE`     | Removes an event from the queue             |
    +---------------------------+---------------------------------------------+
-   | :const:`KQ_EV_ENABLE`     | Permitscontrol() to returns the event       |
+   | :const:`KQ_EV_ENABLE`     | Permits control() to return the event       |
    +---------------------------+---------------------------------------------+
-   | :const:`KQ_EV_DISABLE`    | Disablesevent                               |
+   | :const:`KQ_EV_DISABLE`    | Disables event                              |
    +---------------------------+---------------------------------------------+
    | :const:`KQ_EV_ONESHOT`    | Removes event after first occurrence        |
    +---------------------------+---------------------------------------------+
diff --git a/Doc/library/selectors.rst b/Doc/library/selectors.rst
index ee556f1f3cecae..2d523a9d2ea440 100644
--- a/Doc/library/selectors.rst
+++ b/Doc/library/selectors.rst
@@ -54,7 +54,7 @@ Classes hierarchy::
 
 
 In the following, *events* is a bitwise mask indicating which I/O events should
-be waited for on a given file object. It can be a combination of the modules
+be waited for on a given file object. It can be a combination of the module's
 constants below:
 
    +-----------------------+-----------------------------------------------+
diff --git a/Doc/library/shelve.rst b/Doc/library/shelve.rst
index 7701a8a8478140..a2c9065ae788a3 100644
--- a/Doc/library/shelve.rst
+++ b/Doc/library/shelve.rst
@@ -65,7 +65,7 @@ lots of shared  sub-objects.  The keys are ordinary strings.
    to load a shelf from an untrusted source.  Like with pickle, loading a shelf
    can execute arbitrary code.
 
-Shelf objects support most of methods and operations supported by dictionaries
+Shelf objects support most of the methods and operations supported by 
dictionaries
 (except copying, constructors and operators ``|`` and ``|=``).  This eases the
 transition from dictionary based scripts to those requiring persistent storage.
 
diff --git a/Doc/library/shlex.rst b/Doc/library/shlex.rst
index 00f4920a3268a8..0653bf2f4189c2 100644
--- a/Doc/library/shlex.rst
+++ b/Doc/library/shlex.rst
@@ -343,7 +343,7 @@ variables which either control lexical analysis or can be 
used for debugging:
 Parsing Rules
 -------------
 
-When operating in non-POSIX mode, :class:`~shlex.shlex` will try to obey to the
+When operating in non-POSIX mode, :class:`~shlex.shlex` will try to obey the
 following rules.
 
 * Quote characters are not recognized within words (``Do"Not"Separate`` is
@@ -366,7 +366,7 @@ following rules.
 
 * It's not possible to parse empty strings, even if quoted.
 
-When operating in POSIX mode, :class:`~shlex.shlex` will try to obey to the
+When operating in POSIX mode, :class:`~shlex.shlex` will try to obey the
 following parsing rules.
 
 * Quotes are stripped out, and do not separate words (``"Do"Not"Separate"`` is
@@ -382,7 +382,7 @@ following parsing rules.
 * Enclosing characters in quotes which are part of
   :attr:`~shlex.escapedquotes` (e.g. ``'"'``) preserves the literal value
   of all characters within the quotes, with the exception of the characters
-  mentioned in :attr:`~shlex.escape`.  The escape characters retain its
+  mentioned in :attr:`~shlex.escape`.  The escape characters retain their
   special meaning only when followed by the quote in use, or the escape
   character itself. Otherwise the escape character will be considered a
   normal character.
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst
index 59004ba9cdf79e..8564a5b72d9794 100644
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -543,7 +543,7 @@ instead of 64 KiB) and a :func:`memoryview`-based variant of
 :func:`shutil.copyfileobj` is used.
 
 If the fast-copy operation fails and no data was written in the destination
-file then shutil will silently fallback on using less efficient
+file then shutil will silently fall back to less efficient
 :func:`copyfileobj` function internally.
 
 .. versionchanged:: 3.8
diff --git a/Doc/library/signal.rst b/Doc/library/signal.rst
index 41a08fb165e2b6..6575063804201f 100644
--- a/Doc/library/signal.rst
+++ b/Doc/library/signal.rst
@@ -36,7 +36,7 @@ Execution of Python signal handlers
 A Python signal handler does not get executed inside the low-level (C) signal
 handler.  Instead, the low-level signal handler sets a flag which tells the
 :term:`virtual machine` to execute the corresponding Python signal handler
-at a later point(for example at the next :term:`bytecode` instruction).
+at a later point (for example, at the next :term:`bytecode` instruction).
 This has consequences:
 
 * It makes little sense to catch synchronous errors like :const:`SIGFPE` or
@@ -97,13 +97,13 @@ The signal module defines three enums:
 
 .. class:: Handlers
 
-   :class:`enum.IntEnum` collection the constants :const:`SIG_DFL` and 
:const:`SIG_IGN`.
+   :class:`enum.IntEnum` collection of the constants :const:`SIG_DFL` and 
:const:`SIG_IGN`.
 
    .. versionadded:: 3.5
 
 .. class:: Sigmasks
 
-   :class:`enum.IntEnum` collection the constants :const:`SIG_BLOCK`, 
:const:`SIG_UNBLOCK` and :const:`SIG_SETMASK`.
+   :class:`enum.IntEnum` collection of the constants :const:`SIG_BLOCK`, 
:const:`SIG_UNBLOCK` and :const:`SIG_SETMASK`.
 
    .. availability:: Unix.
 
diff --git a/Doc/library/site.rst b/Doc/library/site.rst
index 70774020c00f50..4686c9fc92ced2 100644
--- a/Doc/library/site.rst
+++ b/Doc/library/site.rst
@@ -140,7 +140,7 @@ After these path manipulations, an attempt is made to 
import a module named
 It is typically created by a system administrator in the site-packages
 directory.  If this import fails with an :exc:`ImportError` or its subclass
 exception, and the exception's :attr:`~ImportError.name`
-attribute equals to ``'sitecustomize'``,
+attribute equals ``'sitecustomize'``,
 it is silently ignored.  If Python is started without output streams 
available, as
 with :file:`pythonw.exe` on Windows (which is used by default to start IDLE),
 attempted output from :mod:`!sitecustomize` is ignored.  Any other exception
@@ -157,7 +157,7 @@ which can perform arbitrary user-specific customizations, if
 user site-packages directory (see below), which is part of ``sys.path`` unless
 disabled by :option:`-s`.  If this import fails with an :exc:`ImportError` or
 its subclass exception, and the exception's :attr:`~ImportError.name`
-attribute equals to ``'usercustomize'``, it is silently ignored.
+attribute equals ``'usercustomize'``, it is silently ignored.
 
 Note that for some non-Unix systems, ``sys.prefix`` and ``sys.exec_prefix`` are
 empty, and the path manipulations are skipped; however the import of
@@ -173,7 +173,7 @@ Readline configuration
 On systems that support :mod:`readline`, this module will also import and
 configure the :mod:`rlcompleter` module, if Python is started in
 :ref:`interactive mode <tut-interactive>` and without the :option:`-S` option.
-The default behavior is enable tab-completion and to use
+The default behavior is to enable tab completion and to use
 :file:`~/.python_history` as the history save file.  To disable it, delete (or
 override) the :data:`sys.__interactivehook__` attribute in your
 :mod:`sitecustomize` or :mod:`usercustomize` module or your
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index 528fca88053026..56a4f8efe71a54 100644
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -118,10 +118,10 @@ created.  Socket addresses are represented as follows:
   ``'can0'``. The network interface name ``''`` can be used to receive packets
   from all network interfaces of this family.
 
-  - :const:`CAN_ISOTP` protocol require a tuple ``(interface, rx_addr, 
tx_addr)``
+  - :const:`CAN_ISOTP` protocol requires a tuple ``(interface, rx_addr, 
tx_addr)``
     where both additional parameters are unsigned long integer that represent a
     CAN identifier (standard or extended).
-  - :const:`CAN_J1939` protocol require a tuple ``(interface, name, pgn, 
addr)``
+  - :const:`CAN_J1939` protocol requires a tuple ``(interface, name, pgn, 
addr)``
     where additional parameters are 64-bit unsigned integer representing the
     ECU name, a 32-bit unsigned integer representing the Parameter Group Number
     (PGN), and an 8-bit integer representing the address.
@@ -1034,7 +1034,7 @@ The :mod:`!socket` module also offers various 
network-related services:
 .. function:: close(fd)
 
    Close a socket file descriptor. This is like :func:`os.close`, but for
-   sockets. On some platforms (most noticeable Windows) :func:`os.close`
+   sockets. On some platforms (most notably Windows) :func:`os.close`
    does not work for socket file descriptors.
 
    .. versionadded:: 3.7
@@ -1590,7 +1590,7 @@ to sockets.
    address family --- see above.)
 
    If the connection is interrupted by a signal, the method waits until the
-   connection completes, or raise a :exc:`TimeoutError` on timeout, if the
+   connection completes, or raises a :exc:`TimeoutError` on timeout, if the
    signal handler doesn't raise an exception and the socket is blocking or has
    a timeout. For non-blocking sockets, the method raises an
    :exc:`InterruptedError` exception if the connection is interrupted by a
@@ -2094,11 +2094,11 @@ to sockets.
    Set the value of the given socket option (see the Unix manual page
    :manpage:`setsockopt(2)`).  The needed symbolic constants are defined in 
this
    module (:ref:`!SO_\* etc. <socket-unix-constants>`).  The value can be an 
integer,
-   ``None`` or a :term:`bytes-like object` representing a buffer. In the later
+   ``None`` or a :term:`bytes-like object` representing a buffer. In the latter
    case it is up to the caller to ensure that the bytestring contains the
    proper bits (see the optional built-in module :mod:`struct` for a way to
    encode C structures as bytestrings). When *value* is set to ``None``,
-   *optlen* argument is required. It's equivalent to call :c:func:`setsockopt` 
C
+   *optlen* argument is required. It's equivalent to calling 
:c:func:`setsockopt` C
    function with ``optval=NULL`` and ``optlen=optlen``.
 
    .. versionchanged:: 3.5
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst
index cbc3f32d9b9157..b708a50ed2596f 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -291,7 +291,7 @@ Module functions
        Set it to any combination (using ``|``, bitwise or) of
        :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES`
        to enable this.
-       Column names takes precedence over declared types if both flags are set.
+       Column names take precedence over declared types if both flags are set.
        By default (``0``), type detection is disabled.
 
    :param isolation_level:
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index b494d847ea9825..3420f88e36f5f9 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -515,7 +515,7 @@ always available. Unless explicitly noted otherwise, all 
variables are read-only
    in the range 0--127, and produce undefined results otherwise.  Some systems
    have a convention for assigning specific meanings to specific exit codes, 
but
    these are generally underdeveloped; Unix programs generally use 2 for 
command
-   line syntax errors and 1 for all other kind of errors.  If another type of
+   line syntax errors and 1 for all other kinds of errors.  If another type of
    object is passed, ``None`` is equivalent to passing zero, and any other
    object is printed to :data:`stderr` and results in an exit code of 1.  In
    particular, ``sys.exit("some error message")`` is a quick way to exit a
diff --git a/Doc/library/trace.rst b/Doc/library/trace.rst
index e0ae55ecc45acc..57b8fa29eb3600 100644
--- a/Doc/library/trace.rst
+++ b/Doc/library/trace.rst
@@ -43,7 +43,7 @@ all Python modules imported during the execution into the 
current directory.
    Display the version of the module and exit.
 
 .. versionadded:: 3.8
-    Added ``--module`` option that allows to run an executable module.
+    Added ``--module`` option that allows running an executable module.
 
 Main options
 ^^^^^^^^^^^^
diff --git a/Doc/library/tracemalloc.rst b/Doc/library/tracemalloc.rst
index d11ad11bbb008b..0fa70389f1f577 100644
--- a/Doc/library/tracemalloc.rst
+++ b/Doc/library/tracemalloc.rst
@@ -589,7 +589,7 @@ Snapshot
 
       If *cumulative* is ``True``, cumulate size and count of memory blocks of
       all frames of the traceback of a trace, not only the most recent frame.
-      The cumulative mode can only be used with *key_type* equals to
+      The cumulative mode can only be used with *key_type* equal to
       ``'filename'`` and ``'lineno'``.
 
       The result is sorted from the biggest to the smallest by:
@@ -720,11 +720,10 @@ Traceback
    When a snapshot is taken, tracebacks of traces are limited to
    :func:`get_traceback_limit` frames. See the :func:`take_snapshot` function.
    The original number of frames of the traceback is stored in the
-   :attr:`Traceback.total_nframe` attribute. That allows to know if a traceback
+   :attr:`Traceback.total_nframe` attribute. That allows one to know if a 
traceback
    has been truncated by the traceback limit.
 
-   The :attr:`Trace.traceback` attribute is an instance of :class:`Traceback`
-   instance.
+   The :attr:`Trace.traceback` attribute is a :class:`Traceback` instance.
 
    .. versionchanged:: 3.7
       Frames are now sorted from the oldest to the most recent, instead of 
most recent to oldest.
diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst
index 886b230d1718d7..e7a6df156a27cd 100644
--- a/Doc/library/typing.rst
+++ b/Doc/library/typing.rst
@@ -813,7 +813,7 @@ For example, this conforms to :pep:`484`::
        def __len__(self) -> int: ...
        def __iter__(self) -> Iterator[int]: ...
 
-:pep:`544` allows to solve this problem by allowing users to write
+:pep:`544` solves this problem by allowing users to write
 the above code without explicit base classes in the class definition,
 allowing ``Bucket`` to be implicitly considered a subtype of both ``Sized``
 and ``Iterable[int]`` by static type checkers. This is known as
diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst
index f68a78e47f6aa5..321d93079bc6fa 100644
--- a/Doc/library/xml.dom.minidom.rst
+++ b/Doc/library/xml.dom.minidom.rst
@@ -62,7 +62,7 @@ document.
 
 What the :func:`parse` and :func:`parseString` functions do is connect an XML
 parser with a "DOM builder" that can accept parse events from any SAX parser 
and
-convert them into a DOM tree.  The name of the functions are perhaps 
misleading,
+convert them into a DOM tree.  The names of the functions are perhaps 
misleading,
 but are easy to grasp when learning the interfaces.  The parsing of the 
document
 will be completed before these functions return; it's simply that these
 functions do not provide a parser implementation themselves.
diff --git a/Doc/library/xmlrpc.server.rst b/Doc/library/xmlrpc.server.rst
index 8da8208331b8c2..9f16c470567406 100644
--- a/Doc/library/xmlrpc.server.rst
+++ b/Doc/library/xmlrpc.server.rst
@@ -230,7 +230,7 @@ a server allowing dotted names and registering a multicall 
function.
 
   Enabling the *allow_dotted_names* option allows intruders to access your
   module's global variables and may allow intruders to execute arbitrary code 
on
-  your machine.  Only use this example only within a secure, closed network.
+  your machine.  Only use this example within a secure, closed network.
 
 ::
 
diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst
index 645acdf20fb580..3c690343022618 100644
--- a/Doc/tutorial/classes.rst
+++ b/Doc/tutorial/classes.rst
@@ -420,7 +420,7 @@ of the class::
     'Buddy'
 
 As discussed in :ref:`tut-object`, shared data can have possibly surprising
-effects with involving :term:`mutable` objects such as lists and dictionaries.
+effects involving :term:`mutable` objects such as lists and dictionaries.
 For example, the *tricks* list in the following code should not be used as a
 class variable because just a single list would be shared by all *Dog*
 instances::
diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst
index f3e69756401b8b..bee6cc39fafcdb 100644
--- a/Doc/tutorial/controlflow.rst
+++ b/Doc/tutorial/controlflow.rst
@@ -155,8 +155,8 @@ that takes an iterable is :func:`sum`::
     6
 
 Later we will see more functions that return iterables and take iterables as
-arguments.  In chapter :ref:`tut-structures`, we will discuss in more detail 
about
-:func:`list`.
+arguments.  In chapter :ref:`tut-structures`, we will discuss :func:`list` in 
more
+detail.
 
 .. _tut-break:
 
@@ -441,7 +441,7 @@ Several other key features of this statement:
   ``False`` and ``None`` are compared by identity.
 
 - Patterns may use named constants.  These must be dotted names
-  to prevent them from being interpreted as capture variable::
+  to prevent them from being interpreted as capture variables::
 
       from enum import Enum
       class Color(Enum):
@@ -1107,7 +1107,7 @@ Intermezzo: Coding Style
 
 Now that you are about to write longer, more complex pieces of Python, it is a
 good time to talk about *coding style*.  Most languages can be written (or more
-concise, *formatted*) in different styles; some are more readable than others.
+concisely, *formatted*) in different styles; some are more readable than 
others.
 Making it easy for others to read your code is always a good idea, and adopting
 a nice coding style helps tremendously for that.
 
diff --git a/Doc/tutorial/whatnow.rst b/Doc/tutorial/whatnow.rst
index 359cf80a7b2ecf..aae8f29b007762 100644
--- a/Doc/tutorial/whatnow.rst
+++ b/Doc/tutorial/whatnow.rst
@@ -68,6 +68,6 @@ already contain the solution for your problem.
 
 .. rubric:: Footnotes
 
-.. [#] "Cheese Shop" is a Monty Python's sketch: a customer enters a cheese 
shop,
+.. [#] "Cheese Shop" is a Monty Python sketch: a customer enters a cheese shop,
    but whatever cheese he asks for, the clerk says it's missing.
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to