]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
GH-101898: Fix missing term references for hashable definition (GH-101899)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 14 Feb 2023 10:47:49 +0000 (02:47 -0800)
committerGitHub <noreply@github.com>
Tue, 14 Feb 2023 10:47:49 +0000 (02:47 -0800)
Fix missing term references for hashable definition
(cherry picked from commit 3690688149dca11589af59b7704541336613199a)

Co-authored-by: Furkan Onder <furkanonder@protonmail.com>
16 files changed:
Doc/c-api/dict.rst
Doc/c-api/object.rst
Doc/faq/programming.rst
Doc/library/abc.rst
Doc/library/collections.abc.rst
Doc/library/collections.rst
Doc/library/datetime.rst
Doc/library/fractions.rst
Doc/library/functools.rst
Doc/library/graphlib.rst
Doc/library/inspect.rst
Doc/library/operator.rst
Doc/library/pathlib.rst
Doc/library/stdtypes.rst
Doc/library/typing.rst
Doc/reference/datamodel.rst

index 819168d48707c188394decdd5aa87f76a231d31a..be7b5f1352433ebbe7bc606b148bca0613d5a1a3 100644 (file)
@@ -80,7 +80,7 @@ Dictionary Objects
 
 .. c:function:: int PyDict_DelItem(PyObject *p, PyObject *key)
 
-   Remove the entry in dictionary *p* with key *key*. *key* must be hashable;
+   Remove the entry in dictionary *p* with key *key*. *key* must be :term:`hashable`;
    if it isn't, :exc:`TypeError` is raised.
    If *key* is not in the dictionary, :exc:`KeyError` is raised.
    Return ``0`` on success or ``-1`` on failure.
index eef42ca1326d5e7f73c7c8795a293646baa81629..feadf503205e09c7cbce555545978037fb9b9f63 100644 (file)
@@ -263,7 +263,7 @@ Object Protocol
 
 .. c:function:: Py_hash_t PyObject_HashNotImplemented(PyObject *o)
 
-   Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and return ``-1``.
+   Set a :exc:`TypeError` indicating that ``type(o)`` is not :term:`hashable` and return ``-1``.
    This function receives special treatment when stored in a ``tp_hash`` slot,
    allowing a type to explicitly indicate to the interpreter that it is not
    hashable.
index 1bcca4c62d27ecdea2ae96e31b6c7541d1b5f1b5..00b9008aa1b0cee96f53cce698049ba28829f373 100644 (file)
@@ -1965,7 +1965,7 @@ method result will be released right away.  The disadvantage is that if
 instances accumulate, so too will the accumulated method results.  They
 can grow without bound.
 
-The *lru_cache* approach works with methods that have hashable
+The *lru_cache* approach works with methods that have :term:`hashable`
 arguments.  It creates a reference to the instance unless special
 efforts are made to pass in weak references.
 
index 3b74622e7ff46c86722984fddaa3a17d0e011db0..274b2d69f0ab5c5de3dc5b684d680c924fa46785 100644 (file)
@@ -21,7 +21,7 @@ The :mod:`collections` module has some concrete classes that derive from
 ABCs; these can, of course, be further derived. In addition, the
 :mod:`collections.abc` submodule has some ABCs that can be used to test whether
 a class or instance provides a particular interface, for example, if it is
-hashable or if it is a mapping.
+:term:`hashable` or if it is a mapping.
 
 
 This module provides the metaclass :class:`ABCMeta` for defining ABCs and
index 2c941b47748d36a781d406f04adcccb628022ce7..6732b04fc1a53e60e995e8239d32766febca5909 100644 (file)
@@ -22,7 +22,7 @@
 
 This module provides :term:`abstract base classes <abstract base class>` that
 can be used to test whether a class provides a particular interface; for
-example, whether it is hashable or whether it is a mapping.
+example, whether it is :term:`hashable` or whether it is a mapping.
 
 An :func:`issubclass` or :func:`isinstance` test for an interface works in one
 of three ways.
@@ -406,7 +406,7 @@ Notes on using :class:`Set` and :class:`MutableSet` as a mixin:
 (3)
    The :class:`Set` mixin provides a :meth:`_hash` method to compute a hash value
    for the set; however, :meth:`__hash__` is not defined because not all sets
