o
    ĎiQ                     @   s~   d Z ddlZddlZddlmZ edZdee dedefdd	Zd
ej	defddZ
dedefddZdedefddZdS )z5Functions to convert string to kagglesdk enum values.    N)TypeVarT
enum_classenum_strreturnc                 C   s   t | }zt| |W S  ty\   zt | j }| d| }t| |W  Y S  ty[   |dd}t| D ]}|dd|krOt| |   Y  Y S q:d| d}t|d w w )N_ 'z' is not a valid ModelFramework)_camel_to_snakeuppergetattrAttributeError__name__replacevars
ValueError)r   r   enum_keyprefix	full_nameitemmsg r   J/home/jeff/fluffinator/venv/lib/python3.10/site-packages/kagglehub/enum.pyto_enum   s$   
r   enumc                 C   s@   t | d}|d }|d }t| }||d }t|S )N.r      r   )strsplitr
   r   removeprefix_snake_to_camel)r   namesenum_class_nameenum_value_namesnakecase_prefixr   r   r   enum_to_str   s   r%   valuec                 C   s    t dd| } t dd|  S )Nz(.)([A-Z][a-z]+)z\1_\2z([a-z0-9])([A-Z]))resublower)r&   r   r   r   r
   (   s   r
   c                 C   s6   d dd |  dD }| d  |dd   S )Nr   c                 s   s    | ]}|  V  qd S )N)
capitalize).0wordr   r   r   	<genexpr>.   s    z"_snake_to_camel.<locals>.<genexpr>r   r   r   )joinr)   r   )r&   	camel_strr   r   r   r    -   s   r    )__doc__r   r'   typingr   r   typer   r   Enumr%   r
   r    r   r   r   r   <module>   s    	