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

1"""Uppercase string enumeration types for Lintro. 

2 

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""" 

7 

8from __future__ import annotations 

9 

10from enum import StrEnum 

11 

12 

13class UppercaseStrEnum(StrEnum): 

14 """StrEnum that generates uppercase string values. 

15 

16 When using auto(), member names are converted to uppercase strings. 

17 For example: HEAD = auto() produces 'HEAD'. 

18 

19 Example: 

20 from enum import auto 

21 

22 class MyEnum(UppercaseStrEnum): 

23 LOW = auto() # value is 'LOW' 

24 HIGH = auto() # value is 'HIGH' 

25 """ 

26 

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. 

35 

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). 

41 

42 Returns: 

43 str: Uppercase version of the member name. 

44 """ 

45 return name.upper()