[Python-checkins] cpython (3.4): Issue #25523: Correct "a" article to "an" article

martin.panter python-checkins at python.org
Sun Nov 1 23:29:16 EST 2015


https://hg.python.org/cpython/rev/d8ff13414deb
changeset:   98928:d8ff13414deb
branch:      3.4
parent:      98924:e27c589e1c6a
user:        Martin Panter <vadmium+py at gmail.com>
date:        Mon Nov 02 03:37:02 2015 +0000
summary:
  Issue #25523: Correct "a" article to "an" article

This changes the main documentation, doc strings, source code comments, and a
couple error messages in the test suite. In some cases the word was removed
or edited some other way to fix the grammar.

files:
  Doc/c-api/buffer.rst                      |   2 +-
  Doc/faq/programming.rst                   |   2 +-
  Doc/library/chunk.rst                     |   2 +-
  Doc/library/concurrent.futures.rst        |   4 +-
  Doc/library/ctypes.rst                    |   2 +-
  Doc/library/difflib.rst                   |   2 +-
  Doc/library/fcntl.rst                     |   6 +-
  Doc/library/ftplib.rst                    |   4 +-
  Doc/library/functions.rst                 |   6 +-
  Doc/library/gzip.rst                      |   2 +-
  Doc/library/http.cookiejar.rst            |   2 +-
  Doc/library/http.server.rst               |   4 +-
  Doc/library/mailbox.rst                   |   2 +-
  Doc/library/multiprocessing.rst           |   2 +-
  Doc/library/nntplib.rst                   |   2 +-
  Doc/library/optparse.rst                  |   2 +-
  Doc/library/os.path.rst                   |   2 +-
  Doc/library/pickle.rst                    |   4 +-
  Doc/library/pyexpat.rst                   |   2 +-
  Doc/library/shutil.rst                    |   4 +-
  Doc/library/smtplib.rst                   |   4 +-
  Doc/library/socket.rst                    |   4 +-
  Doc/library/sqlite3.rst                   |   2 +-
  Doc/library/stdtypes.rst                  |   2 +-
  Doc/library/sunau.rst                     |   4 +-
  Doc/library/tempfile.rst                  |   2 +-
  Doc/library/unittest.mock.rst             |   2 +-
  Doc/library/xml.dom.pulldom.rst           |   2 +-
  Doc/tutorial/errors.rst                   |   2 +-
  Doc/tutorial/introduction.rst             |   2 +-
  Doc/whatsnew/2.1.rst                      |   2 +-
  Doc/whatsnew/2.3.rst                      |   2 +-
  Doc/whatsnew/3.1.rst                      |   2 +-
  Doc/whatsnew/3.2.rst                      |   4 +-
  Doc/whatsnew/3.3.rst                      |   2 +-
  Include/abstract.h                        |   2 +-
  Include/codecs.h                          |   4 +-
  Lib/_pyio.py                              |   2 +-
  Lib/asyncio/streams.py                    |   2 +-
  Lib/calendar.py                           |   2 +-
  Lib/chunk.py                              |   2 +-
  Lib/codecs.py                             |   6 +-
  Lib/concurrent/futures/_base.py           |   2 +-
  Lib/difflib.py                            |   2 +-
  Lib/distutils/cygwinccompiler.py          |   6 +-
  Lib/ftplib.py                             |   4 +-
  Lib/getopt.py                             |   2 +-
  Lib/idlelib/EditorWindow.py               |   2 +-
  Lib/idlelib/ReplaceDialog.py              |   2 +-
  Lib/io.py                                 |   2 +-
  Lib/lib2to3/fixes/fix_input.py            |   2 +-
  Lib/nntplib.py                            |   2 +-
  Lib/pickle.py                             |   4 +-
  Lib/test/decimaltestdata/fma.decTest      |   1 +
  Lib/test/decimaltestdata/multiply.decTest |   1 +
  Lib/test/pystone.py                       |   2 +-
  Lib/test/support/__init__.py              |   2 +-
  Lib/test/test_cmd.py                      |   2 +-
  Lib/test/test_codecs.py                   |   2 +-
  Lib/test/test_email/test_email.py         |   2 +-
  Lib/test/test_ipaddress.py                |   4 +-
  Lib/test/test_os.py                       |   2 +-
  Lib/test/test_urllib.py                   |   2 +-
  Lib/test/test_weakref.py                  |   2 +-
  Lib/tkinter/ttk.py                        |   2 +-
  Lib/xmlrpc/client.py                      |   4 +-
  Misc/HISTORY                              |  30 +++++-----
  Misc/NEWS                                 |   2 +-
  Modules/_ctypes/libffi/src/x86/darwin64.S |   2 +-
  Modules/_ctypes/libffi/src/x86/unix64.S   |   2 +-
  Modules/_ctypes/libffi_osx/x86/darwin64.S |   2 +-
  Modules/_hashopenssl.c                    |   2 +-
  Modules/_io/_iomodule.c                   |   2 +-
  Modules/_io/textio.c                      |   4 +-
  Modules/_pickle.c                         |  16 ++--
  Modules/atexitmodule.c                    |   2 +-
  Modules/audioop.c                         |   4 +-
  Modules/clinic/_pickle.c.h                |  10 +-
  Modules/expat/pyexpatns.h                 |   2 +-
  Modules/hashlib.h                         |   2 +-
  Modules/readline.c                        |   2 +-
  Objects/abstract.c                        |   2 +-
  Objects/exceptions.c                      |   2 +-
  Python/compile.c                          |   2 +-
  Python/thread.c                           |   2 +-
  Tools/gdb/libpython.py                    |   4 +-
  86 files changed, 136 insertions(+), 134 deletions(-)


diff --git a/Doc/c-api/buffer.rst b/Doc/c-api/buffer.rst
--- a/Doc/c-api/buffer.rst
+++ b/Doc/c-api/buffer.rst
@@ -40,7 +40,7 @@
 
 Simple objects such as :class:`bytes` and :class:`bytearray` expose their
 underlying buffer in byte-oriented form.  Other forms are possible; for example,
-the elements exposed by a :class:`array.array` can be multi-byte values.
+the elements exposed by an :class:`array.array` can be multi-byte values.
 
 An example consumer of the buffer interface is the :meth:`~io.BufferedIOBase.write`
 method of file objects: any object that can export a series of bytes through
diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst
--- a/Doc/faq/programming.rst
+++ b/Doc/faq/programming.rst
@@ -849,7 +849,7 @@
 You can't, because strings are immutable.  In most situations, you should
 simply construct a new string from the various parts you want to assemble
 it from.  However, if you need an object with the ability to modify in-place
-unicode data, try using a :class:`io.StringIO` object or the :mod:`array`
+unicode data, try using an :class:`io.StringIO` object or the :mod:`array`
 module::
 
    >>> import io
diff --git a/Doc/library/chunk.rst b/Doc/library/chunk.rst
--- a/Doc/library/chunk.rst
+++ b/Doc/library/chunk.rst
@@ -47,7 +47,7 @@
 the :class:`Chunk` class defined here is to instantiate an instance at the start
 of each chunk and read from the instance until it reaches the end, after which a
 new instance can be instantiated. At the end of the file, creating a new
-instance will fail with a :exc:`EOFError` exception.
+instance will fail with an :exc:`EOFError` exception.
 
 
 .. class:: Chunk(file, align=True, bigendian=True, inclheader=False)
diff --git a/Doc/library/concurrent.futures.rst b/Doc/library/concurrent.futures.rst
--- a/Doc/library/concurrent.futures.rst
+++ b/Doc/library/concurrent.futures.rst
@@ -81,7 +81,7 @@
 ThreadPoolExecutor
 ------------------
 
-:class:`ThreadPoolExecutor` is a :class:`Executor` subclass that uses a pool of
+:class:`ThreadPoolExecutor` is an :class:`Executor` subclass that uses a pool of
 threads to execute calls asynchronously.
 
 Deadlocks can occur when the callable associated with a :class:`Future` waits on
@@ -285,7 +285,7 @@
 
        Added callables are called in the order that they were added and are
        always called in a thread belonging to the process that added them.  If
-       the callable raises a :exc:`Exception` subclass, it will be logged and
+       the callable raises an :exc:`Exception` subclass, it will be logged and
        ignored.  If the callable raises a :exc:`BaseException` subclass, the
        behavior is undefined.
 
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -39,7 +39,7 @@
 convention, while *windll* libraries call functions using the ``stdcall``
 calling convention. *oledll* also uses the ``stdcall`` calling convention, and
 assumes the functions return a Windows :c:type:`HRESULT` error code. The error
