o
    N!hL  ć                   @   sJ   d Z ddlZdZdedefddZdedefdd	Zd
edef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   ś/var/www/html/contec/backend/tec.wsc/Coding/backend/Contec_Project_backend/env/lib/python3.10/site-packages/pydantic/alias_generators.pyŚ<lambda>   s   
 zto_pascal.<locals>.<lambda>)ŚtitleŚreŚsub©r   Ścamelr   r   r   r      s   	r   c                 C   s6   t  d| ”rt  d| ”s| 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]+[A-Za-z0-9]*$z\d[a-z]z
(^_*[A-Z])c                 S   s   |   d” ” S r   )r
   Ślowerr   r   r   r   r   (   s    zto_camel.<locals>.<lambda>)r   ŚmatchŚsearchr   r   r   r   r   r   r      s   r   r   c                 C   s\   t  ddd | ”}t  ddd |”}t  ddd |”}t  dd	d |”}| d
d”}| ” S )z“Convert a PascalCase, camelCase, or kebab-case 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   ó   |   d” d|   d” S ©Nr   Ś_é   r	   r   r   r   r   r   5   ó    zto_snake.<locals>.<lambda>z([a-z])([A-Z])c                 S   r   r   r	   r   r   r   r   r   7   r   z([0-9])([A-Z])c                 S   r   r   r	   r   r   r   r   r   9   r   z([a-z])([0-9])c                 S   r   r   r	   r   r   r   r   r   ;   r   ś-r   )r   r   Śreplacer   )r   r   r   r   r   r   +   s   
r   )Ś__doc__r   Ś__all__Śstrr   r   r   r   r   r   r   Ś<module>   s    