### Install StrEnum via pip Source: https://strenum.readthedocs.io/en/latest/index.html Use pip to install the StrEnum package. ```bash pip install StrEnum ``` -------------------------------- ### Run tests using make Source: https://strenum.readthedocs.io/en/latest/index.html Use the make command to run the test suite. ```bash make test ``` -------------------------------- ### Run tests manually Source: https://strenum.readthedocs.io/en/latest/index.html Manually set up a virtual environment and run tests using pytest. ```bash python3 -m venv .venv .venv/bin/pip install .[test] .venv/bin/pytest ``` -------------------------------- ### Define and use StrEnum Source: https://strenum.readthedocs.io/en/latest/index.html Create an Enum that inherits from StrEnum to use enum members as strings. ```python from enum import auto from strenum import StrEnum class HttpMethod(StrEnum): GET = auto() HEAD = auto() POST = auto() PUT = auto() DELETE = auto() CONNECT = auto() OPTIONS = auto() TRACE = auto() PATCH = auto() assert HttpMethod.GET == "GET" # You can use StrEnum values just like strings: import urllib.request req = urllib.request.Request('https://www.python.org/', method=HttpMethod.HEAD) with urllib.request.urlopen(req) as response: html = response.read() assert len(html) == 0 # HEAD requests do not (usually) include a body ``` -------------------------------- ### class strenum.SpongebobCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the member name to SpONGEBob_CAse. This produces a mocking SpongeBob-style case for values. ```APIDOC ## class strenum.SpongebobCaseStrEnum ### Description A StrEnum where auto() will convert the name to SpONGEBob_CAse to produce each member's value. ### Usage Example ```python class Example(SpongebobCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "uPpER_cAsE" assert Example.lower_case == "lowER_CASe" assert Example.MixedCase == "MixeD_CAse" ``` ### Version New in version 0.4.8. ``` -------------------------------- ### strenum.KebabCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the name to kebab-case to produce each member's value. ```APIDOC ## strenum.KebabCaseStrEnum ### Description A StrEnum where auto() will convert the name to kebab-case to produce each member's value. ### Class strenum.KebabCaseStrEnum ### Bases StrEnum ### Behavior - auto() converts the name to kebab-case. ### Example ```python class Example(KebabCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upper-case" assert Example.lower_case == "lower-case" assert Example.MixedCase == "mixed-case" ``` ``` -------------------------------- ### Use case-insensitive comparisons with HttpHeader Source: https://strenum.readthedocs.io/en/latest/api_ref.html Shows assertions that compare strings with different casing to the HttpHeader enum members, demonstrating case-insensitive equality. ```python assert "Content-Type" == HttpHeader.ContentType assert "content-type" == HttpHeader.ContentType assert "coNtEnt-tyPe" == HttpHeader.ContentType ``` -------------------------------- ### Use case-converting StrEnum classes Source: https://strenum.readthedocs.io/en/latest/index.html Automatically convert enum member names to various case formats like camelCase, PascalCase, kebab-case, snake_case, and MACRO_CASE. ```python from enum import auto from strenum import CamelCaseStrEnum, PascalCaseStrEnum from strenum import KebabCaseStrEnum, SnakeCaseStrEnum from strenum import MacroCaseStrEnum class CamelTestEnum(CamelCaseStrEnum): OneTwoThree = auto() class PascalTestEnum(PascalCaseStrEnum): OneTwoThree = auto() class KebabTestEnum(KebabCaseStrEnum): OneTwoThree = auto() class SnakeTestEnum(SnakeCaseStrEnum): OneTwoThree = auto() class MacroTestEnum(MacroCaseStrEnum): OneTwoThree = auto() assert CamelTestEnum.OneTwoThree == "oneTwoThree" assert PascalTestEnum.OneTwoThree == "OneTwoThree" assert KebabTestEnum.OneTwoThree == "one-two-three" assert SnakeTestEnum.OneTwoThree == "one_two_three" assert MacroTestEnum.OneTwoThree == "ONE_TWO_THREE" ``` -------------------------------- ### strenum.PascalCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the name to PascalCase to produce each member's value. ```APIDOC ## strenum.PascalCaseStrEnum ### Description A StrEnum where auto() will convert the name to PascalCase to produce each member's value. ### Class strenum.PascalCaseStrEnum ### Bases StrEnum ### Behavior - auto() converts the name to PascalCase. ### Example ```python class Example(PascalCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UpperCase" assert Example.lower_case == "LowerCase" assert Example.MixedCase == "MixedCase" ``` ``` -------------------------------- ### class strenum.HttpHeaderCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the member name to Http-Header-Case. This is useful for generating HTTP header style values. ```APIDOC ## class strenum.HttpHeaderCaseStrEnum ### Description A StrEnum where auto() will convert the name to Http-Header-Case to produce each member's value. ### Usage Example ```python class Example(HttpHeaderCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "Upper-Case" assert Example.lower_case == "Lower-Case" assert Example.MixedCase == "Mixed-Case" ``` ### Version New in version 0.4.8. ``` -------------------------------- ### class strenum.PascalSnakeCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the member name to Pascal_Snake_Case. This is useful for generating values that follow Pascal_Snake_Case naming conventions. ```APIDOC ## class strenum.PascalSnakeCaseStrEnum ### Description A StrEnum where auto() will convert the name to Pascal_Snake_Case to produce each member's value. ### Usage Example ```python class Example(PascalSnakeCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "Upper_Case" assert Example.lower_case == "Lower_Case" assert Example.MixedCase == "Mixed_Case" ``` ### Version New in version 0.4.8. ``` -------------------------------- ### strenum.StrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html Base class for string enums. Inherits from str and Enum. The default auto() behavior uses the member name as its value. ```APIDOC ## strenum.StrEnum ### Description StrEnum is a Python enum.Enum that inherits from str. The default auto() behavior uses the member name as its value. ### Class strenum.StrEnum ### Bases str, Enum ### Behavior - auto() uses the member name as the value. ### Example ```python class Example(StrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UPPER_CASE" assert Example.lower_case == "lower_case" assert Example.MixedCase == "MixedCase" ``` ``` -------------------------------- ### Manually assign values to StrEnum Source: https://strenum.readthedocs.io/en/latest/index.html Manually assign string values to enum members instead of using auto(). ```python from strenum import StrEnum class Shape(StrEnum): CIRCLE = "Circle" assert Shape.CIRCLE == "Circle" ``` -------------------------------- ### strenum.MacroCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the name to MACRO_CASE to produce each member's value. ```APIDOC ## strenum.MacroCaseStrEnum ### Description A StrEnum where auto() will convert the name to MACRO_CASE to produce each member's value. ### Class strenum.MacroCaseStrEnum ### Bases StrEnum ### Behavior - auto() converts the name to MACRO_CASE. ### Example ```python class Example(MacroCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UPPER_CASE" assert Example.lower_case == "LOWER_CASE" assert Example.MixedCase == "MIXED_CASE" ``` ``` -------------------------------- ### KebabCaseStrEnum auto() converts names to kebab-case Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines a KebabCaseStrEnum where auto() values are the member names converted to kebab-case. Available since version 0.4.5. ```python class Example(KebabCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upper-case" assert Example.lower_case == "lower-case" assert Example.MixedCase == "mixed-case" ``` -------------------------------- ### class strenum.CobolCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the member name to COBOL-CASE. This is useful for generating uppercase hyphen-separated values. ```APIDOC ## class strenum.CobolCaseStrEnum ### Description A StrEnum where auto() will convert the name to COBOL-CASE to produce each member's value. ### Usage Example ```python class Example(CobolCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UPPER-CASE" assert Example.lower_case == "LOWER-CASE" assert Example.MixedCase == "MIXED-CASE" ``` ### Version New in version 0.4.8. ``` -------------------------------- ### strenum.UppercaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the name to UPPERCASE to produce each member's value. ```APIDOC ## strenum.UppercaseStrEnum ### Description A StrEnum where auto() will convert the name to UPPERCASE to produce each member's value. ### Class strenum.UppercaseStrEnum ### Bases StrEnum ### Behavior - auto() converts the name to UPPERCASE. ### Example ```python class Example(UppercaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UPPER_CASE" assert Example.lower_case == "LOWER_CASE" assert Example.MixedCase == "MIXEDCASE" ``` ``` -------------------------------- ### Use LowercaseStrEnum and UppercaseStrEnum Source: https://strenum.readthedocs.io/en/latest/index.html Automatically fold enum member names to lowercase or uppercase using specialized StrEnum classes. ```python from enum import auto from strenum import LowercaseStrEnum, UppercaseStrEnum class Tag(LowercaseStrEnum): Head = auto() Body = auto() Div = auto() assert Tag.Head == "head" assert Tag.Body == "body" assert Tag.Div == "div" class HttpMethod(UppercaseStrEnum): Get = auto() Head = auto() Post = auto() assert HttpMethod.Get == "GET" assert HttpMethod.Head == "HEAD" assert HttpMethod.Post == "POST" ``` -------------------------------- ### strenum.SnakeCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the name to snake_case to produce each member's value. ```APIDOC ## strenum.SnakeCaseStrEnum ### Description A StrEnum where auto() will convert the name to snake_case to produce each member's value. ### Class strenum.SnakeCaseStrEnum ### Bases StrEnum ### Behavior - auto() converts the name to snake_case. ### Example ```python class Example(SnakeCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upper_case" assert Example.lower_case == "lower_case" assert Example.MixedCase == "mixed_case" ``` ``` -------------------------------- ### strenum.LowercaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the name to lowercase to produce each member's value. ```APIDOC ## strenum.LowercaseStrEnum ### Description A StrEnum where auto() will convert the name to lowercase to produce each member's value. ### Class strenum.LowercaseStrEnum ### Bases StrEnum ### Behavior - auto() converts the name to lowercase. ### Example ```python class Example(LowercaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upper_case" assert Example.lower_case == "lower_case" assert Example.MixedCase == "mixedcase" ``` ``` -------------------------------- ### PascalCaseStrEnum auto() converts names to PascalCase Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines a PascalCaseStrEnum where auto() values are the member names converted to PascalCase. Available since version 0.4.5. ```python class Example(PascalCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UpperCase" assert Example.lower_case == "LowerCase" assert Example.MixedCase == "MixedCase" ``` -------------------------------- ### Define a case-insensitive StrEnum with Comparable mix-in Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines an HttpHeader enum that inherits from Comparable and KebabCaseStrEnum. The _cmp_values method lowercases both the enum value and the other value for case-insensitive comparison. The method must not return self to avoid infinite recursion. ```python class HttpHeader(Comparable, KebabCaseStrEnum): ContentType = auto() Host = auto() Accept = auto() XForwardedFor = auto() def _cmp_values(self, other): return self.value.lower(), str(other).lower() ``` -------------------------------- ### strenum.CamelCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the name to camelCase to produce each member's value. ```APIDOC ## strenum.CamelCaseStrEnum ### Description A StrEnum where auto() will convert the name to camelCase to produce each member's value. ### Class strenum.CamelCaseStrEnum ### Bases StrEnum ### Behavior - auto() converts the name to camelCase. ### Example ```python class Example(CamelCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upperCase" assert Example.lower_case == "lowerCase" assert Example.MixedCase == "mixedCase" ``` ``` -------------------------------- ### strenum.CamelSnakeCaseStrEnum Source: https://strenum.readthedocs.io/en/latest/api_ref.html A StrEnum where auto() converts the name to camel_Snake_Case to produce each member's value. ```APIDOC ## strenum.CamelSnakeCaseStrEnum ### Description A StrEnum where auto() will convert the name to camel_Snake_Case to produce each member's value. ### Class strenum.CamelSnakeCaseStrEnum ### Bases StrEnum ### Behavior - auto() converts the name to camel_Snake_Case. ### Example ```python class Example(CamelSnakeCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upper_Case" assert Example.lower_case == "lower_Case" assert Example.MixedCase == "mixed_Case" ``` ``` -------------------------------- ### HttpHeaderCaseStrEnum usage Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines an enum with auto() converting names to Http-Header-Case. Available since version 0.4.8. ```python class Example(HttpHeaderCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "Upper-Case" assert Example.lower_case == "Lower-Case" assert Example.MixedCase == "Mixed-Case" ``` -------------------------------- ### MacroCaseStrEnum auto() converts names to MACRO_CASE Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines a MacroCaseStrEnum where auto() values are the member names converted to MACRO_CASE. Available since version 0.4.6. ```python class Example(MacroCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UPPER_CASE" assert Example.lower_case == "LOWER_CASE" assert Example.MixedCase == "MIXED_CASE" ``` -------------------------------- ### StrEnum auto() uses member name as value Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines a StrEnum with auto() values equal to the member names. Use when you need a string enum where the value matches the name exactly. ```python class Example(StrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UPPER_CASE" assert Example.lower_case == "lower_case" assert Example.MixedCase == "MixedCase" ``` -------------------------------- ### LowercaseStrEnum auto() converts names to lowercase Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines a LowercaseStrEnum where auto() values are the member names converted to lowercase. Available since version 0.4.3. ```python class Example(LowercaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upper_case" assert Example.lower_case == "lower_case" assert Example.MixedCase == "mixedcase" ``` -------------------------------- ### UppercaseStrEnum auto() converts names to UPPERCASE Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines an UppercaseStrEnum where auto() values are the member names converted to uppercase. Available since version 0.4.3. ```python class Example(UppercaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UPPER_CASE" assert Example.lower_case == "LOWER_CASE" assert Example.MixedCase == "MIXEDCASE" ``` -------------------------------- ### CamelCaseStrEnum auto() converts names to camelCase Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines a CamelCaseStrEnum where auto() values are the member names converted to camelCase. Available since version 0.4.5. ```python class Example(CamelCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upperCase" assert Example.lower_case == "lowerCase" assert Example.MixedCase == "mixedCase" ``` -------------------------------- ### SnakeCaseStrEnum auto() converts names to snake_case Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines a SnakeCaseStrEnum where auto() values are the member names converted to snake_case. Available since version 0.4.5. ```python class Example(SnakeCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upper_case" assert Example.lower_case == "lower_case" assert Example.MixedCase == "mixed_case" ``` -------------------------------- ### CamelSnakeCaseStrEnum auto() converts names to camel_Snake_Case Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines a CamelSnakeCaseStrEnum where auto() values are the member names converted to camel_Snake_Case. Available since version 0.4.8. ```python class Example(CamelSnakeCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "upper_Case" assert Example.lower_case == "lower_Case" assert Example.MixedCase == "mixed_Case" ``` -------------------------------- ### Manual assignment with case-changing classes Source: https://strenum.readthedocs.io/en/latest/index.html Manual assignment overrides automatic case conversion, which may lead to assertion errors if the assigned value does not match the expected case format. ```python from strenum import KebabCaseStrEnum class Shape(KebabCaseStrEnum): CIRCLE = "Circle" # This will raise an AssertionError because the value wasn't converted to kebab-case. assert Shape.CIRCLE == "circle" ``` -------------------------------- ### SpongebobCaseStrEnum usage Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines an enum with auto() converting names to SpONGEBob_CAse. Available since version 0.4.8. ```python class Example(SpongebobCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "uPpER_cAsE" assert Example.lower_case == "lowER_CASe" assert Example.MixedCase == "MixeD_CAse" ``` -------------------------------- ### CobolCaseStrEnum usage Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines an enum with auto() converting names to COBOL-CASE. Available since version 0.4.8. ```python class Example(CobolCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "UPPER-CASE" assert Example.lower_case == "LOWER-CASE" assert Example.MixedCase == "MIXED-CASE" ``` -------------------------------- ### PascalSnakeCaseStrEnum usage Source: https://strenum.readthedocs.io/en/latest/api_ref.html Defines an enum with auto() converting names to Pascal_Snake_Case. Available since version 0.4.8. ```python class Example(PascalSnakeCaseStrEnum): UPPER_CASE = auto() lower_case = auto() MixedCase = auto() assert Example.UPPER_CASE == "Upper_Case" assert Example.lower_case == "Lower_Case" assert Example.MixedCase == "Mixed_Case" ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.