about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/strenum/__init__.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/strenum/__init__.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are here HEAD master
Diffstat (limited to '.venv/lib/python3.12/site-packages/strenum/__init__.py')
-rw-r--r--.venv/lib/python3.12/site-packages/strenum/__init__.py325
1 files changed, 325 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/strenum/__init__.py b/.venv/lib/python3.12/site-packages/strenum/__init__.py
new file mode 100644
index 00000000..1c82bede
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/strenum/__init__.py
@@ -0,0 +1,325 @@
+import enum
+from ._version import get_versions
+from ._name_mangler import _NameMangler
+
+__version__ = get_versions()["version"]
+__version_info__ = tuple(int(n) for n in __version__.partition("+")[0].split("."))
+del get_versions
+
+_name_mangler = _NameMangler()
+
+# The first argument to the `_generate_next_value_` function of the `enum.Enum`
+# class is documented to be the name of the enum member, not the enum class:
+#
+#     https://docs.python.org/3.6/library/enum.html#using-automatic-values
+#
+# Pylint, though, doesn't know about this so we need to disable it's check for
+# `self` arguments.
+# pylint: disable=no-self-argument
+
+
+class StrEnum(str, enum.Enum):
+    """
+    StrEnum is a Python ``enum.Enum`` that inherits from ``str``. The default
+    ``auto()`` behavior uses the member name as its value.
+
+    Example usage::
+
+        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"
+    """
+
+    def __new__(cls, value, *args, **kwargs):
+        if not isinstance(value, (str, enum.auto)):
+            raise TypeError(
+                f"Values of StrEnums must be strings: {value!r} is a {type(value)}"
+            )
+        return super().__new__(cls, value, *args, **kwargs)
+
+    def __str__(self):
+        return str(self.value)
+
+    def _generate_next_value_(name, *_):
+        return name
+
+
+class LowercaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `lowercase` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.3
+    """
+
+    def _generate_next_value_(name, *_):
+        return name.lower()
+
+
+class UppercaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `UPPERCASE` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.3
+    """
+
+    def _generate_next_value_(name, *_):
+        return name.upper()
+
+
+class CamelCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `camelCase` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.5
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.camel(name)
+
+
+class PascalCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `PascalCase` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.5
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.pascal(name)
+
+
+class KebabCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `kebab-case` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.5
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.kebab(name)
+
+
+class SnakeCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `snake_case` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.5
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.snake(name)
+
+
+class MacroCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `MACRO_CASE` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.6
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.macro(name)
+
+
+class CamelSnakeCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `camel_Snake_Case` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.8
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.camel_snake(name)
+
+
+class PascalSnakeCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `Pascal_Snake_Case` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.8
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.pascal_snake(name)
+
+
+class SpongebobCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `SpONGEBob_CAse` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.8
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.spongebob(name)
+
+
+class CobolCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `COBOL-CASE` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.8
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.cobol(name)
+
+
+class HttpHeaderCaseStrEnum(StrEnum):
+    """
+    A ``StrEnum`` where ``auto()`` will convert the name to `Http-Header-Case` to
+    produce each member's value.
+
+    Example usage::
+
+        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"
+
+    .. versionadded:: 0.4.8
+    """
+
+    def _generate_next_value_(name, *_):
+        return _name_mangler.http_header(name)