Removed duplicated words in in comments and docs.
diff --git a/Doc/library/base64.rst b/Doc/library/base64.rst
index 02b4d7b..3d23dfc 100644
--- a/Doc/library/base64.rst
+++ b/Doc/library/base64.rst
@@ -13,7 +13,7 @@
This module provides functions for encoding binary data to printable
ASCII characters and decoding such encodings back to binary data.
It provides encoding and decoding functions for the encodings specified in
-in :rfc:`3548`, which defines the Base16, Base32, and Base64 algorithms,
+:rfc:`3548`, which defines the Base16, Base32, and Base64 algorithms,
and for the de-facto standard Ascii85 and Base85 encodings.
The :rfc:`3548` encodings are suitable for encoding binary data so that it can
diff --git a/Doc/whatsnew/3.3.rst b/Doc/whatsnew/3.3.rst
index d1fa1e1..6a2c425 100644
--- a/Doc/whatsnew/3.3.rst
+++ b/Doc/whatsnew/3.3.rst
@@ -1540,7 +1540,7 @@
to override the default behavior of inheriting the ``daemon`` flag from
the parent process (:issue:`6064`).
-New attribute attribute :data:`multiprocessing.Process.sentinel` allows a
+New attribute :data:`multiprocessing.Process.sentinel` allows a
program to wait on multiple :class:`~multiprocessing.Process` objects at one
time using the appropriate OS primitives (for example, :mod:`select` on
posix systems).
diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py
index 40662a3..19e7918 100644
--- a/Lib/asyncio/futures.py
+++ b/Lib/asyncio/futures.py
@@ -61,7 +61,7 @@
the Future is collected, and the helper is present, the helper
object is also collected, and its __del__() method will log the
traceback. When the Future's result() or exception() method is
- called (and a helper object is present), it removes the the helper
+ called (and a helper object is present), it removes the helper
object, after calling its clear() method to prevent it from
logging.
diff --git a/Lib/hashlib.py b/Lib/hashlib.py
index e652fc6..316cece 100644
--- a/Lib/hashlib.py
+++ b/Lib/hashlib.py
@@ -172,7 +172,7 @@
def prf(msg, inner=inner, outer=outer):
# PBKDF2_HMAC uses the password as key. We can re-use the same
- # digest objects and and just update copies to skip initialization.
+ # digest objects and just update copies to skip initialization.
icpy = inner.copy()
ocpy = outer.copy()
icpy.update(msg)
diff --git a/Lib/test/test_asyncio/test_windows_events.py b/Lib/test/test_asyncio/test_windows_events.py
index 85d9669..b4d9398 100644
--- a/Lib/test/test_asyncio/test_windows_events.py
+++ b/Lib/test/test_asyncio/test_windows_events.py
@@ -105,7 +105,7 @@
_overlapped.SetEvent(event)
- # Wait for for set event;
+ # Wait for set event;
# result should be True immediately
fut = self.loop._proactor.wait_for_handle(event, 10)
start = self.loop.time()
diff --git a/Lib/test/test_docxmlrpc.py b/Lib/test/test_docxmlrpc.py
index cb6366c..06161f2 100644
--- a/Lib/test/test_docxmlrpc.py
+++ b/Lib/test/test_docxmlrpc.py
@@ -10,7 +10,7 @@
PORT = None
def make_request_and_skipIf(condition, reason):
- # If we skip the test, we have to make a request because the
+ # If we skip the test, we have to make a request because
# the server created in setUp blocks expecting one to come in.
if not condition:
return lambda func: func
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
index 99b3eda..9194740 100644
--- a/Lib/test/test_xmlrpc.py
+++ b/Lib/test/test_xmlrpc.py
@@ -517,7 +517,7 @@
return True
def make_request_and_skipIf(condition, reason):
- # If we skip the test, we have to make a request because the
+ # If we skip the test, we have to make a request because
# the server created in setUp blocks expecting one to come in.
if not condition:
return lambda func: func
diff --git a/Lib/test/test_zipimport_support.py b/Lib/test/test_zipimport_support.py
index 84ba5e0..66c3557 100644
--- a/Lib/test/test_zipimport_support.py
+++ b/Lib/test/test_zipimport_support.py
@@ -57,7 +57,7 @@
# This used to use the ImportHooksBaseTestCase to restore
# the state of the import related information
# in the sys module after each test. However, that restores
- # *too much* information and breaks for the invocation of
+ # *too much* information and breaks for the invocation
# of test_doctest. So we do our own thing and leave
# sys.modules alone.
# We also clear the linecache and zipimport cache
diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py
index d9e9807..a8585b6 100644
--- a/Lib/xml/etree/ElementTree.py
+++ b/Lib/xml/etree/ElementTree.py
@@ -125,7 +125,7 @@
This class is the reference implementation of the Element interface.
An element's length is its number of subelements. That means if you
- you want to check if an element is truly empty, you should check BOTH
+ want to check if an element is truly empty, you should check BOTH
its length AND its text attribute.
The element tag, attribute names, and attribute values can be either
diff --git a/Misc/HISTORY b/Misc/HISTORY
index 88e8a6b..8370d8e 100644
--- a/Misc/HISTORY
+++ b/Misc/HISTORY
@@ -3972,7 +3972,7 @@
- Issue #12041: Make test_wait3 more robust.
- Issue #11873: Change regex in test_compileall to fix occasional failures when
- when the randomly generated temporary path happened to match the regex.
+ the randomly generated temporary path happened to match the regex.
- Issue #11958: Fix FTP tests for IPv6, bind to "::1" instead of "localhost".
Patch written by Charles-Francois Natali.
@@ -14018,7 +14018,7 @@
- When method objects have an attribute that can be satisfied either
by the function object or by the method object, the function
object's attribute usually wins. Christian Tismer pointed out that
- that this is really a mistake, because this only happens for special
+ this is really a mistake, because this only happens for special
methods (like __reduce__) where the method object's version is
really more appropriate than the function's attribute. So from now
on, all method attributes will have precedence over function
diff --git a/Misc/NEWS b/Misc/NEWS
index 9cac209..390a69a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1362,7 +1362,7 @@
- Issue #15304: concurrent.futures.wait() can block forever even if
Futures have completed. Patch by Glenn Langford.
-- Issue #14455: plistlib: fix serializing integers integers in the range
+- Issue #14455: plistlib: fix serializing integers in the range
of an unsigned long long but outside of the range of signed long long for
binary plist files.
@@ -1373,7 +1373,7 @@
Patch mostly by Serhiy Storchaka.
- Update the python.gif icon for the Idle classbrowser and pathbowser
- from the old green snake to the new new blue and yellow snakes.
+ from the old green snake to the new blue and yellow snakes.
- Issue #17721: Remove non-functional configuration dialog help button until we
make it actually gives some help when clicked. Patch by Guilherme Simões.
@@ -2654,7 +2654,7 @@
reside in the os module.
- Issue #19205: Don't import the 're' module in site and sysconfig module to
- to speed up interpreter start.
+ speed up interpreter start.
- Issue #9548: Add a minimal "_bootlocale" module that is imported by the
_io module instead of the full locale module.
diff --git a/Modules/_tracemalloc.c b/Modules/_tracemalloc.c
index 780e8ed..bbe7259 100644
--- a/Modules/_tracemalloc.c
+++ b/Modules/_tracemalloc.c
@@ -104,7 +104,7 @@
Protected by TABLES_LOCK(). */
static size_t tracemalloc_peak_traced_memory = 0;
-/* Hash table used as a set to to intern filenames:
+/* Hash table used as a set to intern filenames:
PyObject* => PyObject*.
Protected by the GIL */
static _Py_hashtable_t *tracemalloc_filenames = NULL;
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index e1e5af9..e2d9b5c 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -10289,7 +10289,7 @@
/* This code is used to ensure that the tables of configuration value names
- * are in sorted order as required by conv_confname(), and also to build the
+ * are in sorted order as required by conv_confname(), and also to build
* the exported dictionaries that are used to publish information about the
* names available on the host platform.
*
diff --git a/Python/pystrtod.c b/Python/pystrtod.c
index b8dd919..209c908 100644
--- a/Python/pystrtod.c
+++ b/Python/pystrtod.c
@@ -325,7 +325,7 @@
On overflow (e.g., when trying to convert '1e500' on an IEEE 754 machine),
if overflow_exception is NULL then +-Py_HUGE_VAL is returned, and no Python
- exception is raised. Otherwise, overflow_exception should point to a
+ exception is raised. Otherwise, overflow_exception should point to
a Python exception, this exception will be raised, -1.0 will be returned,
and *endptr will point just past the end of the converted value.
diff --git a/Python/random.c b/Python/random.c
index 2941ba1..0803006 100644
--- a/Python/random.c
+++ b/Python/random.c
@@ -227,7 +227,7 @@
}
/* Fill buffer with size pseudo-random bytes from the operating system random
- number generator (RNG). It is suitable for for most cryptographic purposes
+ number generator (RNG). It is suitable for most cryptographic purposes
except long living private keys for asymmetric encryption.
Return 0 on success, raise an exception and return -1 on error. */
diff --git a/Python/thread.c b/Python/thread.c
index d1cb0e6..4e695ae 100644
--- a/Python/thread.c
+++ b/Python/thread.c
@@ -221,7 +221,7 @@
goto Done;
}
/* Sanity check. These states should never happen but if
- * they do we must abort. Otherwise we'll end up spinning in
+ * they do we must abort. Otherwise we'll end up spinning
* in a tight loop with the lock held. A similar check is done
* in pystate.c tstate_delete_common(). */
if (p == prev_p)