U
    (d                     @   sj   d dl Z d dlmZmZmZ ede jdZG dd de jZG dd de jed	Z	dee
e
dddZdS )    N)SequenceTypeVarTypeT)boundc                   @   s(   e Zd ZejZee eedddZdS )StrEnumMeta)selfmemberreturnc              	   C   s>   z
| | W S  t k
r8   td| d| j dd Y nX d S )NzUnknown value 'z' for .)KeyError
ValueError__name__)r   r	    r   6/tmp/pip-unpacked-wheel-vx7f76es/torchvision/_utils.pyfrom_str
   s    
zStrEnumMeta.from_strN)	r   
__module____qualname__enumautor   r   strr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )StrEnumN)r   r   r   r   r   r   r   r      s   r   )	metaclass )seqseparate_lastr
   c                 C   s~   | sdS t | dkr$d| d  dS dddd | d d D  d }|r\t | d	kr\dnd
 d| d| d  d}|| S )Nr      'r   z', 'c                 S   s   g | ]}t |qS r   )r   ).0itemr   r   r   
<listcomp>   s     z#sequence_to_str.<locals>.<listcomp>   , )lenjoin)r   r   headtailr   r   r   sequence_to_str   s    $.r)   )r   )r   typingr   r   r   Enumr   EnumMetar   r   r   r)   r   r   r   r   <module>   s
   