o
    5ti                     @   s   d Z ddlZddlZddlZedZedZedZedZdZ	dd	 Z
d
d Zdd Zdd ZdddZdddZdddZdS )zUtilities for file names.    Nz([A-Z]+)([A-Z][a-z])z([a-z\d])([A-Z])z(?<!_)_(?!_)z(_{2,})z^\w+(\.\w+)*$c                 C   s    t d| } td| } |  S )z(Convert camel-case string to snake-case.z\1_\2)_uppercase_uppercase_resub_lowercase_uppercase_relowername r   C/home/ubuntu/.local/lib/python3.10/site-packages/evaluate/naming.pycamelcase_to_snakecase    s   r
   c                 C   s4   t | } dd | D } ddd tj| D S )z/Convert snake-case string to camel-case string.c                 S   s   g | ]}t |qS r   )_multiple_underscores_resplit.0nr   r   r	   
<listcomp>*   s    z*snakecase_to_camelcase.<locals>.<listcomp> c                 s   s     | ]}|d kr|  V  qdS )r   N)
capitalizer   r   r   r	   	<genexpr>+   s    z)snakecase_to_camelcase.<locals>.<genexpr>)_single_underscore_rer   join	itertoolschainfrom_iterabler   r   r   r	   snakecase_to_camelcase'   s   
r   c                 C   s&   t j| | krtd|  t| S )N&Should be a dataset name, not a path: )ospathbasename
ValueErrorr
   r   r   r   r	   filename_prefix_for_name.   s   r   c                 C   sR   t j| | krtd|  tt|s tdt d| dt|  d| S )Nr   zSplit name should match 'z'' but got 'z'.-)r   r   r   r   rematch	_split_rer   )r   r   r   r   r	   filename_prefix_for_split4   s
   r$   c                 C   s4   t | |}|r|d| 7 }tj||}| dS )N.*)r$   r   r   r   )dataset_namer   data_dirfiletype_suffixprefixfilepathr   r   r	   filepattern_for_dataset_split<   s
   

r,   c                 C   s    t | |}|r|d| 7 }|S )Nr%   )r$   )r'   r   r)   r*   r   r   r	   filename_for_dataset_splitD   s   
r-   c                 C   s    t | ||d}tj||}|S )N)r'   r   r)   )r-   r   r   r   )r'   r   r(   r)   filenamer+   r   r   r	   filepath_for_dataset_splitK   s   r/   )N)__doc__r   r   r!   compiler   r   r   r   r#   r
   r   r   r$   r,   r-   r/   r   r   r   r	   <module>   s    





