o
    svXj¨  ã                   @   s`  d Z ddlmZ ddlZejd dkZzeZW n! ey8   zddlmZ W n e	y5   ddl
mZ Y nw Y nw zddlmZ W n e	yP   ddlmZ Y nw zddlmZ W n e	yh   ddlmZ Y nw ejdk r÷ddlZe ¡ ZzddlZW n e	y‡   dZY nw ed	kr¾edur¾dd
lmZ e edƒ¡Zejedƒdd�ZejZeje_ejZeje_ejge_dd„ Zn9edkrñedurñddlZddlZdZG dd„ dej ƒZ!ejddd�Z"e"j#Z#ej$e %e!¡ge#_dd„ Znddl&m&Z zddl&m'Z' W n e	�y   eZ'Y nw e�r]ddl(Z(ddl)m*Z*m+Z+m,Z, ddl-m.Z. ddl/m0Z0m1Z1 e2Z2e3Z4e3Z5e6Z7e3Z8e9Z9e6fZ:dd„ Z;dd„ Z<d d!„ Z=d"d#„ Z>e?e(d$ƒZ@d6d%d&„ZAG d'd(„ d(e0ƒZBnGddlCZ(ddl*m*Z*m+Z+m,Z, dd)l-mDZ2mEZ. dd*l0m0Z0 eFZ4eGZ5eFZ8eHZ7eIZ9e6eHfZ:d+d„ Z;d,d„ Z<d-d!„ Z=d.d#„ Z>d7d/d0„Z@e@d1ƒ e0 Z1ZBeJd2d3gƒfd4d5„ZKdS )8z
    celery.five
    ~~~~~~~~~~~

    Compatibility implementations of features
    only available in newer Python versions.


é    )Úabsolute_importNé   )Úreload)ÚUserList)ÚUserDict)r   r   ÚDarwin)Úfind_libraryzlibSystem.dylibÚCoreServicesT)Ú	use_errnoc                   C   s   t tƒ ƒd S )Nç•Ö&è.>)Úabsolute_to_nanosecondsÚmach_absolute_time© r   r   úJ/var/www/html/myproject/venv/lib/python3.10/site-packages/billiard/five.pyÚ
_monotonic:   s   r   ÚLinuxé   c                   @   s    e Zd ZdejfdejfgZdS )ÚtimespecÚtv_secÚtv_nsecN)Ú__name__Ú
__module__Ú__qualname__ÚctypesÚc_longÚ_fields_r   r   r   r   r   E   s    þr   z
librt.so.1c                  C   sB   t ƒ } ttt | ¡ƒdkrt ¡ }t|t |¡ƒ‚| j	| j
d  S )Nr   r   )r   Úclock_gettimeÚCLOCK_MONOTONICr   ÚpointerÚ	get_errnoÚOSErrorÚosÚstrerrorr   r   )ÚtÚerrno_r   r   r   r   Q   s
   )Útime)Ú	monotonic)ÚQueueÚEmptyÚFull)Úzip_longest)ÚStringIOÚBytesIOc                 C   ó   |   ¡ S ©N)Úitems©Údr   r   r   r/   n   ó   r/   c                 C   r-   r.   )Úkeysr0   r   r   r   r3   q   r2   r3   c                 C   r-   r.   )Úvaluesr0   r   r   r   r4   t   r2   r4   c                 C   ó   | j S r.   )Ú__next__©Úitr   r   r   Únextfunw   ó   r9   Úexecc                 C   s   |j |ur
| |¡‚|‚r.   )Ú__traceback__Úwith_traceback)ÚtpÚvalueÚtbr   r   r   Úreraise|   s   

rA   c                   @   s   e Zd Zdd„ ZdS )Ú
WhateverIOc                 C   s"   t |tƒr	| ¡ }t | |¡ d S r.   )Ú
isinstanceÚbytesÚencoder+   Úwrite)ÚselfÚdatar   r   r   rF   ƒ   s   
zWhateverIO.writeN)r   r   r   rF   r   r   r   r   rB   �   s    rB   )ÚimapÚizip_longest)r+   c                 C   r-   r.   )Ú	iteritemsr0   r   r   r   r/   ”   r2   c                 C   r-   r.   )Úiterkeysr0   r   r   r   r3   —   r2   c                 C   r-   r.   )Ú
itervaluesr0   r   r   r   r4   š   r2   c                 C   r5   r.   )Únextr7   r   r   r   r9   �   r:   c                 C   sB   |du rt  d¡}|j}|du r|j}~n|du r|}tdƒ dS )zExecute code in a namespace.Nr   zexec code in globs, locs)ÚsysÚ	_getframeÚ	f_globalsÚf_localsr;   )ÚcodeÚglobsÚlocsÚframer   r   r   Úexec_    s   
rW   z4def reraise(tp, value, tb=None): raise tp, value, tbÚ__dict__Ú__weakref__c                    s   ‡ ‡fdd„}|S )zúClass decorator to set metaclass.

    Works with both Python 2 and Python 3 and it does not add
    an extra class in the lookup order like ``six.with_metaclass`` does
    (that is -- it copies the original class instead of using inheritance).

    c                    s.   t ‡fdd„tt| ƒƒD ƒƒ}ˆ | j| j|ƒS )Nc                 3   s$   � | ]\}}|ˆ vr||fV  qd S r.   r   )Ú.0Úkeyr?   )Ú
skip_attrsr   r   Ú	<genexpr>»   s   €
 ÿÿz@with_metaclass.<locals>._clone_with_metaclass.<locals>.<genexpr>)Údictr/   Úvarsr   Ú	__bases__)ÚClassÚattrs©ÚTyper\   r   r   Ú_clone_with_metaclassº   s   z-with_metaclass.<locals>._clone_with_metaclassr   )rd   r\   re   r   rc   r   Úwith_metaclass±   s   	rf   r.   )NN)LÚ__doc__Ú
__future__r   rO   Úversion_infoÚPY3r   Ú	NameErrorÚ	importlibÚImportErrorÚimpr   Úcollectionsr   ÚplatformÚsystemÚSYSTEMr   Úctypes.utilr   ÚCDLLÚ	libSystemr	   r   Úc_uint64ÚrestypeÚAbsoluteToNanosecondsr   Úargtypesr   r!   r   Ú	Structurer   Úlibrtr   Úc_intÚPOINTERr%   r&   ÚbuiltinsÚqueuer'   r(   r)   Ú	itertoolsr*   Úior+   r,   ÚmapÚstrÚstringÚstring_tÚintÚlong_tÚtext_tÚrangeÚ	int_typesr/   r3   r4   r9   ÚgetattrrW   rA   rB   Ú__builtin__rI   rJ   ÚunicodeÚ
basestringÚlongÚxrangeÚsetrf   r   r   r   r   Ú<module>   sÂ   	ÿ€ýÿÿ
ÿ
ÿ

ÿ
ÿ


