
    ,hL                     D    d Z ddlZdZdedefdZdedefdZdedefd	Zy)
zMAlias generators for converting between different capitalization conventions.    N)	to_pascalto_camelto_snakesnakereturnc                 R    | j                         }t        j                  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                 $    | j                  d      S N   groupms    [/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pydantic/alias_generators.py<lambda>zto_pascal.<locals>.<lambda>   s    !''!*     )titleresubr   camels     r   r   r      s$     KKME66.0DeLLr   c                     t        j                  d|       rt        j                  d|       s| S t        |       }t        j                  dd |      S )zConvert 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   zto_camel.<locals>.<lambda>(   s    !''!**:*:*< r   )r   matchsearchr   r   r   s     r   r   r      sC     
xx&.ryyU7SeE66, <eDDr   r   c                    t        j                  dd |       }t        j                  dd |      }t        j                  dd |      }t        j                  dd |      }|j                  d	d
      }|j                         S )zConvert 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   zto_snake.<locals>.<lambda>5   s!    Aaggaj\6R r   z([a-z])([A-Z])c                 L    | j                  d       d| j                  d       S r   r   r   s    r   r   zto_snake.<locals>.<lambda>7   !    1771:,a
|0L r   z([0-9])([A-Z])c                 L    | j                  d       d| j                  d       S r   r   r   s    r   r   zto_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   zto_snake.<locals>.<lambda>;   r#   r   -r    )r   r   replacer   )r   r   s     r   r   r   +   sq     FF*,RTYZEFF$&LeTEFF$&LeTEFF$&LeTEMM#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   