o
    NK&h'                     @   sV   d dl mZmZmZ d dlmZ G dd deZG dd deZG dd ded	Zd
S )    )OptionalProtocolUnion)	SanicMetac                   @      e Zd ZU eed< dS )NameProtocolnameN__name__
__module____qualname__str__annotations__ r   r   D/var/www/html/venv/lib/python3.10/site-packages/sanic/mixins/base.pyr         
 r   c                   @   r   )DunderNameProtocolr
   Nr	   r   r   r   r   r   
   r   r   c                   @   sP   e Zd ZU dZeed< ee ed< dee	e
ef defddZdefdd	Zd
S )	BaseMixinzBase class for various mixins.r   strict_slashesobjectsreturnc                 G   s|   d }|D ]}|s	qt |tr|}n
t|dt|dd }|r nq|r't |ts+td|| j ds<| j d| }|S )Nr   r
   z%Could not generate a name for handler.)
isinstancer   getattr
ValueError
startswithr   )selfr   r   objr   r   r   _generate_name   s   
zBaseMixin._generate_namec                 G   s
   | j | S )N)r   )r   r   r   r   r   generate_name*   s   
zBaseMixin.generate_nameN)r
   r   r   __doc__r   r   r   boolr   r   r   r   r   r   r   r   r   r      s   
 
r   )	metaclassN)	typingr   r   r   sanic.base.metar   r   r   r   r   r   r   r   <module>   s
    