o
    Vh                     @  sr   d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 er0d dl
mZ d dlmZ G d	d
 d
ZdS )    )annotationsN)TYPE_CHECKING)ClassVar)	CleoError)
Definition)Application)IOc                   @  s   e Zd ZU dZded< dZdZdZdZg Z	ded< d/ddZ
ed0ddZed1ddZed2ddZd/ddZd3d4ddZd/ddZd5d d!Zd6d"d#Zd6d$d%Zd5d&d'Zd7d8d*d+Zd9d:d-d.ZdS );BaseCommandNz
str | Nonename TFzClassVar[list[str]]usagesreturnNonec                 C  sh   t  | _d | _d | _d| _i | _|   t| jD ]\}}| j	r1|
| j	s1| j	 d| | j|< qd S )NF )r   _definition_full_definition_application_ignore_validation_errors	_synopsis	configure	enumerater   r
   
startswith)selfiusage r   n/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/cleo/commands/base_command.py__init__   s   zBaseCommand.__init__Application | Nonec                 C  s   | j S N)r   r   r   r   r   application*   s   zBaseCommand.applicationr   c                 C  s   | j d ur| j S | jS r   )r   r   r    r   r   r   
definition.   s   
zBaseCommand.definitionstrc                 C  sn   | j }| j s	| j}| jo| j }| jr| jj}nt d d }|j| j|r,||dS | d| j |dS )N   r   )command_namecommand_full_namescript_name)helpdescriptionr   is_single_commandr
   inspectstackformat)r   	help_textr+   current_scriptr   r   r   processed_help5   s    
zBaseCommand.processed_helpc                 C  s
   d| _ d S )NT)r   r    r   r   r   ignore_validation_errorsJ   s   
z$BaseCommand.ignore_validation_errorsr!   c                 C  s   || _ d | _d S r   )r   r   )r   r!   r   r   r   set_applicationM   s   
zBaseCommand.set_applicationc                 C     dS )z1
        Configures the current command.
        Nr   r    r   r   r   r   R       zBaseCommand.configureior   intc                 C  s   t r   )NotImplementedErrorr   r6   r   r   r   executeW      zBaseCommand.executec                 C  r4   )z*
        Interacts with the user.
        Nr   r9   r   r   r   interactZ   r5   zBaseCommand.interactc                 C  s   d S r   r   r9   r   r   r   
initialize_   r;   zBaseCommand.initializec                 C  s   |    z	|j| j W n ty   | js Y nw | | | r)| | |j	dr?|j
dd u r?|jd| j |j  | |pJdS )Ncommandr   )merge_application_definitioninputbindr"   r   r   r=   is_interactiver<   has_argumentargumentset_argumentr
   validater:   r9   r   r   r   runb   s   


zBaseCommand.run
merge_argsboolc                 C  sv   | j d u rd S t | _| j| jj | j| j jj |r1| j| j jj | j	| jj d S | j| jj d S r   )
r   r   r   add_optionsr   optionsr"   set_arguments	argumentsadd_arguments)r   rH   r   r   r   r?   w   s   
z(BaseCommand.merge_application_definitionshortc                 C  s>   |rdnd}|| j vr| j d| j| | j |< | j | S )NrO   longr   )r   r
   r"   synopsis)r   rO   keyr   r   r   rQ      s   

zBaseCommand.synopsis)r   r   )r   r   )r   r   )r   r#   r   )r!   r   r   r   )r6   r   r   r7   )r6   r   r   r   )T)rH   rI   r   r   )F)rO   rI   r   r#   )__name__
__module____qualname__r
   __annotations__r*   r)   enabledhiddenr   r   propertyr!   r"   r1   r2   r3   r   r:   r<   r=   rG   r?   rQ   r   r   r   r   r	      s.   
 






r	   )
__future__r   r,   typingr   r   cleo.exceptionsr   cleo.io.inputs.definitionr   cleo.applicationr   
cleo.io.ior   r	   r   r   r   r   <module>   s    