a
    i                     @   sf   d dl Z d dlZdd e jD Zg dZdZdd Zdd	 ZdddZG dd dZ	G dd dZ
dS )    Nc                 C   s   g | ]}t t|qS  )getattr
__future__).0fnamer   r   /usr/lib64/python3.9/codeop.py
<listcomp>>   s   r   )compile_commandCompileCommandCompileri   c                 C   sr  | dD ] }| }|r
|d dkr
 q8q
|dkr8d}d  } }}d  } }	}
z| |||}W n tyr   Y n0 t  td z| |d ||}	W n( ty } z|}W Y d }~n
d }~0 0 z| |d ||}
W n* ty } z|}W Y d }~n
d }~0 0 W d    n1 s0    Y  z<|r<|W d  }}S |	sXt|t|krX|W d  }}n
d  }}0 d S )N
r   #evalpasserrorz

)splitstripSyntaxErrorwarningscatch_warningssimplefilterrepr)compilersourcefilenamesymbollineerrZerr1Zerr2codecode1code2er   r   r   _maybe_compileE   s<    

:r"   c                 C   s   t | ||tS N)compilePyCF_DONT_IMPLY_DEDENTr   r   r   r   r   r   _compilen   s    r'   <input>singlec                 C   s   t t| ||S r#   )r"   r'   r&   r   r   r   r	   q   s    r	   c                   @   s   e Zd Zdd Zdd ZdS )r
   c                 C   s
   t | _d S r#   )r%   flagsselfr   r   r   __init__   s    zCompile.__init__c                 C   s<   t |||| jd}tD ] }|j|j@ r|  j|jO  _q|S )NT)r$   r*   	_featuresco_flagsZcompiler_flag)r,   r   r   r   ZcodeobZfeaturer   r   r   __call__   s
    zCompile.__call__N__name__
__module____qualname__r-   r0   r   r   r   r   r
      s   r
   c                   @   s   e Zd Zdd ZdddZdS )	r   c                 C   s   t  | _d S r#   )r
   r   r+   r   r   r   r-      s    zCommandCompiler.__init__r(   r)   c                 C   s   t | j|||S r#   )r"   r   )r,   r   r   r   r   r   r   r0      s    zCommandCompiler.__call__N)r(   r)   r1   r   r   r   r   r      s   r   )r(   r)   )r   r   Zall_feature_namesr.   __all__r%   r"   r'   r	   r
   r   r   r   r   r   <module>;   s   )
