U
    =ę{f@  ć                   @   sD   d Z ddlZdZeedddZeedddZeed	d
dZdS )zMAlias generators for converting between different capitalization conventions.é    N)Ś	to_pascalŚto_camelŚto_snake)ŚsnakeŚreturnc                 C   s   |   ” }t ddd |”S )zConvert a snake_case string to PascalCase.

    Args:
        snake: The string to convert.

    Returns:
        The PascalCase string.
    z([0-9A-Za-z])_(?=[0-9A-Z])c                 S   s
   |   d”S ©Né   ©Śgroup©Śm© r   śX/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/pydantic/alias_generators.pyŚ<lambda>   ó    zto_pascal.<locals>.<lambda>)ŚtitleŚreŚsub©r   Ścamelr   r   r   r      s    	r   c                 C   s   t | }t ddd |”S )zConvert a snake_case string to camelCase.

    Args:
        snake: The string to convert.

    Returns:
        The converted camelCase string.
    z
(^_*[A-Z])c                 S   s   |   d” ” S r   )r
   Ślowerr   r   r   r   r      r   zto_camel.<locals>.<lambda>)r   r   r   r   r   r   r   r      s    	r   )r   r   c                 C   sP   t  ddd | ”}t  ddd |”}t  ddd |”}t  dd	d |”}| ” S )
z§Convert a PascalCase or camelCase string to snake_case.

    Args:
        camel: The string to convert.

    Returns:
        The converted string in snake_case.
    z([A-Z]+)([A-Z][a-z])c                 S   s   |   d” d|   d” S ©Nr   Ś_é   r	   r   r   r   r   r   +   r   zto_snake.<locals>.<lambda>z([a-z])([A-Z])c                 S   s   |   d” d|   d” S r   r	   r   r   r   r   r   -   r   z([0-9])([A-Z])c                 S   s   |   d” d|   d” S r   r	   r   r   r   r   r   /   r   z([a-z])([0-9])c                 S   s   |   d” d|   d” S r   r	   r   r   r   r   r   1   r   )r   r   r   )r   r   r   r   r   r   !   s
    
r   )Ś__doc__r   Ś__all__Śstrr   r   r   r   r   r   r   Ś<module>   s
   