Issue #27993: Fix problems with plural objects in docs and comments
diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst
index 995c4ee..fab0727 100644
--- a/Doc/library/argparse.rst
+++ b/Doc/library/argparse.rst
@@ -188,7 +188,7 @@
 prog
 ^^^^
 
-By default, :class:`ArgumentParser` objects uses ``sys.argv[0]`` to determine
+By default, :class:`ArgumentParser` objects use ``sys.argv[0]`` to determine
 how to display the name of the program in help messages.  This default is almost
 always desirable because it will make the help messages match how the program was
 invoked on the command line.  For example, consider a file named
@@ -558,7 +558,7 @@
 ^^^^^^^^^^^^^^^^
 
 :class:`ArgumentParser` objects do not allow two actions with the same option
-string.  By default, :class:`ArgumentParser` objects raises an exception if an
+string.  By default, :class:`ArgumentParser` objects raise an exception if an
 attempt is made to create an argument with an option string that is already in
 use::
 
diff --git a/Doc/library/weakref.rst b/Doc/library/weakref.rst
index 0470bd1..e289b97 100644
--- a/Doc/library/weakref.rst
+++ b/Doc/library/weakref.rst
@@ -414,7 +414,7 @@
 Example
 -------
 
-This simple example shows how an application can use objects IDs to retrieve
+This simple example shows how an application can use object IDs to retrieve
 objects that it has seen before.  The IDs of the objects can then be used in
 other data structures without forcing the objects to remain alive, but the
 objects can still be retrieved by ID if they do.
diff --git a/Doc/library/xml.dom.rst b/Doc/library/xml.dom.rst
index b037ff6..de334af 100644
--- a/Doc/library/xml.dom.rst
+++ b/Doc/library/xml.dom.rst
@@ -404,7 +404,7 @@
 ^^^^^^^^^^^^^^^^
 
 A :class:`NodeList` represents a sequence of nodes.  These objects are used in
-two ways in the DOM Core recommendation:  the :class:`Element` objects provides
+two ways in the DOM Core recommendation:  an :class:`Element` object provides
 one as its list of child nodes, and the :meth:`getElementsByTagName` and
 :meth:`getElementsByTagNameNS` methods of :class:`Node` return objects with this
 interface to represent query results.
diff --git a/Lib/inspect.py b/Lib/inspect.py
index e830eb6..ca1d551 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -171,9 +171,8 @@
 def isgeneratorfunction(object):
     """Return true if the object is a user-defined generator function.
 
-    Generator function objects provides same attributes as functions.
-
-    See help(isfunction) for attributes listing."""
+    Generator function objects provide the same attributes as functions.
+    See help(isfunction) for a list of attributes."""
     return bool((isfunction(object) or ismethod(object)) and
                 object.__code__.co_flags & CO_GENERATOR)
 
diff --git a/Lib/test/test_json/test_decode.py b/Lib/test/test_json/test_decode.py
index cc83b45..fdafeb6 100644
--- a/Lib/test/test_json/test_decode.py
+++ b/Lib/test/test_json/test_decode.py
@@ -35,7 +35,7 @@
         self.assertEqual(self.loads(s, object_pairs_hook=OrderedDict,
                                     object_hook=lambda x: None),
                          OrderedDict(p))
-        # check that empty objects literals work (see #17368)
+        # check that empty object literals work (see #17368)
         self.assertEqual(self.loads('{}', object_pairs_hook=OrderedDict),
                          OrderedDict())
         self.assertEqual(self.loads('{"empty": {}}',
diff --git a/Misc/HISTORY b/Misc/HISTORY
index 5995d3a..73fb1d3 100644
--- a/Misc/HISTORY
+++ b/Misc/HISTORY
@@ -26057,7 +26057,7 @@
 module implementing deepcopy and normal (shallow) copy operations.
 See the library reference manual.
 
-- Documentation strings for many objects types are accessible through
+- Documentation strings for many object types are accessible through
 the __doc__ attribute.  Modules, classes and functions support special
 syntax to initialize the __doc__ attribute: if the first statement
 consists of just a string literal, that string literal becomes the
diff --git a/Misc/NEWS b/Misc/NEWS
index 816f959..d142675 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -4771,7 +4771,7 @@
 
 - Issue #20588: Make Python-ast.c C89 compliant.
 
-- Issue #20437: Fixed 22 potential bugs when deleting objects references.
+- Issue #20437: Fixed 22 potential bugs when deleting object references.
 
 - Issue #20500: Displaying an exception at interpreter shutdown no longer
   risks triggering an assertion failure in PyObject_Str.
@@ -5676,7 +5676,7 @@
   when the creation of the replacement exception won't lose any information.
 
 - Issue #19466: Clear the frames of daemon threads earlier during the
-  Python shutdown to call objects destructors. So "unclosed file" resource
+  Python shutdown to call object destructors. So "unclosed file" resource
   warnings are now correctly emitted for daemon threads.
 
 - Issue #19514: Deduplicate some _Py_IDENTIFIER declarations.