-   are hashable or immutable.  To add set hashability using mixins,
+   are :term:`hashable` or immutable.  To add set hashability using mixins,
    inherit from both :meth:`Set` and :meth:`Hashable`, then define
    ``__hash__ = Set._hash``.
 
index 20863837fa1b8f4a4931fc2c057e1824fe1c7867..285d362104119ae88cd36da6a36b46cbaf6f0c6c 100644 (file)
@@ -25,7 +25,7 @@ Python's general purpose built-in containers, :class:`dict`, :class:`list`,
 :func:`namedtuple`      factory function for creating tuple subclasses with named fields
 :class:`deque`          list-like container with fast appends and pops on either end
 :class:`ChainMap`       dict-like class for creating a single view of multiple mappings
-:class:`Counter`        dict subclass for counting hashable objects
+:class:`Counter`        dict subclass for counting :term:`hashable` objects
 :class:`OrderedDict`    dict subclass that remembers the order entries were added
 :class:`defaultdict`    dict subclass that calls a factory function to supply missing values
 :class:`UserDict`       wrapper around dictionary objects for easier dict subclassing
@@ -241,7 +241,7 @@ For example::
 
 .. class:: Counter([iterable-or-mapping])
 
-    A :class:`Counter` is a :class:`dict` subclass for counting hashable objects.
+    A :class:`Counter` is a :class:`dict` subclass for counting :term:`hashable` objects.
     It is a collection where elements are stored as dictionary keys
     and their counts are stored as dictionary values.  Counts are allowed to be
     any integer value including zero or negative counts.  The :class:`Counter`
index e23d2a96cc26d43a3d8ce0cf1da860c274bb0484..9e1cd323ee16a0456d753469efb0ae139a292e75 100644 (file)
@@ -154,7 +154,7 @@ The :class:`date`, :class:`.datetime`, :class:`.time`, and :class:`timezone` typ
 share these common features:
 
 - Objects of these types are immutable.
-- Objects of these types are hashable, meaning that they can be used as
+- Objects of these types are :term:`hashable`, meaning that they can be used as
   dictionary keys.
 - Objects of these types support efficient pickling via the :mod:`pickle` module.
 
index 0f7940ae68bef4f70ec7ffb4c65b663dea6552da..43cfd554df0b4c5f934762727d839ceabdd3490c 100644 (file)
@@ -76,7 +76,7 @@ another rational number, or from a string.
 
    The :class:`Fraction` class inherits from the abstract base class
    :class:`numbers.Rational`, and implements all of the methods and
-   operations from that class.  :class:`Fraction` instances are hashable,
+   operations from that class.  :class:`Fraction` instances are :term:`hashable`,
    and should be treated as immutable.  In addition,
    :class:`Fraction` has the following properties and methods:
 
index 188443c2964d604131fd3abe5f23914bf39118bb..4802420681c4d256bfc32b51a733f38257b56603 100644 (file)
@@ -141,7 +141,7 @@ The :mod:`functools` module defines the following functions:
    function is periodically called with the same arguments.
 
    Since a dictionary is used to cache results, the positional and keyword
-   arguments to the function must be hashable.
+   arguments to the function must be :term:`hashable`.
 
    Distinct argument patterns may be considered to be distinct calls with
    separate cache entries.  For example, `f(a=1, b=2)` and `f(b=2, a=1)`
index 2bc80da4ead2a252e573f202485adde3fc576343..fe7932e7a61cb55412271332de59c550993fa669 100644 (file)
@@ -17,7 +17,7 @@
 
 .. class:: TopologicalSorter(graph=None)
 
-   Provides functionality to topologically sort a graph of hashable nodes.
+   Provides functionality to topologically sort a graph of :term:`hashable` nodes.
 
    A topological order is a linear ordering of the vertices in a graph such that
    for every directed edge u -> v from vertex u to vertex v, vertex u comes
@@ -85,7 +85,7 @@
    .. method:: add(node, *predecessors)
 
       Add a new node and its predecessors to the graph. Both the *node* and all
-      elements in *predecessors* must be hashable.
+      elements in *predecessors* must be :term:`hashable`.
 
       If called multiple times with the same node argument, the set of
       dependencies will be the union of all dependencies passed in.
