B
    ~‹dÒ  ã               @   s0   d Z ddlmZ ddlZdZG dd„ deƒZdS )zUtilties for enumerations
é    )ÚEnumNz(Duncan Macleod <duncan.macleod@ligo.org>c               @   s4   e Zd ZdZedd„ ƒZedd„ ƒZedd„ ƒZdS )	ÚNumpyTypeEnumz `~enum.Enum` of numpy types
    c             C   s   t  | j ¡ ¡S )N)ÚnumpyÚdtypeÚnameÚlower)Úself© r	   ú\/work/yifan.wang/ringdown/master-ringdown-env/lib/python3.7/site-packages/gwpy/utils/enum.pyr       s    zNumpyTypeEnum.dtypec             C   s   | j jS )N)r   Útype)r   r	   r	   r
   r   $   s    zNumpyTypeEnum.typec             C   st   y| |ƒS  t k
rn } zHt|tƒr,| ¡ }y| t |¡j ¡  S  tt	fk
r\   |‚Y nX W dd}~X Y nX dS )zKReturns the enumerated type corresponding to the given python type
        N)
Ú
ValueErrorÚ
isinstanceÚstrr   r   r   r   ÚupperÚKeyErrorÚ	TypeError)ÚclsÚtype_Úexcr	   r	   r
   Úfind(   s    
zNumpyTypeEnum.findN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   Úclassmethodr   r	   r	   r	   r
   r      s   r   )r   Úenumr   r   Ú
__author__r   r	   r	   r	   r
   Ú<module>   s   