Added github integration
This commit is contained in:
325
buffteks/lib/python3.11/site-packages/strenum/__init__.py
Normal file
325
buffteks/lib/python3.11/site-packages/strenum/__init__.py
Normal file
@@ -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)
|
||||
Reference in New Issue
Block a user