
    d                    D    d dl mZ d dlmZ d dlmZ  G d d          ZdS )    )annotations)Any)CleoLogicErrorc                      e Zd ZdZ	 	 	 	 dddZedd            Zedd            Zedd            ZddZ	ddZ
dddZddZdS ) Argumentz"
    A command line argument.
    TFNnamestrrequiredboolis_listdescription
str | Nonedefault
Any | NonereturnNonec                z    || _         || _        || _        |pd| _        d | _        |                     |           d S )N )_name	_required_is_list_description_defaultset_default)selfr   r
   r   r   r   s         [/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/cleo/io/inputs/argument.py__init__zArgument.__init__   sG     
!'-204!!!!!    c                    | j         S N)r   r   s    r   r   zArgument.name   s
    zr   str | list[str] | Nonec                    | j         S r    )r   r!   s    r   r   zArgument.default!   s
    }r   c                    | j         S r    )r   r!   s    r   r   zArgument.description%   s      r   c                    | j         S r    )r   r!   s    r   is_requiredzArgument.is_required)   s
    ~r   c                    | j         S r    )r   r!   s    r   r   zArgument.is_list,   s
    }r   c                    | j         r|t          d          | j        r)|g }n$t          |t                    st          d          || _        d S )Nz1Cannot set a default value for required argumentsz2A default value for a list argument must be a list)r   r   r   
isinstancelistr   )r   r   s     r   r   zArgument.set_default/   sk    > 	Vg1 !TUUU= 	.. $H    r   c                    dt          | j                   d| j         d| j         dt          | j                   dt          | j                   dS )Nz	Argument(z, required=z
, is_list=z, description=z
, default=))reprr   r   r   r   r   r!   s    r   __repr__zArgument.__repr__=   sx    .TZ(( . .. .}. .   122. . DM**	. . .	
r   )TFNN)r   r	   r
   r   r   r   r   r   r   r   r   r   )r   r	   )r   r"   )r   r   r    )r   r   r   r   )__name__
__module____qualname____doc__r   propertyr   r   r   r&   r   r   r.    r   r   r   r      s          "&"" " " " "     X    X ! ! ! X!               
 
 
 
 
 
r   r   N)
__future__r   typingr   cleo.exceptionsr   r   r4   r   r   <module>r8      sm    " " " " " "       * * * * * *<
 <
 <
 <
 <
 <
 <
 <
 <
 <
r   