-code is used to automatically raise a :class:`OSError` exception when the
+code is used to automatically raise an :class:`OSError` exception when the
 function call fails.
 
 .. versionchanged:: 3.3
diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst
--- a/Doc/library/difflib.rst
+++ b/Doc/library/difflib.rst
@@ -269,7 +269,7 @@
    generating the delta lines) in unified diff format.
 
    Unified diffs are a compact way of showing just the lines that have changed plus
-   a few lines of context.  The changes are shown in a inline style (instead of
+   a few lines of context.  The changes are shown in an inline style (instead of
    separate before/after blocks).  The number of context lines is set by *n* which
    defaults to three.
 
diff --git a/Doc/library/fcntl.rst b/Doc/library/fcntl.rst
--- a/Doc/library/fcntl.rst
+++ b/Doc/library/fcntl.rst
@@ -16,13 +16,13 @@
 
 All functions in this module take a file descriptor *fd* as their first
 argument.  This can be an integer file descriptor, such as returned by
-``sys.stdin.fileno()``, or a :class:`io.IOBase` object, such as ``sys.stdin``
+``sys.stdin.fileno()``, or an :class:`io.IOBase` object, such as ``sys.stdin``
 itself, which provides a :meth:`~io.IOBase.fileno` that returns a genuine file
 descriptor.
 
 .. versionchanged:: 3.3
-   Operations in this module used to raise a :exc:`IOError` where they now
-   raise a :exc:`OSError`.
+   Operations in this module used to raise an :exc:`IOError` where they now
+   raise an :exc:`OSError`.
 
 
 The module defines the following functions:
diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst
--- a/Doc/library/ftplib.rst
+++ b/Doc/library/ftplib.rst
@@ -287,9 +287,9 @@
 
 .. method:: FTP.transfercmd(cmd, rest=None)
 
-   Initiate a transfer over the data connection.  If the transfer is active, send a
+   Initiate a transfer over the data connection.  If the transfer is active, send an
    ``EPRT`` or  ``PORT`` command and the transfer command specified by *cmd*, and
-   accept the connection.  If the server is passive, send a ``EPSV`` or ``PASV``
+   accept the connection.  If the server is passive, send an ``EPSV`` or ``PASV``
    command, connect to it, and start the transfer command.  Either way, return the
    socket for the connection.
 
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -1029,9 +1029,9 @@
    :class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`).  When used
    to open a file in a binary mode with buffering, the returned class is a
    subclass of :class:`io.BufferedIOBase`.  The exact class varies: in read
-   binary mode, it returns a :class:`io.BufferedReader`; in write binary and
-   append binary modes, it returns a :class:`io.BufferedWriter`, and in
-   read/write mode, it returns a :class:`io.BufferedRandom`.  When buffering is
+   binary mode, it returns an :class:`io.BufferedReader`; in write binary and
+   append binary modes, it returns an :class:`io.BufferedWriter`, and in
+   read/write mode, it returns an :class:`io.BufferedRandom`.  When buffering is
    disabled, the raw stream, a subclass of :class:`io.RawIOBase`,
    :class:`io.FileIO`, is returned.
 
diff --git a/Doc/library/gzip.rst b/Doc/library/gzip.rst
--- a/Doc/library/gzip.rst
+++ b/Doc/library/gzip.rst
@@ -100,7 +100,7 @@
 
    Calling a :class:`GzipFile` object's :meth:`close` method does not close
    *fileobj*, since you might wish to append more material after the compressed
-   data.  This also allows you to pass a :class:`io.BytesIO` object opened for
+   data.  This also allows you to pass an :class:`io.BytesIO` object opened for
    writing as *fileobj*, and retrieve the resulting memory buffer using the
    :class:`io.BytesIO` object's :meth:`~io.BytesIO.getvalue` method.
 
diff --git a/Doc/library/http.cookiejar.rst b/Doc/library/http.cookiejar.rst
--- a/Doc/library/http.cookiejar.rst
+++ b/Doc/library/http.cookiejar.rst
@@ -176,7 +176,7 @@
 
    The *response* object (usually the result of a call to
    :meth:`urllib.request.urlopen`, or similar) should support an :meth:`info`
-   method, which returns a :class:`email.message.Message` instance.
+   method, which returns an :class:`email.message.Message` instance.
 
    The *request* object (usually a :class:`urllib.request.Request` instance)
    must support the methods :meth:`get_full_url`, :meth:`get_host`,
diff --git a/Doc/library/http.server.rst b/Doc/library/http.server.rst
--- a/Doc/library/http.server.rst
+++ b/Doc/library/http.server.rst
@@ -176,7 +176,7 @@
 
    .. method:: handle_expect_100()
 
-      When a HTTP/1.1 compliant server receives a ``Expect: 100-continue``
+      When a HTTP/1.1 compliant server receives an ``Expect: 100-continue``
       request header it responds back with a ``100 Continue`` followed by ``200
       OK`` headers.
       This method can be overridden to raise an error if the server does not
@@ -210,7 +210,7 @@
       are picked up from the :meth:`version_string` and
       :meth:`date_time_string` methods, respectively. If the server does not
       intend to send any other headers using the :meth:`send_header` method,
-      then :meth:`send_response` should be followed by a :meth:`end_headers`
+      then :meth:`send_response` should be followed by an :meth:`end_headers`
       call.
 
       .. versionchanged:: 3.3
diff --git a/Doc/library/mailbox.rst b/Doc/library/mailbox.rst
--- a/Doc/library/mailbox.rst
+++ b/Doc/library/mailbox.rst
@@ -674,7 +674,7 @@
 
       In Babyl mailboxes, the headers of a message are not stored contiguously
       with the body of the message. To generate a file-like representation, the
-      headers and body are copied together into a :class:`io.BytesIO` instance,
+      headers and body are copied together into an :class:`io.BytesIO` instance,
       which has an API identical to that of a
       file. As a result, the file-like object is truly independent of the
       underlying mailbox but does not save memory compared to a string
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -1041,7 +1041,7 @@
       readable.
 
       .. versionchanged:: 3.3
-         This function used to raise a :exc:`IOError`, which is now an
+         This function used to raise :exc:`IOError`, which is now an
          alias of :exc:`OSError`.
 
 
diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst
--- a/Doc/library/nntplib.rst
+++ b/Doc/library/nntplib.rst
@@ -341,7 +341,7 @@
 
 .. method:: NNTP.over(message_spec, *, file=None)
 
-   Send a ``OVER`` command, or a ``XOVER`` command on legacy servers.
+   Send an ``OVER`` command, or an ``XOVER`` command on legacy servers.
    *message_spec* can be either a string representing a message id, or
    a ``(first, last)`` tuple of numbers indicating a range of articles in
    the current group, or a ``(first, None)`` tuple indicating a range of
diff --git a/Doc/library/optparse.rst b/Doc/library/optparse.rst
--- a/Doc/library/optparse.rst
+++ b/Doc/library/optparse.rst
@@ -1324,7 +1324,7 @@
    the list of arguments to process (default: ``sys.argv[1:]``)
 
 ``values``
-   a :class:`optparse.Values` object to store option arguments in (default: a
+   an :class:`optparse.Values` object to store option arguments in (default: a
    new instance of :class:`Values`) -- if you give an existing object, the
    option defaults will not be initialized on it
 
diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst
--- a/Doc/library/os.path.rst
+++ b/Doc/library/os.path.rst
@@ -263,7 +263,7 @@
 
    Return ``True`` if both pathname arguments refer to the same file or directory.
    This is determined by the device number and i-node number and raises an
-   exception if a :func:`os.stat` call on either pathname fails.
+   exception if an :func:`os.stat` call on either pathname fails.
 
    Availability: Unix, Windows.
 
diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst
--- a/Doc/library/pickle.rst
+++ b/Doc/library/pickle.rst
@@ -221,7 +221,7 @@
    The argument *file* must have two methods, a read() method that takes an
    integer argument, and a readline() method that requires no arguments.  Both
    methods should return bytes.  Thus *file* can be an on-disk file opened for
-   binary reading, a :class:`io.BytesIO` object, or any other custom object
+   binary reading, an :class:`io.BytesIO` object, or any other custom object
    that meets this interface.
 
    Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
@@ -357,7 +357,7 @@
    The argument *file* must have two methods, a read() method that takes an
    integer argument, and a readline() method that requires no arguments.  Both
    methods should return bytes.  Thus *file* can be an on-disk file object
-   opened for binary reading, a :class:`io.BytesIO` object, or any other
+   opened for binary reading, an :class:`io.BytesIO` object, or any other
    custom object that meets this interface.
 
    Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
diff --git a/Doc/library/pyexpat.rst b/Doc/library/pyexpat.rst
--- a/Doc/library/pyexpat.rst
+++ b/Doc/library/pyexpat.rst
@@ -763,7 +763,7 @@
 
 .. data:: XML_ERROR_UNDEFINED_ENTITY
 
-   A reference was made to a entity which was not defined.
+   A reference was made to an entity which was not defined.
 
 
 .. data:: XML_ERROR_UNKNOWN_ENCODING
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -206,8 +206,8 @@
    and metadata of the linked files are copied to the new tree.
 
    When *symlinks* is false, if the file pointed by the symlink doesn't
-   exist, a exception will be added in the list of errors raised in
-   a :exc:`Error` exception at the end of the copy process.
+   exist, an exception will be added in the list of errors raised in
+   an :exc:`Error` exception at the end of the copy process.
    You can set the optional *ignore_dangling_symlinks* flag to true if you
    want to silence this exception. Notice that this option has no effect
    on platforms that don't support :func:`os.symlink`.
diff --git a/Doc/library/smtplib.rst b/Doc/library/smtplib.rst
--- a/Doc/library/smtplib.rst
+++ b/Doc/library/smtplib.rst
@@ -22,7 +22,7 @@
 
 .. class:: SMTP(host='', port=0, local_hostname=None[, timeout], source_address=None)
 
-   A :class:`SMTP` instance encapsulates an SMTP connection.  It has methods
+   An :class:`SMTP` instance encapsulates an SMTP connection.  It has methods
    that support a full repertoire of SMTP and ESMTP operations. If the optional
    host and port parameters are given, the SMTP :meth:`connect` method is
    called with those parameters during initialization.  If specified,
@@ -65,7 +65,7 @@
                     certfile=None [, timeout], context=None, \
                     source_address=None)
 
-   A :class:`SMTP_SSL` instance behaves exactly the same as instances of
+   An :class:`SMTP_SSL` instance behaves exactly the same as instances of
    :class:`SMTP`. :class:`SMTP_SSL` should be used for situations where SSL is
    required from the beginning of the connection and using :meth:`starttls` is
    not appropriate. If *host* is not specified, the local host is used. If
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -693,7 +693,7 @@
 
    Supported values for *address_family* are currently :const:`AF_INET` and
    :const:`AF_INET6`. If the string *packed_ip* is not the correct length for the
-   specified address family, :exc:`ValueError` will be raised.  A
+   specified address family, :exc:`ValueError` will be raised.
    :exc:`OSError` is raised for errors from the call to :func:`inet_ntop`.
 
    Availability: Unix (maybe not all platforms), Windows.
@@ -969,7 +969,7 @@
    interpreted the same way as by the built-in :func:`open` function.
 
    The socket must be in blocking mode; it can have a timeout, but the file
-   object's internal buffer may end up in a inconsistent state if a timeout
+   object's internal buffer may end up in an inconsistent state if a timeout
    occurs.
 
    Closing the file object returned by :meth:`makefile` won't close the
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -615,7 +615,7 @@
    .. attribute:: lastrowid
 
       This read-only attribute provides the rowid of the last modified row. It is
-      only set if you issued a ``INSERT`` statement using the :meth:`execute`
+      only set if you issued an ``INSERT`` statement using the :meth:`execute`
       method. For operations other than ``INSERT`` or when :meth:`executemany` is
       called, :attr:`lastrowid` is set to :const:`None`.
 
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -951,7 +951,7 @@
    runtime cost, you must switch to one of the alternatives below:
 
    * if concatenating :class:`str` objects, you can build a list and use
-     :meth:`str.join` at the end or else write to a :class:`io.StringIO`
+     :meth:`str.join` at the end or else write to an :class:`io.StringIO`
      instance and retrieve its value when complete
 
    * if concatenating :class:`bytes` objects, you can similarly use
diff --git a/Doc/library/sunau.rst b/Doc/library/sunau.rst
--- a/Doc/library/sunau.rst
+++ b/Doc/library/sunau.rst
@@ -54,8 +54,8 @@
 
    Note that it does not allow read/write files.
 
-   A *mode* of ``'r'`` returns a :class:`AU_read` object, while a *mode* of ``'w'``
-   or ``'wb'`` returns a :class:`AU_write` object.
+   A *mode* of ``'r'`` returns an :class:`AU_read` object, while a *mode* of ``'w'``
+   or ``'wb'`` returns an :class:`AU_write` object.
 
 
 .. function:: openfp(file, mode)
diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst
--- a/Doc/library/tempfile.rst
+++ b/Doc/library/tempfile.rst
@@ -82,7 +82,7 @@
    causes the file to roll over to an on-disk file regardless of its size.
 
    The returned object is a file-like object whose :attr:`_file` attribute
-   is either a :class:`io.BytesIO` or :class:`io.StringIO` object (depending on
+   is either an :class:`io.BytesIO` or :class:`io.StringIO` object (depending on
    whether binary or text *mode* was specified) or a true file
    object, depending on whether :func:`rollover` has been called.  This
    file-like object can be used in a :keyword:`with` statement, just like
diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst
--- a/Doc/library/unittest.mock.rst
+++ b/Doc/library/unittest.mock.rst
@@ -1105,7 +1105,7 @@
       ...
     TypeError: 'NonCallableMock' object is not callable
 
-Another use case might be to replace an object with a :class:`io.StringIO` instance:
+Another use case might be to replace an object with an :class:`io.StringIO` instance:
 
     >>> from io import StringIO
     >>> def foo():
diff --git a/Doc/library/xml.dom.pulldom.rst b/Doc/library/xml.dom.pulldom.rst
--- a/Doc/library/xml.dom.pulldom.rst
+++ b/Doc/library/xml.dom.pulldom.rst
@@ -47,7 +47,7 @@
 * :data:`PROCESSING_INSTRUCTION`
 * :data:`IGNORABLE_WHITESPACE`
 
-``node`` is a object of type :class:`xml.dom.minidom.Document`,
+``node`` is an object of type :class:`xml.dom.minidom.Document`,
 :class:`xml.dom.minidom.Element` or :class:`xml.dom.minidom.Text`.
 
 Since the document is treated as a "flat" stream of events, the document "tree"
diff --git a/Doc/tutorial/errors.rst b/Doc/tutorial/errors.rst
--- a/Doc/tutorial/errors.rst
+++ b/Doc/tutorial/errors.rst
@@ -336,7 +336,7 @@
 A *finally clause* is always executed before leaving the :keyword:`try`
 statement, whether an exception has occurred or not. When an exception has
 occurred in the :keyword:`try` clause and has not been handled by an
-:keyword:`except` clause (or it has occurred in a :keyword:`except` or
+:keyword:`except` clause (or it has occurred in an :keyword:`except` or
 :keyword:`else` clause), it is re-raised after the :keyword:`finally` clause has
 been executed.  The :keyword:`finally` clause is also executed "on the way out"
 when any other clause of the :keyword:`try` statement is left via a
diff --git a/Doc/tutorial/introduction.rst b/Doc/tutorial/introduction.rst
--- a/Doc/tutorial/introduction.rst
+++ b/Doc/tutorial/introduction.rst
@@ -303,7 +303,7 @@
 indices, if both are within bounds.  For example, the length of ``word[1:3]`` is
 2.
 
-Attempting to use a index that is too large will result in an error::
+Attempting to use an index that is too large will result in an error::
 
    >>> word[42]  # the word only has 6 characters
    Traceback (most recent call last):
diff --git a/Doc/whatsnew/2.1.rst b/Doc/whatsnew/2.1.rst
--- a/Doc/whatsnew/2.1.rst
+++ b/Doc/whatsnew/2.1.rst
@@ -555,7 +555,7 @@
 and experiment with them.  With the result experience, perhaps it'll be possible
 to design a really good catalog and then build support for it into Python 2.2.
 For example, the Distutils :command:`sdist` and :command:`bdist_\*` commands
-could support a ``upload`` option that would automatically upload your
+could support an ``upload`` option that would automatically upload your
 package to a catalog server.
 
 You can start creating packages containing :file:`PKG-INFO` even if you're not
diff --git a/Doc/whatsnew/2.3.rst b/Doc/whatsnew/2.3.rst
--- a/Doc/whatsnew/2.3.rst
+++ b/Doc/whatsnew/2.3.rst
@@ -411,7 +411,7 @@
 
 A new built-in function, :func:`enumerate`, will make certain loops a bit
 clearer.  ``enumerate(thing)``, where *thing* is either an iterator or a
-sequence, returns a iterator that will return ``(0, thing[0])``, ``(1,
+sequence, returns an iterator that will return ``(0, thing[0])``, ``(1,
 thing[1])``, ``(2, thing[2])``, and so forth.
 
 A common idiom to change every element of a list looks like this::
diff --git a/Doc/whatsnew/3.1.rst b/Doc/whatsnew/3.1.rst
--- a/Doc/whatsnew/3.1.rst
+++ b/Doc/whatsnew/3.1.rst
@@ -336,7 +336,7 @@
   (Contributed by David Laban; :issue:`4739`.)
 
 * The :mod:`unittest` module now supports skipping individual tests or classes
-  of tests. And it supports marking a test as a expected failure, a test that
+  of tests. And it supports marking a test as an expected failure, a test that
   is known to be broken, but shouldn't be counted as a failure on a
   TestResult::
 
diff --git a/Doc/whatsnew/3.2.rst b/Doc/whatsnew/3.2.rst
--- a/Doc/whatsnew/3.2.rst
+++ b/Doc/whatsnew/3.2.rst
@@ -788,7 +788,7 @@
   :issue:`8814`.)
 
 * To help write classes with rich comparison methods, a new decorator
-  :func:`functools.total_ordering` will use a existing equality and inequality
+  :func:`functools.total_ordering` will use existing equality and inequality
   methods to fill in the remaining methods.
 
   For example, supplying *__eq__* and *__lt__* will enable
@@ -1399,7 +1399,7 @@
 
 Also, the :class:`zipfile.ZipExtFile` class was reworked internally to represent
 files stored inside an archive.  The new implementation is significantly faster
-and can be wrapped in a :class:`io.BufferedReader` object for more speedups.  It
+and can be wrapped in an :class:`io.BufferedReader` object for more speedups.  It
 also solves an issue where interleaved calls to *read* and *readline* gave the
 wrong results.
 
diff --git a/Doc/whatsnew/3.3.rst b/Doc/whatsnew/3.3.rst
--- a/Doc/whatsnew/3.3.rst
+++ b/Doc/whatsnew/3.3.rst
@@ -1421,7 +1421,7 @@
 
 :class:`http.client.HTTPResponse` now has a
 :meth:`~http.client.HTTPResponse.readinto` method, which means it can be used
-as a :class:`io.RawIOBase` class.  (Contributed by John Kuhn in
+as an :class:`io.RawIOBase` class.  (Contributed by John Kuhn in
 :issue:`13464`.)
 
 
diff --git a/Include/abstract.h b/Include/abstract.h
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -95,7 +95,7 @@
   numeric, sequence, and mapping.  Each protocol consists of a
   collection of related operations.  If an operation that is not
   provided by a particular type is invoked, then a standard exception,
-  NotImplementedError is raised with a operation name as an argument.
+  NotImplementedError is raised with an operation name as an argument.
   In addition, for convenience this interface defines a set of
   constructors for building objects of built-in types.  This is needed
   so new objects can be returned from C functions that otherwise treat
diff --git a/Include/codecs.h b/Include/codecs.h
--- a/Include/codecs.h
+++ b/Include/codecs.h
@@ -165,14 +165,14 @@
        const char *encoding
        );
 
-/* Get a IncrementalEncoder object for the given encoding. */
+/* Get an IncrementalEncoder object for the given encoding. */
 
 PyAPI_FUNC(PyObject *) PyCodec_IncrementalEncoder(
        const char *encoding,
        const char *errors
        );
 
-/* Get a IncrementalDecoder object function for the given encoding. */
+/* Get an IncrementalDecoder object function for the given encoding. */
 
 PyAPI_FUNC(PyObject *) PyCodec_IncrementalDecoder(
        const char *encoding,
diff --git a/Lib/_pyio.py b/Lib/_pyio.py
--- a/Lib/_pyio.py
+++ b/Lib/_pyio.py
@@ -2101,7 +2101,7 @@
 
     def __repr__(self):
         # TextIOWrapper tells the encoding in its repr. In StringIO,
-        # that's a implementation detail.
+        # that's an implementation detail.
         return object.__repr__(self)
 
     @property
diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py
--- a/Lib/asyncio/streams.py
+++ b/Lib/asyncio/streams.py
@@ -255,7 +255,7 @@
     def __init__(self, transport, protocol, reader, loop):
         self._transport = transport
         self._protocol = protocol
-        # drain() expects that the reader has a exception() method
+        # drain() expects that the reader has an exception() method
         assert reader is None or isinstance(reader, StreamReader)
         self._reader = reader
         self._loop = loop
diff --git a/Lib/calendar.py b/Lib/calendar.py
--- a/Lib/calendar.py
+++ b/Lib/calendar.py
@@ -142,7 +142,7 @@
 
     def iterweekdays(self):
         """
-        Return a iterator for one week of weekday numbers starting with the
+        Return an iterator for one week of weekday numbers starting with the
         configured first one.
         """
         for i in range(self.firstweekday, self.firstweekday + 7):
diff --git a/Lib/chunk.py b/Lib/chunk.py
--- a/Lib/chunk.py
+++ b/Lib/chunk.py
@@ -21,7 +21,7 @@
 usage of the Chunk class defined here is to instantiate an instance at
 the start of each chunk and read from the instance until it reaches
 the end, after which a new instance can be instantiated.  At the end
-of the file, creating a new instance will fail with a EOFError
+of the file, creating a new instance will fail with an EOFError
 exception.
 
 Usage:
diff --git a/Lib/codecs.py b/Lib/codecs.py
--- a/Lib/codecs.py
+++ b/Lib/codecs.py
@@ -256,7 +256,7 @@
     """
     def __init__(self, errors='strict'):
         """
-        Create a IncrementalDecoder instance.
+        Create an IncrementalDecoder instance.
 
         The IncrementalDecoder may use different error handling schemes by
         providing the errors keyword argument. See the module docstring
@@ -1007,7 +1007,7 @@
     """
     Encoding iterator.
 
-    Encodes the input strings from the iterator using a IncrementalEncoder.
+    Encodes the input strings from the iterator using an IncrementalEncoder.
 
     errors and kwargs are passed through to the IncrementalEncoder
     constructor.
@@ -1025,7 +1025,7 @@
     """
     Decoding iterator.
 
-    Decodes the input strings from the iterator using a IncrementalDecoder.
+    Decodes the input strings from the iterator using an IncrementalDecoder.
 
     errors and kwargs are passed through to the IncrementalDecoder
     constructor.
diff --git a/Lib/concurrent/futures/_base.py b/Lib/concurrent/futures/_base.py
--- a/Lib/concurrent/futures/_base.py
+++ b/Lib/concurrent/futures/_base.py
@@ -518,7 +518,7 @@
         raise NotImplementedError()
 
     def map(self, fn, *iterables, timeout=None):
-        """Returns a iterator equivalent to map(fn, iter).
+        """Returns an iterator equivalent to map(fn, iter).
 
         Args:
             fn: A callable that will take as many arguments as there are
diff --git a/Lib/difflib.py b/Lib/difflib.py
--- a/Lib/difflib.py
+++ b/Lib/difflib.py
@@ -1469,7 +1469,7 @@
                 yield _make_line(lines,'-',0), None, True
                 continue
             elif s.startswith(('--?+', '--+', '- ')):
-                # in delete block and see a intraline change or unchanged line
+                # in delete block and see an intraline change or unchanged line
                 # coming: yield the delete line and then blanks
                 from_line,to_line = _make_line(lines,'-',0), None
                 num_blanks_to_yield,num_blanks_pending = num_blanks_pending-1,0
diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py
--- a/Lib/distutils/cygwinccompiler.py
+++ b/Lib/distutils/cygwinccompiler.py
@@ -10,9 +10,9 @@
 #
 # * if you use a msvc compiled python version (1.5.2)
 #   1. you have to insert a __GNUC__ section in its config.h
-#   2. you have to generate a import library for its dll
+#   2. you have to generate an import library for its dll
 #      - create a def-file for python??.dll
-#      - create a import library using
+#      - create an import library using
 #             dlltool --dllname python15.dll --def python15.def \
 #                       --output-lib libpython15.a
 #
@@ -318,7 +318,7 @@
         self.dll_libraries = get_msvcr()
 
 # Because these compilers aren't configured in Python's pyconfig.h file by
-# default, we should at least warn the user if he is using a unmodified
+# default, we should at least warn the user if he is using an unmodified
 # version.
 
 CONFIG_H_OK = "ok"
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -287,7 +287,7 @@
         return self.voidcmd(cmd)
 
     def sendeprt(self, host, port):
-        '''Send a EPRT command with the current host and the given port number.'''
+        '''Send an EPRT command with the current host and the given port number.'''
         af = 0
         if self.af == socket.AF_INET:
             af = 1
@@ -852,7 +852,7 @@
 
 
 def parse229(resp, peer):
-    '''Parse the '229' response for a EPSV request.
+    '''Parse the '229' response for an EPSV request.
     Raises error_proto if it does not contain '(|||port|)'
     Return ('host.addr.as.numbers', port#) tuple.'''
 
diff --git a/Lib/getopt.py b/Lib/getopt.py
--- a/Lib/getopt.py
+++ b/Lib/getopt.py
@@ -28,7 +28,7 @@
 # - RETURN_IN_ORDER option
 # - GNU extension with '-' as first character of option string
 # - optional arguments, specified by double colons
-# - a option string with a W followed by semicolon should
+# - an option string with a W followed by semicolon should
 #   treat "-W foo" as "--foo"
 
 __all__ = ["GetoptError","error","getopt","gnu_getopt"]
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -1379,7 +1379,7 @@
             text.see("insert")
             text.undo_block_stop()
 
-    # Our editwin provides a is_char_in_string function that works
+    # Our editwin provides an is_char_in_string function that works
     # with a Tk text index, but PyParse only knows about offsets into
     # a string. This builds a function for PyParse that accepts an
     # offset.
diff --git a/Lib/idlelib/ReplaceDialog.py b/Lib/idlelib/ReplaceDialog.py
--- a/Lib/idlelib/ReplaceDialog.py
+++ b/Lib/idlelib/ReplaceDialog.py
@@ -59,7 +59,7 @@
     def default_command(self, event=None):
         if self.do_find(self.ok):
             if self.do_replace():   # Only find next match if replace succeeded.
-                                    # A bad re can cause a it to fail.
+                                    # A bad re can cause it to fail.
                 self.do_find(0)
 
     def _replace_expand(self, m, repl):
diff --git a/Lib/io.py b/Lib/io.py
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -19,7 +19,7 @@
 Another IOBase subclass, TextIOBase, deals with the encoding and decoding
 of streams into text. TextIOWrapper, which extends it, is a buffered text
 interface to a buffered raw stream (`BufferedIOBase`). Finally, StringIO
-is a in-memory stream for text.
+is an in-memory stream for text.
 
 Argument names are not part of the specification, and only the arguments
 of open() are intended to be used as keyword arguments.
diff --git a/Lib/lib2to3/fixes/fix_input.py b/Lib/lib2to3/fixes/fix_input.py
--- a/Lib/lib2to3/fixes/fix_input.py
+++ b/Lib/lib2to3/fixes/fix_input.py
@@ -17,7 +17,7 @@
               """
 
     def transform(self, node, results):
-        # If we're already wrapped in a eval() call, we're done.
+        # If we're already wrapped in an eval() call, we're done.
         if context.match(node.parent.parent):
             return
 
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -201,7 +201,7 @@
     return fmt
 
 def _parse_overview(lines, fmt, data_process_func=None):
-    """Parse the response to a OVER or XOVER command according to the
+    """Parse the response to an OVER or XOVER command according to the
     overview format `fmt`."""
     n_defaults = len(_DEFAULT_OVERVIEW_FMT)
     overview = []
diff --git a/Lib/pickle.py b/Lib/pickle.py
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -362,7 +362,7 @@
 
         The *file* argument must have a write() method that accepts a
         single bytes argument. It can thus be a file object opened for
-        binary writing, a io.BytesIO instance, or any other custom
+        binary writing, an io.BytesIO instance, or any other custom
         object that meets this interface.
 
         If *fix_imports* is True and *protocol* is less than 3, pickle
@@ -983,7 +983,7 @@
         The argument *file* must have two methods, a read() method that
         takes an integer argument, and a readline() method that requires
         no arguments.  Both methods should return bytes.  Thus *file*
-        can be a binary file object opened for reading, a io.BytesIO
+        can be a binary file object opened for reading, an io.BytesIO
         object, or any other custom object that meets this interface.
 
         The file-like object must have two methods, a read() method
diff --git a/Lib/test/decimaltestdata/fma.decTest b/Lib/test/decimaltestdata/fma.decTest
--- a/Lib/test/decimaltestdata/fma.decTest
+++ b/Lib/test/decimaltestdata/fma.decTest
@@ -148,7 +148,7 @@
 fmax2019 fma -9.999999  9.999999  0E+999999  -> -100.000 Inexact Rounded
 fmax2020 fma -9.999999 -9.999999  0E+999999  ->  100.000 Inexact Rounded
 
--- 1999.12.21: next one is a edge case if intermediate longs are used
+-- 1999.12.21: next one is an edge case if intermediate longs are used
 precision: 15
 fmax2059 fma 999999999999 9765625  0E+999999  -> 9.76562499999023E+18 Inexact Rounded
 precision: 30
diff --git a/Lib/test/decimaltestdata/multiply.decTest b/Lib/test/decimaltestdata/multiply.decTest
--- a/Lib/test/decimaltestdata/multiply.decTest
+++ b/Lib/test/decimaltestdata/multiply.decTest
@@ -49,7 +49,7 @@
 mulx019 multiply -9.999999999  9.999999999 -> -100.000 Inexact Rounded
 mulx020 multiply -9.999999999 -9.999999999 ->  100.000 Inexact Rounded
 
--- 1999.12.21: next one is a edge case if intermediate longs are used
+-- 1999.12.21: next one is an edge case if intermediate longs are used
 precision: 15
 mulx059 multiply 999999999999 9765625 -> 9.76562499999023E+18 Inexact Rounded
 precision: 30
diff --git a/Lib/test/pystone.py b/Lib/test/pystone.py
--- a/Lib/test/pystone.py
+++ b/Lib/test/pystone.py
@@ -35,7 +35,7 @@
                 Under Python 3 version 1.1 would use the normal division
                 operator, resulting in some of the operations mistakenly
                 yielding floats. Version 1.2 instead uses floor division
-                making the benchmark a integer benchmark again.
+                making the benchmark an integer benchmark again.
 
 """
 
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -309,7 +309,7 @@
         # The exponential backoff of the timeout amounts to a total
         # of ~1 second after which the deletion is probably an error
         # anyway.
-        # Testing on a i7 at 4.3GHz shows that usually only 1 iteration is
+        # Testing on an i7 at 4.3GHz shows that usually only 1 iteration is
         # required when contention occurs.
         timeout = 0.001
         while timeout < 1.0:
diff --git a/Lib/test/test_cmd.py b/Lib/test/test_cmd.py
--- a/Lib/test/test_cmd.py
+++ b/Lib/test/test_cmd.py
@@ -110,7 +110,7 @@
     5  12  19
     6  13
 
-    This is a interactive test, put some commands in the cmdqueue attribute
+    This is an interactive test, put some commands in the cmdqueue attribute
     and let it execute
     This test includes the preloop(), postloop(), default(), emptyline(),
     parseline(), do_help() functions
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -97,7 +97,7 @@
         self.assertEqual(r.read(), "")
         self.assertEqual(r.bytebuffer, b"")
 
-        # do the check again, this time using a incremental decoder
+        # do the check again, this time using an incremental decoder
         d = codecs.getincrementaldecoder(self.encoding)()
         result = ""
         for (c, partialresult) in zip(input.encode(self.encoding), partialresults):
diff --git a/Lib/test/test_email/test_email.py b/Lib/test/test_email/test_email.py
--- a/Lib/test/test_email/test_email.py
+++ b/Lib/test/test_email/test_email.py
@@ -3037,7 +3037,7 @@
         # issue 1690608.  email.utils.formataddr() should be rfc2047 aware.
         name = "H\u00e4ns W\u00fcrst"
         addr = 'person at dom.ain'
-        # A object without a header_encode method:
+        # An object without a header_encode method:
         bad_charset = object()
         self.assertRaises(AttributeError, utils.formataddr, (name, addr),
             bad_charset)
diff --git a/Lib/test/test_ipaddress.py b/Lib/test/test_ipaddress.py
--- a/Lib/test/test_ipaddress.py
+++ b/Lib/test/test_ipaddress.py
@@ -1160,7 +1160,7 @@
         # test a /24 is summarized properly
         self.assertEqual(list(summarize(ip1, ip2))[0],
                          ipaddress.ip_network('1.1.1.0/24'))
-        # test an  IPv4 range that isn't on a network byte boundary
+        # test an IPv4 range that isn't on a network byte boundary
         ip2 = ipaddress.ip_address('1.1.1.8')
         self.assertEqual(list(summarize(ip1, ip2)),
                          [ipaddress.ip_network('1.1.1.0/29'),
@@ -1173,7 +1173,7 @@
 
         ip1 = ipaddress.ip_address('1::')
         ip2 = ipaddress.ip_address('1:ffff:ffff:ffff:ffff:ffff:ffff:ffff')
-        # test a IPv6 is sumamrized properly
+        # test an IPv6 is summarized properly
         self.assertEqual(list(summarize(ip1, ip2))[0],
                          ipaddress.ip_network('1::/16'))
         # test an IPv6 range that isn't on a network byte boundary
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -1328,7 +1328,7 @@
         except OSError as e:
             self.assertEqual(e.errno, errno.EBADF)
         else:
-            self.fail("%r didn't raise a OSError with a bad file descriptor"
+            self.fail("%r didn't raise an OSError with a bad file descriptor"
                       % f)
 
     @unittest.skipUnless(hasattr(os, 'isatty'), 'test needs os.isatty()')
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -523,7 +523,7 @@
         result = urllib.request.urlretrieve("file:%s" % support.TESTFN)
         self.assertEqual(result[0], support.TESTFN)
         self.assertIsInstance(result[1], email.message.Message,
-                              "did not get a email.message.Message instance "
+                              "did not get an email.message.Message instance "
                               "as second returned value")
 
     def test_copy(self):
diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py
--- a/Lib/test/test_weakref.py
+++ b/Lib/test/test_weakref.py
@@ -934,7 +934,7 @@
 class WeakMethodTestCase(unittest.TestCase):
 
     def _subclass(self):
-        """Return a Object subclass overriding `some_method`."""
+        """Return an Object subclass overriding `some_method`."""
         class C(Object):
             def some_method(self):
                 return 6
diff --git a/Lib/tkinter/ttk.py b/Lib/tkinter/ttk.py
--- a/Lib/tkinter/ttk.py
+++ b/Lib/tkinter/ttk.py
@@ -289,7 +289,7 @@
     """Format options then call Tk command with args and options and return
     the appropriate result.
 
-    If no option is specified, a dict is returned. If a option is
+    If no option is specified, a dict is returned. If an option is
     specified with the None value, the value for that option is returned.
     Otherwise, the function just sets the passed options and the caller
     shouldn't be expecting a return value anyway."""
diff --git a/Lib/xmlrpc/client.py b/Lib/xmlrpc/client.py
--- a/Lib/xmlrpc/client.py
+++ b/Lib/xmlrpc/client.py
@@ -831,7 +831,7 @@
             raise ValueError("unexpected type in multicall result")
 
 class MultiCall:
-    """server -> a object used to boxcar method calls
+    """server -> an object used to boxcar method calls
 
     server should be a ServerProxy object.
 
@@ -1184,7 +1184,7 @@
     ##
     # Create parser.
     #
-    # @return A 2-tuple containing a parser and a unmarshaller.
+    # @return A 2-tuple containing a parser and an unmarshaller.
 
     def getparser(self):
         # get parser and unmarshaller
diff --git a/Misc/HISTORY b/Misc/HISTORY
--- a/Misc/HISTORY
+++ b/Misc/HISTORY
@@ -1316,7 +1316,7 @@
   import as they are meant for use by importlib.
 
 - Issue #14474: Save and restore exception state in thread.start_new_thread()
-  while writing error message if the thread leaves a unhandled exception.
+  while writing error message if the thread leaves an unhandled exception.
 
 - Issue #13019: Fix potential reference leaks in bytearray.extend().  Patch
   by Suman Saha.
@@ -1967,7 +1967,7 @@
 
 - Issue #7732: Don't open a directory as a file anymore while importing a
   module. Ignore the directory if its name matches the module name (e.g.
-  "__init__.py") and raise a ImportError instead.
+  "__init__.py") and raise an ImportError instead.
 
 - Issue #13021: Missing decref on an error path.  Thanks to Suman Saha for
   finding the bug and providing a patch.
@@ -2019,7 +2019,7 @@
 
 - Issue #10271: Allow warnings.showwarning() be any callable.
 
-- Issue #11627: Fix segfault when __new__ on a exception returns a
+- Issue #11627: Fix segfault when __new__ on an exception returns a
   non-exception class.
 
 - Issue #12149: Update the method cache after a type's dictionary gets
@@ -2048,7 +2048,7 @@
   with other data interleaved between marshalled objects.
 
 - Issue #12356: When required positional or keyword-only arguments are not
-  given, produce a informative error message which includes the name(s) of the
+  given, produce an informative error message which includes the name(s) of the
   missing arguments.
 
 - Issue #12370: Fix super with no arguments when __class__ is overriden in the
@@ -2703,7 +2703,7 @@
 - Issue #12529: fix cgi.parse_header issue on strings with double-quotes and
   semicolons together. Patch by Ben Darnell and Petri Lehtinen.
 
-- Issue #13227: functools.lru_cache() now has a option to distinguish
+- Issue #13227: functools.lru_cache() now has an option to distinguish
   calls with different argument types.
 
 - Issue #6090: zipfile raises a ValueError when a document with a timestamp
@@ -2981,7 +2981,7 @@
 
 - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
 
-- Issue #4376: ctypes now supports nested structures in a endian different than
+- Issue #4376: ctypes now supports nested structures in an endian different than
   the parent structure. Patch by Vlad Riscutia.
 
 - Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a
@@ -3002,7 +3002,7 @@
   Linux for example, to have the same behaviour on all platforms.
 
 - Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support
-  Python scripts using a encoding different than UTF-8 (read the coding cookie
+  Python scripts using an encoding different than UTF-8 (read the coding cookie
   of the script).
 
 - Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors
@@ -5080,7 +5080,7 @@
   ``MaybeEncodingError`` exception.
 
 - Issue #9244: The ``apply_async()`` and ``map_async()`` methods of
-  ``multiprocessing.Pool`` now accepts a ``error_callback`` argument.  This can
+  ``multiprocessing.Pool`` now accepts an ``error_callback`` argument.  This can
   be a callback with the signature ``callback(exc)``, which will be called if
   the target raises an exception.
 
@@ -5177,7 +5177,7 @@
 
 - Close file objects in modulefinder in a timely manner.
 
-- Close a io.TextIOWrapper object in email.parser in a timely manner.
+- Close an io.TextIOWrapper object in email.parser in a timely manner.
 
 - Close a file object in distutils.sysconfig in a timely manner.
 
@@ -7275,7 +7275,7 @@
 - Issue #7610: Reworked implementation of the internal
   ``zipfile.ZipExtFile`` class used to represent files stored inside an
   archive.  The new implementation is significantly faster and can be wrapped in
-  a ``io.BufferedReader`` object for more speedups.  It also solves an
+  an ``io.BufferedReader`` object for more speedups.  It also solves an
   issue where interleaved calls to `read()` and `readline()` give wrong results.
   Patch by Nir Aides.
 
@@ -8650,7 +8650,7 @@
 
 - Issue #5624: Fix the _winreg module name still used in several modules.
 
-- Issue #5628: Fix io.TextIOWrapper.read() with a unreadable buffer.
+- Issue #5628: Fix io.TextIOWrapper.read() with an unreadable buffer.
 
 - Issue #5619: Multiprocessing children disobey the debug flag and causes
   popups on windows buildbots. Patch applied to work around this issue.
@@ -9616,7 +9616,7 @@
 - Issue #4307: The named tuple that ``inspect.getfullargspec()`` returns now
   uses ``kwonlydefaults`` instead of ``kwdefaults``.
 
-- Issue #4298: Fix a segfault when pickle.loads is passed a ill-formed input.
+- Issue #4298: Fix a segfault when pickle.loads is passed ill-formed input.
 
 - Issue #4283: Fix a left-over "iteritems" call in distutils.
 
@@ -11272,7 +11272,7 @@
 -----------------
 
 - Bug #1441486: The literal representation of -(sys.maxint - 1)
-  again evaluates to a int object, not a long.
+  again evaluates to an int object, not a long.
 
 - Bug #1501934: The scope of global variables that are locally assigned
   using augmented assignment is now correctly determined.
@@ -15179,7 +15179,7 @@
   interpreter executions, would fail.
 
 - "%c" % u"a" now returns a unicode string instead of raising a
-  TypeError. u"%c" % 0xffffffff now raises a OverflowError instead
+  TypeError. u"%c" % 0xffffffff now raises an OverflowError instead
   of a ValueError to be consistent with "%c" % 256. See SF patch #710127.
 
 Extension modules
@@ -23072,7 +23072,7 @@
 
 - The interfaces for the bind*() and unbind() widget methods have been
 redesigned; the bind*() methods now return the name of the Tcl command 
-created for the callback, and this can be passed as a optional
+created for the callback, and this can be passed as an optional
 argument to unbind() in order to delete the command (normally, such
 commands are automatically unbound when the widget is destroyed, but
 for some applications this isn't enough).
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -616,7 +616,7 @@
 Tests
 -----
 
-- Issue #25099: Make test_compileall not fail when a entry on sys.path cannot
+- Issue #25099: Make test_compileall not fail when an entry on sys.path cannot
   be written to (commonly seen in administrative installs on Windows).
 
 - Issue #24751: When running regrtest with the ``-w`` command line option,
diff --git a/Modules/_ctypes/libffi/src/x86/darwin64.S b/Modules/_ctypes/libffi/src/x86/darwin64.S
--- a/Modules/_ctypes/libffi/src/x86/darwin64.S
+++ b/Modules/_ctypes/libffi/src/x86/darwin64.S
@@ -350,7 +350,7 @@
 	.set	L$set$3,LUW1-LUW0
 	.long	L$set$3
 
-	/* New stack frame based off rbp.  This is a itty bit of unwind
+	/* New stack frame based off rbp.  This is an itty bit of unwind
 	   trickery in that the CFA *has* changed.  There is no easy way
 	   to describe it correctly on entry to the function.  Fortunately,
 	   it doesn't matter too much since at all points we can correctly
diff --git a/Modules/_ctypes/libffi/src/x86/unix64.S b/Modules/_ctypes/libffi/src/x86/unix64.S
--- a/Modules/_ctypes/libffi/src/x86/unix64.S
+++ b/Modules/_ctypes/libffi/src/x86/unix64.S
@@ -366,7 +366,7 @@
 	.byte	0x4			/* DW_CFA_advance_loc4 */
 	.long	.LUW1-.LUW0
 
-	/* New stack frame based off rbp.  This is a itty bit of unwind
+	/* New stack frame based off rbp.  This is an itty bit of unwind
 	   trickery in that the CFA *has* changed.  There is no easy way
 	   to describe it correctly on entry to the function.  Fortunately,
 	   it doesn't matter too much since at all points we can correctly
diff --git a/Modules/_ctypes/libffi_osx/x86/darwin64.S b/Modules/_ctypes/libffi_osx/x86/darwin64.S
--- a/Modules/_ctypes/libffi_osx/x86/darwin64.S
+++ b/Modules/_ctypes/libffi_osx/x86/darwin64.S
@@ -351,7 +351,7 @@
  .set  L$set$3,LUW1-LUW0
  .long L$set$3
 
- /* New stack frame based off rbp.  This is a itty bit of unwind
+ /* New stack frame based off rbp.  This is an itty bit of unwind
     trickery in that the CFA *has* changed.  There is no easy way
     to describe it correctly on entry to the function.  Fortunately,
     it doesn't matter too much since at all points we can correctly
diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c
--- a/Modules/_hashopenssl.c
+++ b/Modules/_hashopenssl.c
@@ -706,7 +706,7 @@
     if (openssl_obj_name == NULL)
         return;
     /* Ignore aliased names, they pollute the list and OpenSSL appears to
-     * have a its own definition of alias as the resulting list still
+     * have its own definition of alias as the resulting list still
      * contains duplicate and alternate names for several algorithms.     */
     if (openssl_obj_name->alias)
         return;
diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c
--- a/Modules/_io/_iomodule.c
+++ b/Modules/_io/_iomodule.c
@@ -75,7 +75,7 @@
 "Another IOBase subclass, TextIOBase, deals with the encoding and decoding\n"
 "of streams into text. TextIOWrapper, which extends it, is a buffered text\n"
 "interface to a buffered raw stream (`BufferedIOBase`). Finally, StringIO\n"
-"is a in-memory stream for text.\n"
+"is an in-memory stream for text.\n"
 "\n"
 "Argument names are not part of the specification, and only the arguments\n"
 "of open() are intended to be used as keyword arguments.\n"
diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c
--- a/Modules/_io/textio.c
+++ b/Modules/_io/textio.c
@@ -931,8 +931,8 @@
         if (self->encoding == NULL) {
           catch_ImportError:
             /*
-             Importing locale can raise a ImportError because of
-             _functools, and locale.getpreferredencoding can raise a
+             Importing locale can raise an ImportError because of
+             _functools, and locale.getpreferredencoding can raise an
              ImportError if _locale is not available.  These will happen
              during module building.
             */
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -4032,7 +4032,7 @@
 
 The *file* argument must have a write() method that accepts a single
 bytes argument. It can thus be a file object opened for binary
-writing, a io.BytesIO instance, or any other custom object that meets
+writing, an io.BytesIO instance, or any other custom object that meets
 this interface.
 
 If *fix_imports* is True and protocol is less than 3, pickle will try
@@ -4042,7 +4042,7 @@
 
 static int
 _pickle_Pickler___init___impl(PicklerObject *self, PyObject *file, PyObject *protocol, int fix_imports)
-/*[clinic end generated code: output=56e229f3b1f4332f input=b8cdeb7e3f5ee674]*/
+/*[clinic end generated code: output=56e229f3b1f4332f input=4faabdbc763c2389]*/
 {
     _Py_IDENTIFIER(persistent_id);
     _Py_IDENTIFIER(dispatch_table);
@@ -6443,7 +6443,7 @@
 The argument *file* must have two methods, a read() method that takes
 an integer argument, and a readline() method that requires no
 arguments.  Both methods should return bytes.  Thus *file* can be a
-binary file object opened for reading, a io.BytesIO object, or any
+binary file object opened for reading, an io.BytesIO object, or any
 other custom object that meets this interface.
 
 Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
@@ -6458,7 +6458,7 @@
 
 static int
 _pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject *file, int fix_imports, const char *encoding, const char *errors)
-/*[clinic end generated code: output=b9ed1d84d315f3b5 input=30b4dc9e976b890c]*/
+/*[clinic end generated code: output=b9ed1d84d315f3b5 input=04ece661aa884837]*/
 {
     _Py_IDENTIFIER(persistent_load);
 
@@ -6877,7 +6877,7 @@
 
 The *file* argument must have a write() method that accepts a single
 bytes argument.  It can thus be a file object opened for binary
-writing, a io.BytesIO instance, or any other custom object that meets
+writing, an io.BytesIO instance, or any other custom object that meets
 this interface.
 
 If *fix_imports* is True and protocol is less than 3, pickle will try
@@ -6887,7 +6887,7 @@
 
 static PyObject *
 _pickle_dump_impl(PyModuleDef *module, PyObject *obj, PyObject *file, PyObject *protocol, int fix_imports)
-/*[clinic end generated code: output=a606e626d553850d input=e9e5fdd48de92eae]*/
+/*[clinic end generated code: output=a606e626d553850d input=830f8a64cef6f042]*/
 {
     PicklerObject *pickler = _Pickler_New();
 
@@ -6985,7 +6985,7 @@
 The argument *file* must have two methods, a read() method that takes
 an integer argument, and a readline() method that requires no
 arguments.  Both methods should return bytes.  Thus *file* can be a
-binary file object opened for reading, a io.BytesIO object, or any
+binary file object opened for reading, an io.BytesIO object, or any
 other custom object that meets this interface.
 
 Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
@@ -7000,7 +7000,7 @@
 
 static PyObject *
 _pickle_load_impl(PyModuleDef *module, PyObject *file, int fix_imports, const char *encoding, const char *errors)
-/*[clinic end generated code: output=568c61356c172654 input=da97372e38e510a6]*/
+/*[clinic end generated code: output=568c61356c172654 input=2df7c7a1e6742204]*/
 {
     PyObject *result;
     UnpicklerObject *unpickler = _Unpickler_New();
diff --git a/Modules/atexitmodule.c b/Modules/atexitmodule.c
--- a/Modules/atexitmodule.c
+++ b/Modules/atexitmodule.c
@@ -257,7 +257,7 @@
 PyDoc_STRVAR(atexit_unregister__doc__,
 "unregister(func) -> None\n\
 \n\
-Unregister a exit function which was previously registered using\n\
+Unregister an exit function which was previously registered using\n\
 atexit.register\n\
 \n\
     func - function to be unregistered");
diff --git a/Modules/audioop.c b/Modules/audioop.c
--- a/Modules/audioop.c
+++ b/Modules/audioop.c
@@ -112,7 +112,7 @@
 
 /*
  * linear2ulaw() accepts a 14-bit signed integer and encodes it as u-law data
- * stored in a unsigned char.  This function should only be called with
+ * stored in an unsigned char.  This function should only be called with
  * the data shifted such that it only contains information in the lower
  * 14-bits.
  *
@@ -218,7 +218,7 @@
 
 /*
  * linear2alaw() accepts an 13-bit signed integer and encodes it as A-law data
- * stored in a unsigned char.  This function should only be called with
+ * stored in an unsigned char.  This function should only be called with
  * the data shifted such that it only contains information in the lower
  * 13-bits.
  *
diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h
--- a/Modules/clinic/_pickle.c.h
+++ b/Modules/clinic/_pickle.c.h
@@ -77,7 +77,7 @@
 "\n"
 "The *file* argument must have a write() method that accepts a single\n"
 "bytes argument. It can thus be a file object opened for binary\n"
-"writing, a io.BytesIO instance, or any other custom object that meets\n"
+"writing, an io.BytesIO instance, or any other custom object that meets\n"
 "this interface.\n"
 "\n"
 "If *fix_imports* is True and protocol is less than 3, pickle will try\n"
@@ -258,7 +258,7 @@
 "The argument *file* must have two methods, a read() method that takes\n"
 "an integer argument, and a readline() method that requires no\n"
 "arguments.  Both methods should return bytes.  Thus *file* can be a\n"
-"binary file object opened for reading, a io.BytesIO object, or any\n"
+"binary file object opened for reading, an io.BytesIO object, or any\n"
 "other custom object that meets this interface.\n"
 "\n"
 "Optional keyword arguments are *fix_imports*, *encoding* and *errors*,\n"
@@ -366,7 +366,7 @@
 "\n"
 "The *file* argument must have a write() method that accepts a single\n"
 "bytes argument.  It can thus be a file object opened for binary\n"
-"writing, a io.BytesIO instance, or any other custom object that meets\n"
+"writing, an io.BytesIO instance, or any other custom object that meets\n"
 "this interface.\n"
 "\n"
 "If *fix_imports* is True and protocol is less than 3, pickle will try\n"
@@ -459,7 +459,7 @@
 "The argument *file* must have two methods, a read() method that takes\n"
 "an integer argument, and a readline() method that requires no\n"
 "arguments.  Both methods should return bytes.  Thus *file* can be a\n"
-"binary file object opened for reading, a io.BytesIO object, or any\n"
+"binary file object opened for reading, an io.BytesIO object, or any\n"
 "other custom object that meets this interface.\n"
 "\n"
 "Optional keyword arguments are *fix_imports*, *encoding* and *errors*,\n"
@@ -542,4 +542,4 @@
 exit:
     return return_value;
 }
-/*[clinic end generated code: output=3aba79576e240c62 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1ba210152e2261d8 input=a9049054013a1b77]*/
diff --git a/Modules/expat/pyexpatns.h b/Modules/expat/pyexpatns.h
--- a/Modules/expat/pyexpatns.h
+++ b/Modules/expat/pyexpatns.h
@@ -21,7 +21,7 @@
  *
  *
  * The Solution:
- * Prefix all a exported symbols with "PyExpat_". This is similar to
+ * Prefix all exported symbols with "PyExpat_". This is similar to
  * what Mozilla does for some common libs:
  * http://lxr.mozilla.org/seamonkey/source/modules/libimg/png/mozpngconf.h#115
  *
diff --git a/Modules/hashlib.h b/Modules/hashlib.h
--- a/Modules/hashlib.h
+++ b/Modules/hashlib.h
@@ -30,7 +30,7 @@
 /*
  * Helper code to synchronize access to the hash object when the GIL is
  * released around a CPU consuming hashlib operation. All code paths that
- * access a mutable part of obj must be enclosed in a ENTER_HASHLIB /
+ * access a mutable part of obj must be enclosed in an ENTER_HASHLIB /
  * LEAVE_HASHLIB block or explicitly acquire and release the lock inside
  * a PY_BEGIN / END_ALLOW_THREADS block if they wish to release the GIL for
  * an operation.
diff --git a/Modules/readline.c b/Modules/readline.c
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -1195,7 +1195,7 @@
         return NULL;
     }
 
-    /* We got an EOF, return a empty string. */
+    /* We got an EOF, return an empty string. */
     if (p == NULL) {
         p = PyMem_RawMalloc(1);
         if (p != NULL)
diff --git a/Objects/abstract.c b/Objects/abstract.c
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1243,7 +1243,7 @@
         if (truncated == NULL || PyLong_Check(truncated))
             return truncated;
         /* __trunc__ is specified to return an Integral type,
-           but int() needs to return a int. */
+           but int() needs to return an int. */
         m = truncated->ob_type->tp_as_number;
         if (m == NULL || m->nb_int == NULL) {
             PyErr_Format(
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -867,7 +867,7 @@
 static int
 oserror_use_init(PyTypeObject *type)
 {
-    /* When __init__ is defined in a OSError subclass, we want any
+    /* When __init__ is defined in an OSError subclass, we want any
        extraneous argument to __new__ to be ignored.  The only reasonable
        solution, given __new__ takes a variable number of arguments,
        is to defer arg parsing and initialization to __init__.
diff --git a/Python/compile.c b/Python/compile.c
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -549,7 +549,7 @@
         return 0;
     }
     if (u->u_ste->ste_needs_class_closure) {
-        /* Cook up a implicit __class__ cell. */
+        /* Cook up an implicit __class__ cell. */
         _Py_IDENTIFIER(__class__);
         PyObject *tuple, *name, *zero;
         int res;
diff --git a/Python/thread.c b/Python/thread.c
--- a/Python/thread.c
+++ b/Python/thread.c
@@ -31,7 +31,7 @@
    threads.
 
    This is valid for HP-UX 11.23 running on an ia64 system. If needed, add
-   a check of __ia64 to verify that we're running on a ia64 system instead
+   a check of __ia64 to verify that we're running on an ia64 system instead
    of a pa-risc system.
 */
 #ifdef __hpux
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py
--- a/Tools/gdb/libpython.py
+++ b/Tools/gdb/libpython.py
@@ -91,7 +91,7 @@
 
 
 def safety_limit(val):
-    # Given a integer value from the process being debugged, limit it to some
+    # Given an integer value from the process being debugged, limit it to some
     # safety threshold so that arbitrary breakage within said process doesn't
     # break the gdb process too much (e.g. sizes of iterations, sizes of lists)
     return min(val, 1000)
@@ -158,7 +158,7 @@
 
 class PyObjectPtr(object):
     """
-    Class wrapping a gdb.Value that's a either a (PyObject*) within the
+    Class wrapping a gdb.Value that's either a (PyObject*) within the
     inferior process, or some subclass pointer e.g. (PyBytesObject*)
 
     There will be a subclass for every refined PyObject type that we care

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list