MINI MINI MANI MO
3
  \m                 @   sN  d Z ddlZddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZ ddlZdddddgZd	d ZG d
d dZe ZG dd deZG d
d deZG dd deZG dd deZedkrJddlZddlZeejd Zej  Z!W dQ R X ee!ej"j#ejd d dZ$x0e$j% D ]$Z&e$j'e&Z(e)e(e(j* e(j+  q"W dS )z2Interface to the compiler's internal symbol tables    N)USE
DEF_GLOBAL	DEF_LOCAL	DEF_PARAM
DEF_IMPORT	DEF_BOUND	DEF_ANNOT	SCOPE_OFF
SCOPE_MASKFREELOCALGLOBAL_IMPLICITGLOBAL_EXPLICITCELLsymtableSymbolTableClassFunctionSymbolc             C   s   t j| ||}t||S )N)	_symtabler   _newSymbolTable)codefilenameZcompile_typetop r    /usr/lib64/python3.6/symtable.pyr      s    c               @   s$   e Zd Zdd Zdd Zdd ZdS )SymbolTableFactoryc             C   s   t j | _d S )N)weakrefWeakValueDictionary_SymbolTableFactory__memo)selfr   r   r   __init__   s    zSymbolTableFactory.__init__c             C   s6   |j tjkrt||S |j tjkr,t||S t||S )N)typer   
TYPE_FUNCTIONr   
TYPE_CLASSr   r   )r    tabler   r   r   r   new   s
    
zSymbolTableFactory.newc             C   s8   ||f}| j j|d }|d kr4| j|| }| j |<