1- try :
2- import aenum as enum
3- except ImportError :
4- import enum
5-
1+ import enum
62from ._version import get_versions
73from ._name_mangler import _NameMangler
84
2117# `self` arguments.
2218# pylint: disable=no-self-argument
2319
20+ """
21+ StrEnum contains a collection of subclasses of Python's `enum.Enum` that
22+ inherit from `str` to complement `enum.IntEnum` in the standard library.
23+ """
24+
2425
2526class StrEnum (str , enum .Enum ):
2627 """
27- StrEnum is a Python `enum.Enum` that inherits from `str` to complement
28- `enum.IntEnum` in the standard library.
28+ StrEnum is a Python `enum.Enum` that inherits from `str`.
29+
30+ Example usage::
31+
32+ class Example(StrEnum):
33+ UPPER_CASE = auto()
34+ lower_case = auto()
35+ MixedCase = auto()
36+
37+ assert Example.UPPER_CASE == "UPPER_CASE"
38+ assert Example.lower_case == "lower_case"
39+ assert Example.MixedCase == "MixedCase"
2940 """
3041
3142 def __new__ (cls , value , * args , ** kwargs ):
@@ -46,8 +57,19 @@ def _generate_next_value_(name, *_):
4657
4758class LowercaseStrEnum (StrEnum ):
4859 """
49- A subclass of `StrEnum` that the folds the member name to lowercase for the
50- `auto()` value.
60+ A `StrEnum` that the folds values to lowercase.
61+
62+ Example usage::
63+
64+ class Example(LowercaseStrEnum):
65+ UPPER_CASE = auto()
66+ lower_case = auto()
67+ MixedCase = auto()
68+
69+ assert Example.UPPER_CASE == "upper_case"
70+ assert Example.lower_case == "lower_case"
71+ assert Example.MixedCase == "mixedcase"
72+
5173 """
5274
5375 def _generate_next_value_ (name , * _ ):
@@ -56,8 +78,18 @@ def _generate_next_value_(name, *_):
5678
5779class UppercaseStrEnum (StrEnum ):
5880 """
59- A subclass of `StrEnum` that the folds the member name to uppercase for the
60- `auto()` value.
81+ A `StrEnum` that the folds values to UPPERCASE.
82+
83+ Example usage::
84+
85+ class Example(UppercaseStrEnum):
86+ UPPER_CASE = auto()
87+ lower_case = auto()
88+ MixedCase = auto()
89+
90+ assert Example.UPPER_CASE == "UPPER_CASE"
91+ assert Example.lower_case == "LOWER_CASE"
92+ assert Example.MixedCase == "MIXEDCASE"
6193 """
6294
6395 def _generate_next_value_ (name , * _ ):
@@ -66,8 +98,18 @@ def _generate_next_value_(name, *_):
6698
6799class CamelCaseStrEnum (StrEnum ):
68100 """
69- A subclass of `StrEnum` that the converts the member name to camelCase for the
70- `auto()` value.
101+ A `StrEnum` that the converts values to camelCase.
102+
103+ Example usage::
104+
105+ class Example(CamelCaseStrEnum):
106+ UPPER_CASE = auto()
107+ lower_case = auto()
108+ MixedCase = auto()
109+
110+ assert Example.UPPER_CASE == "upperCase"
111+ assert Example.lower_case == "lowerCase"
112+ assert Example.MixedCase == "mixedCase"
71113 """
72114
73115 def _generate_next_value_ (name , * _ ):
@@ -76,8 +118,18 @@ def _generate_next_value_(name, *_):
76118
77119class PascalCaseStrEnum (StrEnum ):
78120 """
79- A subclass of `StrEnum` that the converts the member name to PascalCase for the
80- `auto()` value.
121+ A `StrEnum` that the converts values to PascalCase.
122+
123+ Example usage::
124+
125+ class Example(PascalCaseStrEnum):
126+ UPPER_CASE = auto()
127+ lower_case = auto()
128+ MixedCase = auto()
129+
130+ assert Example.UPPER_CASE == "UpperCase"
131+ assert Example.lower_case == "LowerCase"
132+ assert Example.MixedCase == "MixedCase"
81133 """
82134
83135 def _generate_next_value_ (name , * _ ):
@@ -86,8 +138,18 @@ def _generate_next_value_(name, *_):
86138
87139class KebabCaseStrEnum (StrEnum ):
88140 """
89- A subclass of `StrEnum` that the converts the member name to kebab-case for the
90- `auto()` value.
141+ A `StrEnum` that the converts values to kebab-case.
142+
143+ Example usage::
144+
145+ class Example(KebabCaseStrEnum):
146+ UPPER_CASE = auto()
147+ lower_case = auto()
148+ MixedCase = auto()
149+
150+ assert Example.UPPER_CASE == "upper-case"
151+ assert Example.lower_case == "lower-case"
152+ assert Example.MixedCase == "mixed-case"
91153 """
92154
93155 def _generate_next_value_ (name , * _ ):
@@ -96,9 +158,39 @@ def _generate_next_value_(name, *_):
96158
97159class SnakeCaseStrEnum (StrEnum ):
98160 """
99- A subclass of `StrEnum` that the converts the member name to snake-case for the
100- `auto()` value.
161+ A `StrEnum` that the converts values to snake_case.
162+
163+ Example usage::
164+
165+ class Example(SnakeCaseStrEnum):
166+ UPPER_CASE = auto()
167+ lower_case = auto()
168+ MixedCase = auto()
169+
170+ assert Example.UPPER_CASE == "upper_case"
171+ assert Example.lower_case == "lower_case"
172+ assert Example.MixedCase == "mixed_case"
101173 """
102174
103175 def _generate_next_value_ (name , * _ ):
104176 return _name_mangler .snake (name )
177+
178+
179+ class MacroCaseStrEnum (StrEnum ):
180+ """
181+ A `StrEnum` that the converts values to MACRO_CASE.
182+
183+ Example usage::
184+
185+ class Example(MacroCaseStrEnum):
186+ UPPER_CASE = auto()
187+ lower_case = auto()
188+ MixedCase = auto()
189+
190+ assert Example.UPPER_CASE == "UPPER_CASE"
191+ assert Example.lower_case == "LOWER_CASE"
192+ assert Example.MixedCase == "MIXED_CASE"
193+ """
194+
195+ def _generate_next_value_ (name , * _ ):
196+ return _name_mangler .macro (name )
0 commit comments