o
    Vh                     @  s6   d dl mZ d dlmZ d dlmZ G dd dZdS )    )annotations)Any)CleoLogicErrorc                   @  sx   e Zd ZdZ				d!d"ddZed#ddZed$ddZed#ddZd%ddZ	d%ddZ
d&d'ddZd#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                 C  s0   || _ || _|| _|pd| _d | _| | d S )N )_name	_required_is_list_description_defaultset_default)selfr   r   r
   r   r    r   k/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/cleo/io/inputs/argument.py__init__   s   
zArgument.__init__c                 C     | j S N)r   r   r   r   r   r         zArgument.namestr | list[str] | Nonec                 C  r   r   )r   r   r   r   r   r   !   r   zArgument.defaultc                 C  r   r   )r   r   r   r   r   r   %   r   zArgument.descriptionc                 C  r   r   )r   r   r   r   r   is_required)      zArgument.is_requiredc                 C  r   r   )r   r   r   r   r   r
   ,   r"   zArgument.is_listc                 C  sF   | j r|d urtd| jr|d u 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   r   r   r   r   /   s   

zArgument.set_defaultc                 C  s.   d| j d| j d| j d| jd| jdS )Nz	Argument(z, required=z
, is_list=z, description=z
, default=))r   r   r   r   r   r   r   r   r   __repr__=   s   
zArgument.__repr__)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   r      s"    

r   N)
__future__r   typingr   cleo.exceptionsr   r   r   r   r   r   <module>   s    