3
^                 @   s   d dl mZ dd Zdd Zdddd	d
ddddddddddddddZddddddZedd  ej D Ze	 j
ed!d  ej D  d"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,S )-    )copysignc             C   s"   t | trt| | S | | S d S )N)
isinstancestrord)codei r   F/home/psgendb/BIRCHDEV/python/lib/python3.6/site-packages/xdis/util.pycode2num   s    
r
   c             C   s   | d@ | d? fS )N      r   )numr   r   r	   num2code   s    r   	OPTIMIZED	NEWLOCALSVARARGSVARKEYWORDSNESTED	GENERATORNOFREE	COROUTINEITERABLE_COROUTINEASYNC_GENERATORZGENERATOR_ALLOWEDZFUTURE_DIVISIONZABSOLUTE_IMPORTZFUTURE_WITH_STATEMENTZFUTURE_PRINT_FUNCTIONZFUTURE_UNICODE_LITERALSZFUTURE_BARRY_AS_DBFLZFUTURE_GENERATOR_STOP)         r          @         i   i   i    i @  i   i   i   i   i   ZPYPY_KILL_DOCSTRINGZPYPY_YIELD_INSIDE_TRYZPYPY_ONLY_ASTZPYPY_IGNORE_COOKIEZPYPY_ACCEPT_NULL_BYTES)i   i    i   i   i   c             c   s   | ]\}}||gV  qd S )Nr   ).0kvr   r   r	   	<genexpr>7   s    r$   c             c   s   | ]\}}d | |gV  qdS )ZCO_Nr   )r!   r"   r#   r   r   r	   r$   ;   s    c             C   s   | t d t d B t d B @ S )z?
    Return True iff co_flags indicates an async function.
    r   r   r   )COMPILER_FLAG_BIT)co_flagsr   r   r	   co_flags_is_async>   s    r'   c             C   s   | j d@ dkS )zTReturn True iff
    the code object has a variable positional parameter (*args-like)r   r   )r&   )r   r   r   r	   code_has_star_argH   s    r(   c             C   s   | j d@ dkS )zUReturn True iff
    The code object has a variable keyword parameter (**kwargs-like).r   r   )r&   )r   r   r   r	   code_has_star_star_argN   s    r)   c             C   s   | dkot d| dkS )zReturns true if n is -0.0g        r   )r   )nr   r   r	   is_negative_zeroT   s    r,   c             C   s   t | tr>t| tddddgkr*d|  S t| r6dS t| S t | trht| j}t| j	}d||f S t | t
rt| dkrd	t| d
  S ddjdd | D  S t | trt| dkrdt| d
  S ddjdd | D  S t| S dS )z[Work around Python's unorthogonal and unhelpful repr() for primitive float
    and complex.nanz-naninfz-infzfloat('%s')z-0.0zcomplex(%s, %s)r   z(%s,)r   z(%s)z, c             s   s   | ]}t |V  qd S )N)better_repr)r!   r   r   r   r	   r$   q   s    zbetter_repr.<locals>.<genexpr>z[%s,]z[%s]c             s   s   | ]}t |V  qd S )N)r/   )r!   r   r   r   r	   r$   u   s    N)r   floatr   	frozensetr,   reprcomplexr/   realimagtuplelenjoinlist)r#   r4   r5   r   r   r	   r/   Y   s&    





r/   N)mathr   r
   r   COMPILER_FLAG_NAMESZPYPY_COMPILER_FLAG_NAMESdictitemsr%   globalsupdater'   r(   r)   r,   r/   r   r   r   r	   <module>   s@   
