o
    NK&h                     @  sf   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZ d dlmZ G dd ded	Zd
S )    )annotations)wrapsisawaitable)CallableOptionalUnion)	SanicMeta)FutureCommandc                   @  s*   e Zd ZdddZ	ddddddZdS )CommandMixinreturnNonec                 O  s   t  | _d S N)set_future_commands)selfargskwargs r   H/var/www/html/venv/lib/python3.10/site-packages/sanic/mixins/commands.py__init__   s   zCommandMixin.__init__N )name
maybe_funcOptional[Callable]r   str/Union[Callable, Callable[[Callable], Callable]]c                  s    fdd}|r||S |S )Nc                   s0   t   fdd}jtp j| |S )Nc                    s&    | i |}t |r|I d H }|S r   r   )r   r   responsefr   r   decorated_function   s
   
zCCommandMixin.command.<locals>.decorator.<locals>.decorated_function)r   r   addr
   __name__)r   r    r   r   r   r   	decorator   s   z'CommandMixin.command.<locals>.decoratorr   )r   r   r   r$   r   r#   r   command   s   zCommandMixin.command)r   r   r   )r   r   r   r   r   r   )r"   
__module____qualname__r   r%   r   r   r   r   r      s    
r   )	metaclassN)
__future__r   	functoolsr   inspectr   typingr   r   r   sanic.base.metar	   sanic.models.futuresr
   r   r   r   r   r   <module>   s    