From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Thu, 10 Oct 2019 11:19:03 +0000 (-0700) Subject: bpo-32996: Documentation fix-up. (GH-16646) X-Git-Tag: v3.8.0~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=baf8a9b03a56ce1ee2284763b267ff56ab4507fe;p=python bpo-32996: Documentation fix-up. (GH-16646) PR GH-4906 changed the typing.Generic class hierarchy, leaving an outdated comment in the library reference. User-defined Generic ABCs now must get a abc.ABCMeta metaclass from something other than typing.Generic inheritance. (cherry picked from commit d47f0dd2e85ce032aebfedbde18cdb2e728fa79f) Co-authored-by: M. Eric Irrgang --- diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index f4d1b24043..642f8c653e 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -307,9 +307,10 @@ User defined generic type aliases are also supported. Examples:: def inproduct(v: Vec[T]) -> T: # Same as Iterable[Tuple[T, T]] return sum(x*y for x, y in v) -The metaclass used by :class:`Generic` is a subclass of :class:`abc.ABCMeta`. -A generic class can be an ABC by including abstract methods or properties, -and generic classes can also have ABCs as base classes without a metaclass +.. versionchanged:: 3.7 + :class:`Generic` no longer has a custom metaclass. + +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 comparable for equality.