index 56e6fff921ffd79d7ed87dcefdb008c76d10841a..cc9c22fe3d9778e65ee9eaf1e8b34d5069f935f8 100644 (file)
@@ -641,7 +641,7 @@ function.
    modified copy.
 
    .. versionchanged:: 3.5
-      Signature objects are picklable and hashable.
+      Signature objects are picklable and :term:`hashable`.
 
    .. attribute:: Signature.empty
 
@@ -719,7 +719,7 @@ function.
    you can use :meth:`Parameter.replace` to create a modified copy.
 
    .. versionchanged:: 3.5
-      Parameter objects are picklable and hashable.
+      Parameter objects are picklable and :term:`hashable`.
 
    .. attribute:: Parameter.empty
 
index 0cdba68f3770edfe9c536021efc1645ecba0eb36..08497c4254d0c62c946e8c72c3eb6cd75bb32811 100644 (file)
@@ -316,7 +316,7 @@ expect a function argument.
           return g
 
    The items can be any type accepted by the operand's :meth:`__getitem__`
-   method.  Dictionaries accept any hashable value.  Lists, tuples, and
+   method.  Dictionaries accept any :term:`hashable` value.  Lists, tuples, and
    strings accept an index or a slice:
 
       >>> itemgetter(1)('ABCDEFG')
index 878b97926bd2f1ac940e36943a3dce31ac3fdbcf..593674cf825ffeb6d2b4374dffc08dc3341afc90 100644 (file)
@@ -186,7 +186,7 @@ these classes, since they don't provide any operation that does system calls.
 General properties
 ^^^^^^^^^^^^^^^^^^
 
-Paths are immutable and hashable.  Paths of a same flavour are comparable
+Paths are immutable and :term:`hashable`.  Paths of a same flavour are comparable
 and orderable.  These properties respect the flavour's case-folding
 semantics::
 
index 5750c7cb68c8167ce581f74e2c181afd4978a4fe..7cdde5334e24a1be412070ec04de115c76f26abb 100644 (file)
@@ -3725,7 +3725,7 @@ copying.
       >>> data
       bytearray(b'z1spam')
 
-   One-dimensional memoryviews of hashable (read-only) types with formats
+   One-dimensional memoryviews of :term:`hashable` (read-only) types with formats
    'B', 'b' or 'c' are also hashable. The hash is defined as
    ``hash(m) == hash(m.tobytes())``::
 
@@ -3739,7 +3739,7 @@ copying.
 
    .. versionchanged:: 3.3
       One-dimensional memoryviews can now be sliced.
-      One-dimensional memoryviews with formats 'B', 'b' or 'c' are now hashable.
+      One-dimensional memoryviews with formats 'B', 'b' or 'c' are now :term:`hashable`.
 
    .. versionchanged:: 3.4
       memoryview is now registered automatically with
@@ -4659,7 +4659,7 @@ support membership tests:
 
    .. versionadded:: 3.10
 
-Keys views are set-like since their entries are unique and hashable.  If all
+Keys views are set-like since their entries are unique and :term:`hashable`.  If all
 values are hashable, so that ``(key, value)`` pairs are unique and hashable,
 then the items view is also set-like.  (Values views are not treated as set-like
 since the entries are generally not unique.)  For set-like views, all of the
index d415f149027f195384e52ef4223060969712771d..276133653376f4b70f5268c288a8eecae72de23c 100644 (file)
@@ -425,7 +425,7 @@ are intended primarily for static type checking.
 
 A user-defined generic class can have ABCs as base classes without a metaclass
 conflict. Generic metaclasses are not supported. The outcome of parameterizing
-generics is cached, and most types in the typing module are hashable and
+generics is cached, and most types in the typing module are :term:`hashable` and
 comparable for equality.
 
 
index 6aed328a9fdb4d0e28cc94a92c5a593c1e8dd4dc..e5a1e4d89f74ecbe0e486d9b12b11c190f05a5b5 100644 (file)
@@ -1490,7 +1490,7 @@ Basic customization
    :meth:`__hash__`, its instances will not be usable as items in hashable
    collections.  If a class defines mutable objects and implements an
    :meth:`__eq__` method, it should not implement :meth:`__hash__`, since the
-   implementation of hashable collections requires that a key's hash value is
+   implementation of :term:`hashable` collections requires that a key's hash value is
    immutable (if the object's hash value changes, it will be in the wrong hash
    bucket).