o
    hu                     @   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   O/var/www/html/ai/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         	r   c                 C   s   t | }tddd |S )zConvert 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      s    zto_camel.<locals>.<lambda>)r   r   r   r   r   r   r   r      r   r   r   c                 C   s,   t ddd | }t ddd |}| S )zConvert a PascalCase or camelCase string to snake_case.

    Args:
        camel: The string to convert.

    Returns:
        The converted string in snake_case.
    z([a-zA-Z])([0-9])c                 S      |  d d|  d S Nr   _   r	   r   r   r   r   r   *       zto_snake.<locals>.<lambda>z([a-z0-9])([A-Z])c                 S   r   r   r	   r   r   r   r   r   +   r   )r   r   r   )r   r   r   r   r   r   !   s   	r   )__doc__r   __all__strr   r   r   r   r   r   r   <module>   s    