From 72582a359df15981848a6645a402618d39b5ccda Mon Sep 17 00:00:00 2001 From: Sam Ezeh Date: Thu, 23 Jun 2022 20:09:46 +0100 Subject: [PATCH] Remove Enum docstring generation --- Lib/enum.py | 105 -------------------------- Lib/test/test_enum.py | 166 +----------------------------------------- 2 files changed, 4 insertions(+), 267 deletions(-) diff --git a/Lib/enum.py b/Lib/enum.py index 20fad97e3d1997..c6d00c291493c7 100644 --- a/Lib/enum.py +++ b/Lib/enum.py @@ -536,111 +536,6 @@ def __new__(metacls, cls, bases, classdict, *, boundary=None, _simple=False, **k # update classdict with any changes made by __init_subclass__ classdict.update(enum_class.__dict__) # - # create a default docstring if one has not been provided - if enum_class.__doc__ is None: - if not member_names or not list(enum_class): - enum_class.__doc__ = classdict['__doc__'] = _dedent("""\ - Create a collection of name/value pairs. - - Example enumeration: - - >>> class Color(Enum): - ... RED = 1 - ... BLUE = 2 - ... GREEN = 3 - - Access them by: - - - attribute access:: - - >>> Color.RED - - - - value lookup: - - >>> Color(1) - - - - name lookup: - - >>> Color['RED'] - - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Color) - 3 - - >>> list(Color) - [, , ] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """) - else: - member = list(enum_class)[0] - enum_length = len(enum_class) - cls_name = enum_class.__name__ - if enum_length == 1: - list_line = 'list(%s)' % cls_name - list_repr = '[<%s.%s: %r>]' % (cls_name, member.name, member.value) - elif enum_length == 2: - member2 = list(enum_class)[1] - list_line = 'list(%s)' % cls_name - list_repr = '[<%s.%s: %r>, <%s.%s: %r>]' % ( - cls_name, member.name, member.value, - cls_name, member2.name, member2.value, - ) - else: - member2 = list(enum_class)[1] - member3 = list(enum_class)[2] - list_line = 'list(%s)%s' % (cls_name, ('','[:3]')[enum_length > 3]) - list_repr = '[<%s.%s: %r>, <%s.%s: %r>, <%s.%s: %r>]' % ( - cls_name, member.name, member.value, - cls_name, member2.name, member2.value, - cls_name, member3.name, member3.value, - ) - enum_class.__doc__ = classdict['__doc__'] = _dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> %s.%s - <%s.%s: %r> - - - value lookup: - - >>> %s(%r) - <%s.%s: %r> - - - name lookup: - - >>> %s[%r] - <%s.%s: %r> - - Enumerations can be iterated over, and know how many members they have: - - >>> len(%s) - %r - - >>> %s - %s - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """ - % (cls_name, member.name, - cls_name, member.name, member.value, - cls_name, member.value, - cls_name, member.name, member.value, - cls_name, member.name, - cls_name, member.name, member.value, - cls_name, enum_length, - list_line, list_repr, - )) - # # double check that repr and friends are not the mixin's or various # things break (such as pickle) # however, if the method is defined in the Enum itself, don't replace diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index 2fadb4eaa1d824..2477a6affb5377 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -4032,36 +4032,6 @@ class TestEnumTypeSubclassing(unittest.TestCase): class Color(enum.Enum) | Color(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None) |\x20\x20 - | A collection of name/value pairs. - |\x20\x20 - | Access them by: - |\x20\x20 - | - attribute access:: - |\x20\x20 - | >>> Color.CYAN - | - |\x20\x20 - | - value lookup: - |\x20\x20 - | >>> Color(1) - | - |\x20\x20 - | - name lookup: - |\x20\x20 - | >>> Color['CYAN'] - | - |\x20\x20 - | Enumerations can be iterated over, and know how many members they have: - |\x20\x20 - | >>> len(Color) - | 3 - |\x20\x20 - | >>> list(Color) - | [, , ] - |\x20\x20 - | Methods can be added to enumerations, and members can have their own - | attributes -- see the documentation for details. - |\x20\x20 | Method resolution order: | Color | enum.Enum @@ -4307,77 +4277,13 @@ def test__all__(self): def test_doc_1(self): class Single(Enum): ONE = 1 - self.assertEqual( - Single.__doc__, - dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> Single.ONE - - - - value lookup: - - >>> Single(1) - - - - name lookup: - - >>> Single['ONE'] - - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Single) - 1 - - >>> list(Single) - [] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """)) + self.assertEqual(Single.__doc__, None) def test_doc_2(self): class Double(Enum): ONE = 1 TWO = 2 - self.assertEqual( - Double.__doc__, - dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> Double.ONE - - - - value lookup: - - >>> Double(1) - - - - name lookup: - - >>> Double['ONE'] - - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Double) - 2 - - >>> list(Double) - [, ] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """)) + self.assertEqual(Double.__doc__, None) def test_doc_1(self): @@ -4385,39 +4291,7 @@ class Triple(Enum): ONE = 1 TWO = 2 THREE = 3 - self.assertEqual( - Triple.__doc__, - dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> Triple.ONE - - - - value lookup: - - >>> Triple(1) - - - - name lookup: - - >>> Triple['ONE'] - - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Triple) - 3 - - >>> list(Triple) - [, , ] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """)) + self.assertEqual(Triple.__doc__, None) def test_doc_1(self): class Quadruple(Enum): @@ -4425,39 +4299,7 @@ class Quadruple(Enum): TWO = 2 THREE = 3 FOUR = 4 - self.assertEqual( - Quadruple.__doc__, - dedent("""\ - A collection of name/value pairs. - - Access them by: - - - attribute access:: - - >>> Quadruple.ONE - - - - value lookup: - - >>> Quadruple(1) - - - - name lookup: - - >>> Quadruple['ONE'] - - - Enumerations can be iterated over, and know how many members they have: - - >>> len(Quadruple) - 4 - - >>> list(Quadruple)[:3] - [, , ] - - Methods can be added to enumerations, and members can have their own - attributes -- see the documentation for details. - """)) + self.assertEqual(Quadruple.__doc__, None) # These are unordered here on purpose to ensure that declaration order