B
    rfR!                 @   s,  d dl Z ddlmZ ddlmZ e d Zedd edd  d	D Z	[e ZG d
d de
e jZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!eZG d"d# d#eZdS )$    N   )get_versions)_NameManglerversionc             c   s   | ]}t |V  qd S )N)int).0n r	   S/home/ankuromar296_gmail_com/.local/lib/python3.7/site-packages/strenum/__init__.py	<genexpr>   s    r   +.c                   s0   e Zd ZdZ fddZdd Zdd Z  ZS )StrEnuma  
    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"
    c                s>   t |ttjfs(td|dt| t j| |f||S )Nz$Values of StrEnums must be strings: z is a )
isinstancestrenumauto	TypeErrortypesuper__new__)clsvalueargskwargs)	__class__r	   r
   r   &   s    zStrEnum.__new__c             C   s
   t | jS )N)r   r   )selfr	   r	   r
   __str__-   s    zStrEnum.__str__c             G   s   | S )Nr	   )name_r	   r	   r
   _generate_next_value_0   s    zStrEnum._generate_next_value_)__name__
__module____qualname____doc__r   r   r    __classcell__r	   r	   )r   r
   r      s   r   c               @   s   e Zd ZdZdd ZdS )LowercaseStrEnuma  
    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
    c             G   s   |   S )N)lower)r   r   r	   r	   r
   r    G   s    z&LowercaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r&   4   s   r&   c               @   s   e Zd ZdZdd ZdS )UppercaseStrEnuma  
    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
    c             G   s   |   S )N)upper)r   r   r	   r	   r
   r    ^   s    z&UppercaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r(   K   s   r(   c               @   s   e Zd ZdZdd ZdS )CamelCaseStrEnuma  
    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
    c             G   s
   t | S )N)_name_manglercamel)r   r   r	   r	   r
   r    u   s    z&CamelCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r*   b   s   r*   c               @   s   e Zd ZdZdd ZdS )PascalCaseStrEnuma  
    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
    c             G   s
   t | S )N)r+   pascal)r   r   r	   r	   r
   r       s    z'PascalCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r-   y   s   r-   c               @   s   e Zd ZdZdd ZdS )KebabCaseStrEnuma  
    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
    c             G   s
   t | S )N)r+   Zkebab)r   r   r	   r	   r
   r       s    z&KebabCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r/      s   r/   c               @   s   e Zd ZdZdd ZdS )SnakeCaseStrEnuma  
    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
    c             G   s
   t | S )N)r+   snake)r   r   r	   r	   r
   r       s    z&SnakeCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r0      s   r0   c               @   s   e Zd ZdZdd ZdS )MacroCaseStrEnuma  
    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
    c             G   s
   t | S )N)r+   macro)r   r   r	   r	   r
   r       s    z&MacroCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r2      s   r2   c               @   s   e Zd ZdZdd ZdS )CamelSnakeCaseStrEnuma  
    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
    c             G   s
   t | S )N)r+   Zcamel_snake)r   r   r	   r	   r
   r       s    z+CamelSnakeCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r4      s   r4   c               @   s   e Zd ZdZdd ZdS )PascalSnakeCaseStrEnuma  
    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
    c             G   s
   t | S )N)r+   Zpascal_snake)r   r   r	   r	   r
   r       s    z,PascalSnakeCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r5      s   r5   c               @   s   e Zd ZdZdd ZdS )SpongebobCaseStrEnuma  
    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
    c             G   s
   t | S )N)r+   Z	spongebob)r   r   r	   r	   r
   r      s    z*SpongebobCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r6     s   r6   c               @   s   e Zd ZdZdd ZdS )CobolCaseStrEnuma  
    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
    c             G   s
   t | S )N)r+   cobol)r   r   r	   r	   r
   r    -  s    z&CobolCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r7     s   r7   c               @   s   e Zd ZdZdd ZdS )HttpHeaderCaseStrEnuma  
    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
    c             G   s
   t | S )N)r+   Zhttp_header)r   r   r	   r	   r
   r    D  s    z+HttpHeaderCaseStrEnum._generate_next_value_N)r!   r"   r#   r$   r    r	   r	   r	   r
   r9   1  s   r9   )r   _versionr   r+   r   __version__tuple	partitionsplit__version_info__r   Enumr   r&   r(   r*   r-   r/   r0   r2   r4   r5   r6   r7   r9   r	   r	   r	   r
   <module>   s&   
"