�
e��gL � �D � d Z ddlZdZdedefd�Zdedefd�Zdedefd �Zy)
zMAlias generators for converting between different capitalization conventions.� N)� to_pascal�to_camel�to_snake�snake�returnc �R � | j � }t j dd� |� 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 �$ � | j d� S �N� ��group��ms �H/opt/hc_python/lib/python3.12/site-packages/pydantic/alias_generators.py�<lambda>zto_pascal.<locals>.<lambda> s � �!�'�'�!�*� )�title�re�sub�r �camels r r r s$ � �
�K�K�M�E�
�6�6�.�0D�e�L�Lr c � � t j d| � rt j d| � s| S t | � }t j dd� |� 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 �@ � | j d� j � S r
)r
�lowerr s r r zto_camel.<locals>.<lambda>( s � �!�'�'�!�*�*:�*:�*<r )r �match�searchr r r s r r r sC � �
�x�x�&��.�r�y�y��U�7S����e��E�
�6�6�,� <�e�D�Dr r c � � t j dd� | � }t j dd� |� }t j dd� |� }t j dd� |� }|j d d
� }|j � 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 �L � | j d� � d| j d� � �S �Nr �_� r r s r r zto_snake.<locals>.<lambda>5 s � �������A�a�g�g�a�j�\�6Rr z([a-z])([A-Z])c �L � | j d� � d| j d� � �S r r r s r r zto_snake.<locals>.<lambda>7 � � �1�7�7�1�:�,�a�����
�|�0Lr z([0-9])([A-Z])c �L � | j d� � d| j d� � �S r r r s r r zto_snake.<locals>.<lambda>9 r# r z([a-z])([0-9])c �L � | j d� � d| j d� � �S r r r s r r zto_snake.<locals>.<lambda>; r# r �-r )r r �replacer )r r s r r r + sq � �
�F�F�*�,R�TY�Z�E��F�F�$�&L�e�T�E��F�F�$�&L�e�T�E��F�F�$�&L�e�T�E��M�M�#�s�#�E��;�;�=�r )�__doc__r �__all__�strr r r � r r �<module>r, sO �� S� �
/��
M�S�
M�S�
M�E�C� E�C� E�$�C� �C� r