U
    P»{jÞ  ã                
   @   sr  d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	 erRd dl
mZ nd dlmZ eräd dlZd dlmZ dd„ Zd dlmZ dd	„ Zd
d„ Zd dlmZ dd„ ZeZejdkrÊd dlmZ nd dlmZ eZeZeZnVd dl Z d dl
mZ e jZe jZe jZe j!Z!e jZe jZe jZe jZe jZe jZe jZe�rJddd„Z!e�rjdd	ddddddddg
Z"ng Z"dS )é    )Úunicode_literalsN)ÚPY2ÚPY3Úexec_)ÚMappingc                 O   s
   | ||ŽS ©N© )ÚfÚargsÚkwr   r   úQ/var/www/html/bwave/python/venv/lib/python3.8/site-packages/past/builtins/misc.pyÚapply   s    r   )Ústrc                 C   s   t t| fƒƒS )zU
        Return a byte-string of one character with ordinal i; 0 <= i <= 256
        )ÚoldstrÚbytes)Úir   r   r   Úchr   s    r   c              
      s’  t ˆ tƒrt ˆtƒrtdƒ‚zªt ˆ tjƒrjt ˆ ¡rjt ˆtjƒsTtdjtˆƒd�ƒ‚t ˆt	ƒrdW dS W dS t ˆtjƒr¶t ˆ¡r¶t ˆ tjƒs tdjtˆ ƒd�ƒ‚t ˆ t	ƒr°W dS W dS ˆ ˆkˆ ˆk  W S  tk
�rŒ   ˆ ˆkræY dS td	ƒtjt
ttttfg}d	 }}t|ƒD ]*\}}t ˆ |ƒ�r(|}t ˆ|ƒ�r|}�qt||ƒdk�r~t ˆ tƒ�rxt ˆtƒ�rxtˆ  d
¡ˆƒ Y S t ˆtƒ�r¤t ˆ tƒ�r¤tˆ ˆ d
¡ƒ Y S t ˆ tƒ�rìtˆ ˆƒD ]*\}}t||ƒ}	|	dk�rº|	   Y S �qºY dS t ˆ t
ƒ�r~tˆ ƒtˆƒk�r ttˆ ƒtˆƒƒ Y S t‡ ‡fdd„ˆ D ƒƒ}
t‡ ‡fdd„ˆD ƒƒ}|
|k�rht|
|ƒ Y S tˆ |
 ˆ| ƒ Y S t||ƒ Y S X d	S )zí
        cmp(x, y) -> integer

        Return negative if x<y, zero if x==y, positive if x>y.
        Python2 had looser comparison allowing cmp None and non Numerical types and collections.
        Try to match the old behavior
        zcannot compare sets using cmp()z.cannot compare float("nan"), {type_y} with cmp)Ztype_yé   éÿÿÿÿz.cannot compare {type_x}, float("nan") with cmp)Ztype_xr   NÚasciic                 3   s*   | ]"}|ˆksˆ | ˆ| kr|V  qd S r   r   )Ú.0Úa©ÚxÚyr   r   Ú	<genexpr>Z   s       zcmp.<locals>.<genexpr>c                 3   s*   | ]"}|ˆ ksˆ | ˆ| kr|V  qd S r   r   )r   Úbr   r   r   r   [   s       )Ú
isinstanceÚsetÚ	TypeErrorÚnumbersÚNumberÚmathÚisnanÚformatÚtypeÚintÚdictÚlistr   r   Ú	enumerateÚcmpÚdecodeÚzipÚlenÚmin)r   r   Z
type_orderZx_type_indexZy_type_indexr   Z
type_matchZx_elemZy_elemZelem_cmp_valZx_keyZy_keyr   r   r   r*      sh    

 û


r*   )Úinternc                 C   s   dt  | ¡dd…  S )zUoct(number) -> string

        Return the octal representation of an integer
        Ú0é   N)ÚbuiltinsÚoct)Únumberr   r   r   r3   d   s    r3   )é   é   )Úreloadc              	   C   s”   |dkr*t  ¡ d }|d j}|d j}n|dkr6|}t|tƒsHtdƒ‚t|tƒsZtdƒ‚t| dƒ�}| ¡ }W 5 Q R X t	|| dƒ}t
|||ƒ dS )zï
        Read and execute a Python script from a file in the given namespaces.
        The globals and locals are dictionaries, defaulting to the current
        globals and locals. If only globals is given, locals defaults to it.
        Nr   r   zglobals must be a mappingzlocals must be a mappingÚrbÚexec)ÚinspectÚstackÚ	f_globalsÚf_localsr   r   r   ÚopenÚreadÚcompiler   )ÚfilenameZ	myglobalsZmylocalsZcaller_frameZfinÚsourceÚcoder   r   r   Úexecfile†   s    


rD   r/   Ú	raw_inputr7   ÚunichrÚunicodeÚxrange)NN)#Ú
__future__r   r:   Úsysr"   r    Zfuture.utilsr   r   r   Úcollectionsr   Úcollections.abcr2   r   Zpast.builtinsr   r   r   r*   r/   r3   ÚinputrE   Úversion_infoÚ	importlibr7   ÚimprG   rF   ÚrangerH   Ú__builtin__rD   Ú__all__r   r   r   r   Ú<module>   s^   C

   ÿ