o
    NK&hà  ã                   @   sX   d dl mZmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZ G dd„ deƒZdS )	é    )ÚABCÚabstractmethod)ÚNodeTransformerÚparse)Ú	getsource)Údedent)ÚAnyc                   @   sd   e Zd ZU eed< eƒ Zee ed< ddd„Ze	de
e fdd„ƒZd	d
„ Zdd„ Zedd„ ƒZdS )Ú
BaseSchemeÚidentÚ	_registryÚreturnNc                 C   s
   || _ d S ©N)Úapp)Úselfr   © r   úM/var/www/html/venv/lib/python3.10/site-packages/sanic/touchup/schemes/base.pyÚ__init__   s   
zBaseScheme.__init__c                 C   s   d S r   r   ©r   r   r   r   Úvisitors   s   zBaseScheme.visitorsc                 C   s   t j | ¡ d S r   )r	   r   Úadd)Úclsr   r   r   Ú__init_subclass__   s   zBaseScheme.__init_subclass__c                 C   s   |   ¡ S r   )r   r   r   r   r   Ú__call__   s   zBaseScheme.__call__c                 C   sf   t |ƒ}t|ƒ}t|ƒ}| jD ]}||ƒƒ D ]}| |¡}qqt||jdƒ}	i }
t|	||
ƒ |
|j S )NÚexec)r   r   r   r   ÚvisitÚcompileÚ__name__r   )r   ÚmethodÚmodule_globalsr   Ú
raw_sourceÚsrcÚnodeÚschemeÚvisitorÚcompiled_srcÚexec_localsr   r   r   Úbuild   s   
ÿ
zBaseScheme.build)r   N)r   Ú
__module__Ú__qualname__ÚstrÚ__annotations__Úsetr   Útyper   r   Úlistr   r   r   r   Úclassmethodr&   r   r   r   r   r	      s   
 
r	   N)Úabcr   r   Úastr   r   Úinspectr   Útextwrapr   Útypingr   r	   r   r   r   r   Ú<module>   s    