Coverage for lintro / enums / uppercase_str_enum.py: 100%
6 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Uppercase string enumeration types for Lintro.
3This module provides the UppercaseStrEnum class that automatically generates
4uppercase string values for enum members. Member names should be in UPPER_CASE
5and the enum value will be an uppercase string of the member name.
6"""
8from __future__ import annotations
10from enum import StrEnum
13class UppercaseStrEnum(StrEnum):
14 """StrEnum that generates uppercase string values.
16 When using auto(), member names are converted to uppercase strings.
17 For example: HEAD = auto() produces 'HEAD'.
19 Example:
20 from enum import auto
22 class MyEnum(UppercaseStrEnum):
23 LOW = auto() # value is 'LOW'
24 HIGH = auto() # value is 'HIGH'
25 """
27 @staticmethod
28 def _generate_next_value_(
29 name: str,
30 start: int,
31 count: int,
32 last_values: list[str],
33 ) -> str:
34 """Generate uppercase string value from enum member name.
36 Args:
37 name: The enum member name.
38 start: Starting value (unused).
39 count: Number of members processed (unused).
40 last_values: Previously generated values (unused).
42 Returns:
43 str: Uppercase version of the member name.
44 """
45 return name.upper()