o
    ¯ó®gA  ã                   @   sÀ   	 g d ¢Z ddlZzddlmZ W n ey   dd„ ZY nw G dd„ deƒZeZg fdd	„Zg fd
d„Z	dd„ Z
dd„ Zdd„ Zdd„ Zedkr^ddlZeeejdd… dddgƒƒ dS dS ))ÚGetoptErrorÚerrorÚgetoptÚ
gnu_getopté    N)Úgettextc                 C   s   | S ©N© )Úsr   r   ú</Users/admin/.pyenv/versions/3.10.0/lib/python3.10/getopt.pyÚ_)   s    r   c                   @   s&   e Zd ZdZdZddd„Zdd„ ZdS )r   Ú c                 C   s   || _ || _t | ||¡ d S r   )ÚmsgÚoptÚ	ExceptionÚ__init__)Úselfr   r   r   r   r
   r   .   s   zGetoptError.__init__c                 C   s   | j S r   )r   )r   r   r   r
   Ú__str__3   s   zGetoptError.__str__N)r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r
   r   +   s
    
r   c                 C   sè   	 g }t |ƒt dƒkr|g}nt|ƒ}| rp| d  d¡rp| d dkrp| d dkr3| dd … } 	 || fS | d  d¡rNt|| d dd … || dd … ƒ\}} nt|| d dd … || dd … ƒ\}} | rp| d  d¡rp| d dks"|| fS )Nr   r   ú-ú--é   é   )ÚtypeÚlistÚ
startswithÚdo_longsÚ	do_shorts)ÚargsÚ	shortoptsÚlongoptsÚoptsr   r   r
   r   8   s   û(&ù	r   c                 C   s@  	 g }g }t |tƒr|g}nt|ƒ}| d¡r |dd … }d}ntj d¡r)d}nd}| rœ| d dkr@|| dd … 7 }	 ||fS | d d d… dkr^t|| d dd … || dd … ƒ\}} n<| d d d… d	kr‚| d d	kr‚t|| d dd … || dd … ƒ\}} n|r|| 7 }	 ||fS | 	| d ¡ | dd … } | s-||fS )
Nú+r   TZPOSIXLY_CORRECTFr   r   r   r   )
Ú
isinstanceÚstrr   r   ÚosÚenvironÚgetr   r   Úappend)r   r    r!   r"   Z	prog_argsZall_options_firstr   r   r
   r   c   s:   

ô( (ýñr   c                 C   sÄ   z|  d¡}W n ty   d }Y nw |d |… ||d d … }}t||ƒ\}}|rF|d u rE|s:ttdƒ| |ƒ‚|d |dd … }}n|d urSttdƒ| |ƒ‚|  d| |p[df¡ | |fS )Nú=r   zoption --%s requires argumentr   z%option --%s must not have an argumentr   r   )ÚindexÚ
ValueErrorÚlong_has_argsr   r   r)   )r"   r   r!   r   ÚiÚoptargÚhas_argr   r   r
   r   •   s"   ÿ€r   c                    s”   ‡ fdd„|D ƒ}|st tdƒˆ  ˆ ƒ‚ˆ |v rdˆ fS ˆ d |v r&dˆ fS t|ƒdkr5t tdƒˆ  ˆ ƒ‚|d	 }| d¡}|rF|d d
… }||fS )Nc                    s   g | ]	}|  ˆ ¡r|‘qS r   )r   )Ú.0Úo©r   r   r
   Ú
<listcomp>¬   s    z!long_has_args.<locals>.<listcomp>zoption --%s not recognizedFr*   Tr   zoption --%s not a unique prefixr   éÿÿÿÿ)r   r   ÚlenÚendswith)r   r!   ZpossibilitiesZunique_matchr0   r   r3   r
   r-   «   s   
r-   c                 C   sŽ   |dkrC|d |dd … }}t ||ƒr4|dkr.|s#ttdƒ| |ƒ‚|d |dd … }}|d}}nd}|  d| |f¡ |dks| |fS )Nr   r   r   zoption -%s requires argumentr   )Úshort_has_argr   r   r)   )r"   Z	optstringr    r   r   r/   r   r   r
   r   À   s   
ÿõr   c                 C   sT   t t|ƒƒD ]}| ||   krdkr n q| d|d ¡  S qttdƒ|  | ƒ‚)Nú:r   zoption -%s not recognized)Úranger6   r   r   r   )r   r    r.   r   r   r
   r8   Ï   s
   ÿr8   Ú__main__r   za:bzalpha=Úbeta)Ú__all__r&   r   r   ÚImportErrorr   r   r   r   r   r   r-   r   r8   r   ÚsysÚprintÚargvr   r   r   r
   Ú<module>   s(    !þ+2"þ