
     h                        d Z ddlZddlZddlmZ ddlmZ 	 ddlmZ	 n# e
$ r ddl	Z	Y nw xY wddlmZ ddlmZ eeefZ	 ddlmZ n # e
$ r 	 ddlmZ n# e
$ r dZY nw xY wY nw xY wdad	 Zd
 Zd Zd Zd Zd Zed             ZdS )zPython Compatibility Utilities.    N)contextmanagerwraps)metadata)UnsupportedOperation)reraise)register_after_forkc                 <     t                      fd            }|S )z*Decorator to mark generator as co-routine.c                  6     | i |}t          |           |S N)next)argskwargsitgens      N/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/kombu/utils/compat.pywind_upzcoro.<locals>.wind_up"   s'    S$!&!!R	    r   )r   r   s   ` r   coror       s3    
3ZZ    Z Nr   c                      dt           j        v r)	 dd l} ddlm}  ||           rdS n# t
          $ r Y nw xY wdt           j        v r,	 dd l} ddlm} | j        |j        u rdS n# t
          $ r Y nw xY wdS )Neventletr   )is_monkey_patchedgevent)socketdefault)sysmodulesr   eventlet.patcherr   ImportErrorr   )r   is_eventlet_gsockets      r   _detect_environmentr"   *   s    S[  	MMMIIIIII{6"" "!z" 	 	 	D	 3;	MMM111111}//x 0 	 	 	D	 9s   ( 
55A" "
A/.A/c                  :    t           t                      a t           S )z=Detect the current environment: default, eventlet, or gevent.)_environmentr"    r   r   detect_environmentr&   F   s     *,,r   c                 d    d t          j                                        | g           D             S )z,Return setuptools entrypoints for namespace.c              3   B   K   | ]}||                                 fV  d S r   )load).0eps     r   	<genexpr>zentrypoints.<locals>.<genexpr>P   sB         
RWWYY     r   )importlib_metadataentry_pointsget)	namespaces    r   entrypointsr1   N   s<     $13377	2FF   r   c                 b    t          | t          j                  r| S |                                 S )z!Get fileno from file-like object.)
isinstancenumbersIntegralfilenofs    r   r6   r6   V   s*    !W%&& 88::r   c                 D    	 t          |           S # t          $ r Y dS w xY w)z3Get object fileno, or :const:`None` if not defined.N)r6   FILENO_ERRORSr7   s    r   maybe_filenor;   ]   s5    ayy   s    
c               '     K   g }g }d}	 	 | D ]B}|j         }|j        }|                     |                       |                    |           C|V  n#  t          j                    }Y nxY w|r9|                                }	  || rd}n#  t          j                    }Y nxY w|9|dk    r#t          |d         |d         |d                    nj# |r9|                                }	  || rd}n#  t          j                    }Y nxY w|9|dk    r$t          |d         |d         |d                    w w xY w~dS # ~w xY w)zNest context managers.)NNNr         N)__exit__	__enter__appendr   exc_infopopr   )managersexitsvarsexcmgrexitenters          r   nestedrK   e   s      ED
C	0 # #|EEGG$$$T""""JJJJ	!,..CCC )yy{{)tSz 10),..CCC  ) ((( AAA///  )yy{{)tSz 10),..CCC  ) ((( AAA////	 ) CCCs`   A	A C A,*C /E B E B%#1E D;,C43D;4D	2D;;E E)__doc__r4   r   
contextlibr   	functoolsr   	importlibr   r-   r   ior   kombu.exceptionsr   AttributeError
ValueErrorr:   billiard.utilr	   multiprocessing.utilr$   r   r"   r&   r1   r6   r;   rK   r%   r   r   <module>rV      s   % %  



 % % % % % %      8888888    $ # # # # # $ $ $ $ $ $-AB#1111111 # # ##<<<<<<< # # #"##     8             sB    	++ A A$AA$AA$AA$#A$