o
    ’ªRhL  ã                   @   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 )zConvert 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   ú[/home/air/sanwanet/backup_V2/venv/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    