Kaydet (Commit) 48a724fa authored tarafından Ethan Furman's avatar Ethan Furman

Close issue23900: add default __doc__ to new enumerations that do not specify one.

üst a1c7e727
...@@ -106,6 +106,10 @@ class EnumMeta(type): ...@@ -106,6 +106,10 @@ class EnumMeta(type):
raise ValueError('Invalid enum member name: {0}'.format( raise ValueError('Invalid enum member name: {0}'.format(
','.join(invalid_names))) ','.join(invalid_names)))
# create a default docstring if one has not been provided
if '__doc__' not in classdict:
classdict['__doc__'] = 'An enumeration.'
# create our new Enum type # create our new Enum type
enum_class = super().__new__(metacls, cls, bases, classdict) enum_class = super().__new__(metacls, cls, bases, classdict)
enum_class._member_names_ = [] # names in definition order enum_class._member_names_ = [] # names in definition order
......
...@@ -1560,9 +1560,7 @@ expected_help_output_with_docs = """\ ...@@ -1560,9 +1560,7 @@ expected_help_output_with_docs = """\
Help on class Color in module %s: Help on class Color in module %s:
class Color(enum.Enum) class Color(enum.Enum)
| Generic enumeration. | An enumeration.
|\x20\x20
| Derive from this class to define new enumerations.
|\x20\x20 |\x20\x20
| Method resolution order: | Method resolution order:
| Color | Color
...@@ -1626,6 +1624,8 @@ class Color(enum.Enum) ...@@ -1626,6 +1624,8 @@ class Color(enum.Enum)
class TestStdLib(unittest.TestCase): class TestStdLib(unittest.TestCase):
maxDiff = None
class Color(Enum): class Color(Enum):
red = 1 red = 1
green = 2 green = 2
...@@ -1646,7 +1646,7 @@ class TestStdLib(unittest.TestCase): ...@@ -1646,7 +1646,7 @@ class TestStdLib(unittest.TestCase):
def test_inspect_getmembers(self): def test_inspect_getmembers(self):
values = dict(( values = dict((
('__class__', EnumMeta), ('__class__', EnumMeta),
('__doc__', None), ('__doc__', 'An enumeration.'),
('__members__', self.Color.__members__), ('__members__', self.Color.__members__),
('__module__', __name__), ('__module__', __name__),
('blue', self.Color.blue), ('blue', self.Color.blue),
...@@ -1674,7 +1674,7 @@ class TestStdLib(unittest.TestCase): ...@@ -1674,7 +1674,7 @@ class TestStdLib(unittest.TestCase):
Attribute(name='__class__', kind='data', Attribute(name='__class__', kind='data',
defining_class=object, object=EnumMeta), defining_class=object, object=EnumMeta),
Attribute(name='__doc__', kind='data', Attribute(name='__doc__', kind='data',
defining_class=self.Color, object=None), defining_class=self.Color, object='An enumeration.'),
Attribute(name='__members__', kind='property', Attribute(name='__members__', kind='property',
defining_class=EnumMeta, object=EnumMeta.__members__), defining_class=EnumMeta, object=EnumMeta.__members__),
Attribute(name='__module__', kind='data', Attribute(name='__module__', kind='data',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment