o
    h                     @   s   d Z ddlZddlmZ ddlmZ ddlmZ zddlZW n ey)   dZY nw dd Z	dd	 Z
d
d Zdd Zdd ZdS )zCompatibility utilities.    N)NullHandler)promisewrapsc                 C   sd   t du rdS zt j}W n ty   tdw t  | t j}|r%||O }n|| M }t  | t j|S )z Set flag to close fd after exec.Nz1close-on-exec flag not supported on this platform)fcntl
FD_CLOEXECAttributeErrorNotImplementedErrorF_GETFDF_SETFD)fdcloexecr   flags r   L/var/www/html/optinet_system/venv/lib/python3.10/site-packages/amqp/utils.pyset_cloexec   s   


r   c                    s   t   fdd}|S )z,Decorator to mark generator as a co-routine.c                     s    | i |}t | |S )N)next)argskwargscogenr   r   _boot#   s   zcoro.<locals>._bootr   )r   r   r   r   r   coro!   s   r   c                 C      t | tr| ddS | S )zConvert str to bytes.utf-8surrogatepass)
isinstancestrencodesr   r   r   str_to_bytes,      
r"   c                 C   r   )zConvert bytes to str.r   r   )r   bytesdecoder    r   r   r   bytes_to_str3   r#   r&   c                 C   s*   t | tr
t| } | js| t  | S )zGet logger by name.)r   r   logging	getLoggerhandlers
addHandlerr   )loggerr   r   r   
get_logger:   s
   

r,   )__doc__r'   r   viner   
vine.utilsr   r   ImportErrorr   r   r"   r&   r,   r   r   r   r   <module>   s    