U
    ;rc                     @   s&  d dl Z d dl T d dlmZ d dlmZ e Ze	de
dd  e	de
d	d  d
ekrle	de
dd  dd Zdd Zee jdd Zee jdd Zd
ekree jdd
 Ze jje_dekree jdd Zdekree jdd Ze je_dekree jdd Z[[dS )    N)*)wraps)IntEnumSignalsc                 C   s(   |   r| dr| d p&| dS )NZSIGZSIG_ZCTRL_)isupper
startswithname r
   /usr/lib/python3.8/signal.py<lambda>
   s    r   Handlersc                 C   s   | dkS )N)SIG_DFLSIG_IGNr
   r   r
   r
   r   r          pthread_sigmaskZSigmasksc                 C   s   | dkS )N)	SIG_BLOCKSIG_UNBLOCKSIG_SETMASKr
   r   r
   r
   r   r      r   c                 C   s(   z
|| W S  t k
r"   |  Y S X dS )zsConvert a numeric value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    N)
ValueError)valueZ
enum_klassr
   r
   r   _int_to_enum   s    
r   c              	   C   s,   z
t | W S  ttfk
r&   |  Y S X dS )zmConvert an IntEnum member to a numeric value.
    If it's not an IntEnum member return the value itself.
    N)intr   	TypeError)r   r
   r
   r   _enum_to_int#   s    
r   c                 C   s   t t| t|}t|tS N)_signalsignalr   r   r   Z	signalnumZhandlerr
   r
   r   r   -   s    r   c                 C   s   t | }t|tS r   )r   	getsignalr   r   r   r
   r
   r   r   3   s    
r   c                 C   s   t | |}tdd |D S )Nc                 s   s   | ]}t |tV  qd S r   r   r   .0xr
   r
   r   	<genexpr>=   s     z"pthread_sigmask.<locals>.<genexpr>)r   r   set)ZhowmaskZsigs_setr
   r
   r   r   :   s    
sigpendingc                   C   s   dd t  D S )Nc                 S   s   h | ]}t |tqS r
   r    r!   r
   r
   r   	<setcomp>D   s     zsigpending.<locals>.<setcomp>)r   r'   r
   r
   r
   r   r'   B   s    sigwaitc                 C   s   t | }t|tS r   )r   r)   r   r   )ZsigsetZretsigr
   r
   r   r)   H   s    
valid_signalsc                   C   s   dd t  D S )Nc                 S   s   h | ]}t |tqS r
   r    r!   r
   r
   r   r(   R   s     z valid_signals.<locals>.<setcomp>)r   r*   r
   r
   r
   r   r*   P   s    )r   	functoolsr   Z_wrapsenumr   Z_IntEnumglobalsZ_globals	_convert___name__r   r   r   r   r   __doc__r'   r)   r*   r
   r
   r
   r   <module>   sR      










