
    ^ft                        d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z 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.    )annotationsN)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      D/var/www/html/env/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'   B   s     *,,r   c                   t           j        dk    rt          j        |           }nQt          j                    }	 |                    | g           }n&# t
          $ r |                    |           }Y nw xY wd |D             S )z,Return setuptools entrypoints for namespace.)   
   )groupc              3  B   K   | ]}||                                 fV  d S r   )load).0eps     r   	<genexpr>zentrypoints.<locals>.<genexpr>U   sB         
RWWYY     r   )r   version_infoimportlib_metadataentry_pointsgetAttributeErrorselect)	namespacer3   s     r   entrypointsr8   J   s    
6!!)6YGGG)688	@'++Ir::LL 	@ 	@ 	@'..Y.??LLL	@    s   A  A54A5c                b    t          | t          j                  r| S |                                 S )z!Get fileno from file-like object.)
isinstancenumbersIntegralfilenofs    r   r=   r=   [   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)r=   FILENO_ERRORSr>   s    r   maybe_filenorB   b   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   nestedrR   j   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__
__future__r   r;   r   
contextlibr   	functoolsr   	importlibr   r2   ior   kombu.exceptionsr	   r5   
ValueErrorrA   billiard.utilr
   r    multiprocessing.utilr%   r   r#   r'   r8   r=   rB   rR   r&   r   r   <module>r]      s   % % " " " " " "  



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