o
    FÊÆ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 )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   úf/var/www/html/HyperOracle/crypto_trader/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 )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      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 )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-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    